MCPSERV.CLUB
DailyTxT

DailyTxT

Self-Hosted

Encrypted diary web app with markdown, file uploads, and multi‑user support

Active(95)
321stars
0views
Updated 19 hours ago
DailyTxT screenshot 1
1 / 2

Overview

Discover what makes DailyTxT powerful

DailyTxT is a full‑stack, self‑hosted diary and note‑taking web application that places a premium on **client‑side encryption**. Every entry, attachment, or metadata is encrypted with a user‑specific key before it leaves the browser. The Go back‑end exposes a lightweight REST API that only accepts already‑encrypted payloads, ensuring the server never has access to plaintext data. This design makes DailyTxT suitable for privacy‑conscious teams, personal journaling, or any scenario where data residency and auditability are critical.

Front‑end

Back‑end

Containerization

Encryption API

Overview

DailyTxT is a full‑stack, self‑hosted diary and note‑taking web application that places a premium on client‑side encryption. Every entry, attachment, or metadata is encrypted with a user‑specific key before it leaves the browser. The Go back‑end exposes a lightweight REST API that only accepts already‑encrypted payloads, ensuring the server never has access to plaintext data. This design makes DailyTxT suitable for privacy‑conscious teams, personal journaling, or any scenario where data residency and auditability are critical.

Architecture & Technical Stack

  • Front‑end: Built with Svelte 5, leveraging its reactive compiler to deliver a near‑native SPA experience. The UI is structured around a calendar component, markdown editor (using markdown-it), and a gallery for media. Svelte’s compile‑time optimizations keep the bundle size under 200 KB, which is essential for PWA use on mobile devices.
  • Back‑end: A Go 1.22 service that serves static assets and implements a REST API (/api/v1/*). It uses the net/http standard library with minimal middleware for CORS, JWT authentication, and rate‑limiting. The application stores data in a SQLite database (file‑based) for simplicity, but can be swapped for PostgreSQL or MySQL via a pluggable storage layer.
  • Containerization: The official Docker image (phitux/dailytxt) supports both AMD64 and ARM64 architectures. The Dockerfile uses multi‑stage builds to keep the runtime image lightweight (~70 MB). The container exposes port 80 and mounts a persistent volume for the SQLite database and media uploads.

Core Capabilities & APIs

  • Encryption API: The client performs encryption using the Web Crypto API (AES-GCM), deriving a key from the user’s password via PBKDF2. The encrypted blob is sent to /api/v1/entries with metadata (tags, template ID).
  • File Uploads: /api/v1/files accepts multipart uploads up to 500 MB. Files are stored encrypted on disk; the API returns a content‑hash for integrity checks.
  • Search & Tagging: The back‑end exposes /api/v1/search which accepts encrypted query tokens. Search is performed on the client side after fetching entries, ensuring no plaintext data leaks to the server.
  • Template Management: /api/v1/templates allows CRUD operations on user‑defined markdown templates. Templates are stored as plain text in the database and can be referenced via a UUID.
  • Admin Endpoints: /api/v1/admin/users for user management, and /api/v1/admin/registration to toggle self‑registration windows.

Deployment & Infrastructure

DailyTxT is designed for easy self‑hosting with a single Docker container. No external services are required beyond a web server (e.g., Nginx) for TLS termination. For production, recommended practices include:

  • Mounting the database and upload directory to an external volume or network‑attached storage.
  • Running behind a reverse proxy with HTTP/2 and HSTS enabled.
  • Using Docker Compose or Kubernetes manifests (available in the repo) to orchestrate multi‑pod deployments.

The application scales horizontally by replicating containers behind a load balancer; the stateless nature of the API (except for the SQLite file) allows simple scaling. However, for very high traffic or multi‑tenant scenarios, migrating the storage layer to a clustered database is advised.

Integration & Extensibility

  • Plugin Hooks: DailyTxT exposes a webhook endpoint (/api/v1/webhooks) that can be used to trigger external services when a new entry is created or updated.
  • Svelte Components: The front‑end’s component library can be imported into custom projects; developers can extend the editor with additional markdown extensions or UI widgets.
  • Internationalization: The translation system uses JSON files (locales/en.json, locales/de.json). Adding a new language is as simple as duplicating the structure and translating keys, with no code changes required.
  • Custom Back‑ends: The Go server is modular; the storage layer implements an interface that can be swapped out for cloud object stores (S3, GCS) or encrypted file systems.

Developer Experience

DailyTxT’s documentation is concise but thorough. The README outlines migration steps, API routes, and configuration options. The codebase follows Go idioms (package‑level documentation, go.mod dependencies) and Svelte best practices. Community support is active on GitHub issues, with a dedicated translation file that encourages contributions. Licensing under MIT ensures no commercial restrictions.

Use Cases

  • Secure Personal Journaling: Individuals wanting a self‑hosted, encrypted diary that can be accessed from any device.
  • Team Knowledge Base: Small teams can use DailyTxT to store project notes, meeting minutes, and media while ensuring each user’s data remains private.
  • Compliance‑Ready Logging: Organizations that must keep logs in a tamper‑evident, encrypted format can deploy DailyTxT behind their internal firewall.

Advantages

CriterionDailyTxT
PerformanceLightweight Go server + Svelte SPA; minimal latency.
FlexibilityFull client‑side encryption, plugg

Open SourceReady to get started?

Join the community and start self-hosting DailyTxT today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
MIT
Stars
321
Technical Specs
Pricing
Open Source
Docker
Official
Supported OS
Docker
Author
PhiTux
PhiTux
Last Updated
19 hours ago