Recovering configuration
If the UI shows wrong defaults or empty cameras after an edit, restore from backup or re-sync from the server.
Placeholders:
YOUR_SSH_HOST— SSH host alias (~/.ssh/configorDEPLOY_HOST);YOUR_REMOTE_DIR— app root on the server (e.g./opt/birdlenseorDEPLOY_REMOTE_DIR).
Fast path: restore-config.sh
# Restore from .bak on the server (if present)
./scripts/restore-config.sh
# Push a known-good local file to the server
./scripts/restore-config.sh from-local
Then restart:
ssh YOUR_SSH_HOST "cd YOUR_REMOTE_DIR/app && make stop && make start"
Automatic .bak file
Each save can create app/app_config/user_config.yaml.bak next to user_config.yaml.
Local:
cp app/app_config/user_config.yaml.bak app/app_config/user_config.yaml
Remote:
ssh YOUR_SSH_HOST "cp YOUR_REMOTE_DIR/app/app_config/user_config.yaml.bak YOUR_REMOTE_DIR/app/app_config/user_config.yaml"
Restart or wait for processor reload per your setup.
Deploy does not wipe user_config.yaml
Standard deploy syncs code but keeps server-side user_config.yaml. If settings “vanished” locally, the server copy may still be intact:
ssh YOUR_SSH_HOST "cat YOUR_REMOTE_DIR/app/app_config/user_config.yaml"
Copy the content back or edit via Settings in the UI.
Git (discouraged for secrets)
If you accidentally committed user_config.yaml:
git checkout app/app_config/user_config.yaml
Prefer not storing API keys or tokens in git — use env vars documented in CONFIGURATION.
Manual rebuild
Re-enter critical keys in Settings or edit YAML directly:
video.cameras,video.go2rtc_urlmqtt.broker,mqtt.passwordnotifications.telegram_bot_token,notifications.telegram_chat_idgeneral.settings_password,general.contributor_password
Full reference: CONFIGURATION.