Jotts
A minimal notes app
Overview
A simple, self-hosted markdown note app built with Rust.
- Single ~7MB Rust binary with embedded assets
- Password authentication with session cookies
- Create, edit, and delete markdown notes
- Markdown rendering with strikethrough, tables, and task lists
- Dark themed UI with Commit Mono font
- SQLite for persistent storage
Quickstart
git clone https://github.com/stevedylandev/andromeda.git
cd andromeda
cp apps/jotts/.env.example .env
# Edit .env with your password
cargo run -p jottsEnvironment Variables
| Variable | Description | Default |
|---|---|---|
JOTTS_PASSWORD | Password for login authentication | changeme |
JOTTS_DB_PATH | SQLite database file path | jotts.sqlite |
HOST | Server bind address | 127.0.0.1 |
PORT | Server port | 3000 |
COOKIE_SECURE | Enable HTTPS-only cookies | false |
Structure
jotts/
├── src/
│ ├── main.rs # App entrypoint, env vars, starts server
│ ├── server.rs # Axum router, HTTP handlers, and templates
│ ├── auth.rs # Password verification and session management
│ └── db.rs # SQLite database layer (notes, sessions)
├── templates/ # Askama HTML templates
│ ├── base.html # Base layout with header and nav
│ ├── login.html # Login page
│ ├── index.html # Note list
│ ├── view.html # Single note display
│ ├── new.html # Create note form
│ └── edit.html # Edit note form
├── static/ # Favicons, og:image, styles, and webmanifest
├── assets/ # Commit Mono font files
├── Dockerfile
└── docker-compose.ymlDeployment
Railway
Docker
cd apps/jotts
cp .env.example .env
# Edit .env with your password
docker compose up -dThis will start Jotts on port 3000 with a persistent volume for the SQLite database.
Binary
cargo build --release -p jottsThe resulting binary is self-contained with all assets embedded. Copy it to your server with a configured .env file and run it directly.