Linux

Where Does Nautobot Store Config and Data?

Nautobot reads nautobot_config.py (or NAUTOBOT_* env) with inventory in Postgres. Redis handles cache and jobs.

Last updated

Nautobot centers on nautobot_config.py: database and Redis URLs, secret key, plugins, and logging, generatable via init with a fresh SECRET_KEY. File values and NAUTOBOT_* env vars configure identically, with env winning. Inventory, IPAM, circuits, and jobs live in Postgres with Redis for cache and Celery. Docker bind-mounts the config at /opt/nautobot/nautobot_config.py.

Admin-UI-editable settings defer to the file: anything set in config wins over UI values, which surprises admins who change things in the panel to no effect. Migrations run at container start, so read-only database states fail boot visibly. Back config, Postgres, and Redis as a unit; secrets without rows are useless and rows without secrets unreadable.

Where Nautobot stores this, by platform

Linux
nautobot_config.py (config mount)

DB/Redis URLs, secret key, plugins. Generate via init; Docker bind-mounts at /opt/nautobot. Env overrides file. File values beat Admin UI edits; keep the source of truth in one place.

Frequently asked questions

how do i back up nautobot

Copy nautobot_config.py (or env record) plus Postgres and Redis dumps with services stopped. Devices, IPs, circuits, and jobs travel in the databases; secrets and URLs in config. Restore all three together.

where should nautobot_config.py live

Generate with nautobot-server init (unique SECRET_KEY included) into $HOME/.nautobot or /opt/nautobot, or mount your own at /opt/nautobot/nautobot_config.py in Docker. --config and NAUTOBOT_CONFIG override the path per run. Env vars of the same names win over file values.

Notice an outdated path? Let us know.