v0.2.0
Summary
v0.2.0 adds single-admin authentication and a stronger database foundation on top of the v0.1.0 manual-services dashboard. The dashboard is no longer open by default — first-run setup creates the admin account, and all routes are protected by signed session cookies.
What's new
- First-run
/setupto create the admin account /loginand logout from Settings- Middleware protection for dashboard routes
- SQLite migrations (
drizzle/) with startup migrator settingsanduserstables- Safer auth redirects and session handling behind reverse proxies
- PWA offline cache updated for authenticated deployments
Breaking changes
SESSION_SECRETis required in production containers- On first visit after upgrade, complete
/setupto create the admin account - Unauthenticated access to
/,/services, and/settingsis blocked
Upgrade from v0.1.0
- Add
SESSION_SECRETto your.env(generate withopenssl rand -base64 32) - Rebuild/restart:
docker compose up --build -d - Visit the app and complete
/setup(existing services in the SQLite volume are preserved) - Behind HTTPS reverse proxy: set
COOKIE_SECURE=trueandPUBLIC_URLto your public origin
See README.md and SECURITY.md.
Container images
GHCR
docker pull ghcr.io/uniskela/unihomelabdash:v0.2.0Docker Hub
docker pull uniskela/unihomelabdash:v0.2.0Tags v0.2.0 and 0.2.0 point at the same image.
Quick run (generate a secret first or use --env-file .env):
docker run -d --name unihomelabdash \
-p 3000:3000 \
-e SESSION_SECRET="$(openssl rand -base64 32)" \
-v unihomelabdash-data:/app/data \
--restart unless-stopped \
ghcr.io/uniskela/unihomelabdash:v0.2.0Still in v0.1.0 scope
- Manual service bookmarks
- On-demand health checks
- Mobile-first PWA
- Docker Compose deployment (no Docker socket mount)
What's next
- Provider system foundation
- Docker/Portainer read-only status (behind auth)
- Multi-user / OIDC (later)
Full changelog: v0.1.0...v0.2.0