Configuration¶
GitEcho is configured through two mechanisms:
- Environment variables — container-level bootstrap settings
- Settings UI (
/settings) — runtime configuration stored in config files
Configuration Precedence¶
Values set in the Settings UI always win over environment variables. This means you can bootstrap with env vars and then refine everything through the UI without restarting the container.
What Goes Where¶
Environment Variables¶
Use environment variables for things the UI cannot change:
MASTER_KEY— encryption key (required)PUBLIC_URL— reverse proxy originsDATA_DIR,CONFIG_DIR,BACKUPS_DIR— mount point overridesLOG_LEVEL,LOG_MAX_BYTES— logging configurationPUID,PGID— container user remappingTZ— container timezone
See Environment Variables for the full reference.
Settings UI¶
Use the Settings UI for everything else — it's the recommended approach:
- Provider PATs and expiration dates
- SMTP credentials and notification settings
- Backup mode and cron schedule
- Discovery filters and blacklists
See Settings UI for details.
Config Files¶
The Settings UI persists its data to two files on the /config volume:
| File | Contents | Encryption |
|---|---|---|
settings.json |
Non-secret settings (PAT expirations, SMTP host/port, cron, mode, filters) | Plaintext |
secrets.json |
PATs, SMTP password, admin password hash | AES-256-GCM |
Both files are re-read by the web server and worker on every backup cycle, so changes take effect without a restart (except cron schedule changes, which require a worker restart).
repos.txt¶
The repository list at /config/repos.txt is a separate concern — see Repository List.