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 thenet/httpstandard 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/entrieswith metadata (tags, template ID). - File Uploads:
/api/v1/filesaccepts 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/searchwhich 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/templatesallows 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/usersfor user management, and/api/v1/admin/registrationto 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
webhookendpoint (/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
| Criterion | DailyTxT |
|---|---|
| Performance | Lightweight Go server + Svelte SPA; minimal latency. |
| Flexibility | Full client‑side encryption, plugg |
Open SourceReady to get started?
Join the community and start self-hosting DailyTxT today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
ezBookkeeping
Personal finance made simple and self‑hosted
Retrom
Centralized, self-hosted game library for all devices
Mayan EDMS
Scalable, secure document management for modern organizations
Ollama
Run and chat with large language models locally
Foodsoft
Open‑source software for food cooperative management
Joomla!
Build dynamic websites and web applications
