be1f3b3ad6
- Shorten access token to 30min with 7-day refresh token flow - Add WebAuthn passkey registration and login with TOTP fallback - Add Content-Security-Policy header - Add audit logging middleware to /volume1/docker/nas-dashboard/audit.log - Block /volume1/docker/ in files endpoint - Encrypt TOTP secret at rest with Fernet (derived from SECRET_KEY) - New deps: py_webauthn, cryptography
37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
import os
|
|
# Dashboard v1.3 — Runner DNS fix applied
|
|
|
|
GITEA_URL = os.environ.get("GITEA_URL", "http://gitea:3000")
|
|
GITEA_TOKEN = os.environ.get("GITEA_TOKEN", "")
|
|
DOCKER_HOST = os.environ.get("DOCKER_HOST", "tcp://docker-socket-proxy:2375")
|
|
VOLUME_ROOT = os.environ.get("VOLUME_ROOT", "/volume1")
|
|
|
|
# Auth
|
|
SECRET_KEY = os.environ.get("SECRET_KEY", "")
|
|
ALGORITHM = "HS256"
|
|
ACCESS_TOKEN_EXPIRE_MINUTES = 30
|
|
REFRESH_TOKEN_EXPIRE_MINUTES = 60 * 24 * 7 # 7 days
|
|
ADMIN_USER = os.environ.get("ADMIN_USER", "admin")
|
|
ADMIN_PASSWORD_HASH = os.environ.get("ADMIN_PASSWORD_HASH", "")
|
|
TOTP_SECRET = os.environ.get("TOTP_SECRET", "")
|
|
|
|
# SSH terminal
|
|
SSH_HOST = os.environ.get("SSH_HOST", "host.docker.internal")
|
|
SSH_USER = os.environ.get("SSH_USER", "zjgump")
|
|
SSH_KEY_PATH = os.environ.get("SSH_KEY_PATH", "/app/ssh/id_ed25519")
|
|
|
|
VPS_SSH_HOST = os.environ.get("VPS_SSH_HOST", "158.101.140.85")
|
|
VPS_SSH_USER = os.environ.get("VPS_SSH_USER", "jimmyg")
|
|
VPS_SSH_KEY_PATH = os.environ.get("VPS_SSH_KEY_PATH", "/app/ssh/vps_id_ed25519")
|
|
|
|
# Telegram notifications
|
|
TELEGRAM_BOT_TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN", "")
|
|
TELEGRAM_CHAT_ID = os.environ.get("TELEGRAM_CHAT_ID", "")
|
|
TELEGRAM_PROXY = os.environ.get("TELEGRAM_PROXY", "")
|
|
|
|
WEBAUTHN_RP_ID = os.environ.get("WEBAUTHN_RP_ID", "nas.jimmygan.com")
|
|
WEBAUTHN_ORIGIN = os.environ.get("WEBAUTHN_ORIGIN", "https://nas.jimmygan.com")
|
|
|
|
# CORS
|
|
CORS_ORIGINS = os.environ.get("CORS_ORIGINS", "https://nas.jimmygan.com").split(",")
|