No description
- Python 43.1%
- JavaScript 40%
- CSS 9.1%
- HTML 5.5%
- Shell 1.9%
- Other 0.4%
| backend/app | ||
| desktop | ||
| frontend | ||
| .dockerignore | ||
| .gitignore | ||
| add_note_image_support.py | ||
| docker-compose.yml | ||
| Dockerfile | ||
| fix_index_css.py | ||
| install.sh | ||
| README.md | ||
| requirements.txt | ||
| rs.sh | ||
What is FoxJournal?
FoxJournal is a local-first journaling and note system designed for people who want:
- Full control over their data
- No dependency on cloud services
- A fast and distraction-free writing experience
Everything runs locally. No accounts. No tracking.
Features
- Nested books and notes (tree structure)
- Fast inline editing
- Drag and drop organization
- Autosave
- Local authentication
- Shareable notes
- Audit log
- Backup and restore support
- Lightweight UI (no frameworks)
Screenshots
Dekstop installers
Quick start (Docker)
git clone https://git.lanx.dk/ed/foxjournal.git
cd foxjournal
docker compose up -d
Open:
http://localhost:8092
Run locally (development)
Clone:
git clone https://git.lanx.dk/ed/foxjournal.git
cd foxjournal
Create environment:
python3 -m venv .venv
source .venv/bin/activate
Install dependencies:
pip install -r requirements.txt
Run server:
uvicorn backend.app.main:app --host 0.0.0.0 --port 8092 --reload
Open:
http://localhost:8092
Docker
Start:
docker compose up -d
Stop:
docker compose down
Project structure
backend/ FastAPI backend
frontend/ HTML, CSS, JS
data/ SQLite database
desktop/ tray apps (Linux / macOS / Windows)
docker-compose.yml
Security
FoxJournal is built with a security-first mindset:
- Password hashing (scrypt)
- Session-based authentication
- Login protection
- Secure cookies
- Fully local data storage
- No external API calls
Backup & Restore
- Manual backup support
- Restore support
- SQLite database (portable and simple)
Philosophy
Keep it local.
Keep it simple.
Keep it yours.
No lock-in
No cloud dependency
No noise
Tech stack
- FastAPI
- SQLite
- Vanilla JavaScript
- HTML / CSS
- Docker (optional)
Credits
Built with ❤️ for Lanx by NodeFox 🦊
Maintained by Eddie Nielsen
Learn. Adopt. Survive. Share.