Where Does Soft Serve Store Repos and Config?
Soft Serve keeps repos, keys, and its database in one data dir with config.yaml inside. Env vars relocate either half.
Last updated
Soft Serve centers on a data directory holding hosted git repos, SSH host keys and authorized keys, the SQLite database (Postgres optional), and config.yaml with ports, access, and admin keys. First start generates the config inside the data dir; SOFT_SERVE_DATA_PATH moves the dir (conventionally /var/lib/soft-serve), SOFT_SERVE_CONFIG_LOCATION splits the file out.
Admin access deserves emphasis: set SOFT_SERVE_INITIAL_ADMIN_KEYS to your SSH key before first boot, or the server starts with no admin. Backups are one folder (plus Postgres dump when external). Bare, Docker, and systemd layouts differ only in where that folder lives, so always confirm the env before scripting copies.
Where Soft Serve stores this, by platform
/var/lib/soft-serve (SOFT_SERVE_DATA_PATH)
Repos, SSH keys, SQLite db, config.yaml. Set INITIAL_ADMIN_KEYS before first boot. Env vars relocate dir and file independently; confirm them before scripting backups.
Frequently asked questions
how do i back up soft serve
Copy the whole data directory (repos, ssh keys, SQLite db, config.yaml) with the server stopped. Restore to the same path or set SOFT_SERVE_DATA_PATH at the new location. Postgres users also dump that database.
can i keep soft serve config outside the data dir
Set SOFT_SERVE_CONFIG_LOCATION to a pre-created file path before first start. Without it, config.yaml generates inside the data dir. Either way back both halves: the file holds settings, the dir holds everything else.
Notice an outdated path? Let us know.