A self-hosted day-logging microsite (microblog / personal journal).
932
A self-hosted day-logging microsite (microblog / personal journal). Single binary, SQLite-backed, vanilla JS frontend — no external dependencies.
docker run -d \
--name timeline \
--restart unless-stopped \
-p 8080:8080 \
-v timeline-data:/data \
-e TZ=Europe/Berlin \
dettmering/personal-timeline:latest
Open http://localhost:8080.
| Variable | Default | Description |
|---|---|---|
DB_PATH | /data/timeline.db | SQLite database path |
LISTEN_ADDR | :8080 | Listen address |
TZ | — | Timezone for date display (e.g. Europe/Berlin) |
API_KEY | — | Optional. If set, required as Bearer token or X-API-Key header for automated entries |
WEBHOOK_URL | — | Optional. Receives a POST with the entry JSON on every new entry |
services:
timeline:
image: dettmering/personal-timeline:latest
container_name: timeline
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- timeline-data:/data
environment:
TZ: Europe/Berlin
# API_KEY: change-me
volumes:
timeline-data:
docker compose up -d
Automated entries (e.g. from scripts or other services) require API_KEY to be set:
curl -X POST http://localhost:8080/api/entries \
-H "Authorization: Bearer <api-key>" \
-H "Content-Type: application/json" \
-d '{"text": "deployed successfully #ops", "automated": true}'
Content type
Image
Digest
sha256:9cb14c0be…
Size
8 MB
Last updated
3 months ago
docker pull dettmering/personal-timeline