Where Does Misago Store Settings and Data?
Misago reads settings.py (plus settings_override.py) with threads in Postgres. Redis caches; the compose dir ties it together.
Last updated
Misago centers on Django settings.py with database, cache, mail, and feature flags, extendable through settings_override.py and urls_override.py for values env cannot carry. Threads, users, and attachments metadata live in Postgres with Redis for cache and Celery queues. The misago_docker project tree adds backups/, config/, logs/, and nginx-proxy wiring around it.
Upgrades run through appctl (backup, rebuild, migrate), which assumes the project tree layout intact. Dev and prod compose files differ deliberately; prod persists data in volumes while dev favors speed. Keep the compose tree plus dumps; settings without rows render an empty forum, rows without settings misconfigure mail, OAuth, and domains.
Where Misago stores this, by platform
settings.py (project root)
DB/cache/mail flags plus overrides for non-env values. misago_docker tree adds backups/, logs/, proxy wiring. Upgrades via appctl assume the layout; keep the tree intact.
Frequently asked questions
how do i back up misago
Copy settings files plus Postgres and Redis dumps with the stack down, plus the compose dir itself. Threads, users, and attachments metadata travel in Postgres; uploads on disk beside it. Restore all four for a working forum.
settings.py versus settings_override.py
Create settings_override.py next to settings.py for keys env cannot express (cookie names, custom URLs). Production docker setups (misago_docker) keep wizard-generated config, backups/, and logs/ in the project tree; keep that tree versioned minus secrets.
Notice an outdated path? Let us know.