Where Does Huginn Store Data and Config?
Huginn configures through .env and keeps agents in MySQL or Postgres. Persist the database volume or updates wipe everything.
Last updated
Huginn follows twelve-factor config: a .env file (generated from .env.example at first start) holds the database adapter, host, credentials, and seed admin details. Every agent, scenario, event, and credential lives in MySQL or PostgreSQL behind it. The database is the application; the container is disposable.
Single-process images bundle MySQL inside and export /var/lib/mysql for persistence. That volume is the backup target, plus your .env for settings. Multi-process and external-database setups move the rows to a linked postgres or mysql container instead, which changes what to dump but not the principle: no persisted database, no Huginn.
Where Huginn stores this, by platform
.env (Huginn container)
Adapter, host, credentials, and seed admin, generated from .env.example. Pass your own with --env-file or compose env. Keep this file with the database backup; one without the other restores nothing usable.
/var/lib/mysql (Docker volume)
Agents, scenarios, events, and credentials for bundled MySQL. Bind to a host folder or use an external database container. Standalone runs without a mount lose everything on update.
Frequently asked questions
how do i back up huginn docker
Dump the database (or copy the mysql-data volume) and save your .env file with it. Agents, scenarios, credentials, and schedules all live in the database. Restore means a fresh container pointed at the same database plus env.
why is huginn empty after every update
The database volume is missing or anonymous. The image runs a built-in MySQL with /var/lib/mysql exported, and without a real mount every recreate starts blank. Bind a host folder there or switch to an external database container.
Notice an outdated path? Let us know.