In Python-Shell:
from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())
Dann auf dem Server als ENV setzen (Beispiel):
export SETTINGS_MASTER_KEY="DEIN_FERNET_KEY_HIER"
Venv:
python -m venv venv
source venv/bin/activate
Die Environment Variable hinzufügen:
SECRET="$(python -c 'import secrets; print(secrets.token_hex(32))')"
printf "SECRET_KEY=%s\n" "$SECRET" > /root/caltracker/.env
chmod 600 /root/caltracker/.env
dies systemd hier
/etc/systemd/system/caltracker.service
[Unit]
Description=Caltracking Flask App (gunicorn)
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/caltracker
EnvironmentFile=/root/caltracker/.env
# optional aber sinnvoll: eigene DB/Uploads/Logs sauber ablegen
Environment="PYTHONUNBUFFERED=1"
ExecStart=/root/caltracker/venv/bin/gunicorn \
--workers 2 \
--bind 0.0.0.0:8000 \
--access-logfile - \
--error-logfile - \
wsgi:app
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
dann
systemctl daemon-reload
systemctl enable --now caltracker
systemctl status caltracker
für den log:
journalctl -u caltracker -f