wger: keep SECRET_KEY when JWT generation fails, log its errors

Generate each secret only when missing instead of rewriting the file, so a
failed key generation no longer rotates SECRET_KEY on every boot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
BirdNET-Go Addon BuilderandClaude Opus 5.5 committed 2026-10-17 12:03:02 +02:00
1 parent a33d5240b7
commit 4a6ca551d8
1 file changed
+6 -7
+6 -7
View File
@@ -71,13 +71,12 @@ migrate_database
echo "... generate persistent secrets" echo "... generate persistent secrets"
# Without JWT keys the mobile app login fails with a 500, and without SECRET_KEY # Without JWT keys the mobile app login fails with a 500, and without SECRET_KEY
# sessions are lost at every restart. Generated once, env_vars still override them. # sessions are lost at every restart. Generated once, env_vars still override them.
if ! grep -qs '^JWT_PRIVATE_KEY=' /data/secrets.env; then grep -qs '^SECRET_KEY=' /data/secrets.env ||
{ echo "SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_urlsafe(50))')" >> /data/secrets.env
echo "SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_urlsafe(50))')" grep -qs '^JWT_PRIVATE_KEY=' /data/secrets.env ||
(cd /home/wger/src && sudo -u wger -E HOME=/home/wger python3 manage.py generate-jwt-keys 2> /dev/null | grep '^JWT_') (cd /home/wger/src && sudo -u wger -E HOME=/home/wger python3 manage.py generate-jwt-keys | grep '^JWT_') >> /data/secrets.env ||
} > /data/secrets.env || bashio::log.warning "Unable to generate JWT keys" bashio::log.warning "Unable to generate JWT keys"
chmod 600 /data/secrets.env chmod 600 /data/secrets.env
fi
echo "... add env variables" echo "... add env variables"
( (