Skip to main content

Why AMUD Dashboard Uses SQLite Instead of Postgres (Yes, Really)

Embedded DB for embedded dashboard. WAL mode, single-file backup, no extra container for config storage.

By Youssef Boubli · Creator of AMUD Dashboard

"Why not Postgres?"

Because then I'd need to run Postgres.

AMUD Dashboard is a dashboard. Config storage is a few hundred KB of apps, settings, and encrypted tokens. Running a whole separate database server for that is like buying a warehouse to store a shoebox.

SQLite with WAL

Write-Ahead Logging lets readers (the web UI loading settings) coexist with writers (you saving a new app card) without the lock contention that makes people hate SQLite in web apps from 2010.

For a single-tenant homelab dashboard with one admin clicking settings occasionally? Perfect fit.

Operational wins

  • Zero extra containeramud.db sits next to the binary
  • Backupcp amud.db backup.db
  • Restore — swap file, restart
  • Inspectsqlite3 amud.db when debugging

I've done all of these at 1am. Postgres would add connection strings, another service to monitor, another thing to backup separately.

When I'd reach for Postgres

Multi-tenant SaaS. Hundreds of concurrent writers. Horizontal scaling. AMUD Dashboard is explicitly none of those — see roadmap "won't do SaaS."

Homelab tool. Homelab database. Match the complexity to the problem.

/docs/intro