Self-hosted journaling app with REST API, Markdown support, and Home Assistant voice integration.
cd /mnt/apps/docker/memos
docker compose up -d
Access at: https://journal.haiven.site
#hashtag taggingVoice Satellite → Home Assistant → STT (haiven-transcribe)
→ Assist Pipeline → JournalEntry intent
→ llama-swap (format) → Memos API (save)
→ smart_announce ("Journal entry saved.")
| Setting | Value |
|---|---|
| Image | neosmemo/memos:0.26.2 |
| Port | 5230 |
| Domain | journal.haiven.site |
| Database | SQLite at ./data/memos.db |
| Networks | web, backend |
| Memory Limit | 512MB |
| Traefik | Label-based (no file-provider route) |
| Say | Result |
|---|---|
| "journal entry [anything]" | Creates journal entry |
| "journal [anything]" | Creates journal entry |
| "write in my journal [anything]" | Creates journal entry |
| "add to my journal [anything]" | Creates journal entry |
| "dear journal [anything]" | Creates journal entry |
# Create entry (requires Bearer token from Memos UI → Settings → Access Tokens)
curl -s -X POST https://journal.haiven.site/api/v1/memos \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{"content": "# My Entry\n\nSome text #journal", "visibility": "PRIVATE"}'
# List entries
curl -s -H "Authorization: Bearer <TOKEN>" \
https://journal.haiven.site/api/v1/memos?limit=5
Daily automated backups via backup.sh:
- Daily: 7-day retention
- Weekly (Sunday): 4-week retention
- Monthly (1st): unlimited retention
- Location: /mnt/storage/memos/backups/
Manual backup: ./backup.sh
https://journal.haiven.sitehomeassistant/config/secrets.yaml:yaml
memos_api_token_bearer: "Bearer YOUR_TOKEN_HERE"# Container logs
docker logs -f memos
# Health check (image has wget only, not curl)
wget -qO- http://localhost:5230/healthz
# Check Traefik routing
curl -sk https://journal.haiven.site/healthz
# Check networks
docker inspect memos --format '{{range $k, $v := .NetworkSettings.Networks}}{{$k}}: {{$v.IPAddress}}{{end}}'
_server-setup/08/08k-memos-journal-v2.mdhomeassistant/config/configuration.yamlhomeassistant/config/scripts.yamlhomeassistant/config/custom_sentences/en/journal.yamlmemos/openapi.yaml