- Password hashes
.envfiles with secrets- SSH keys
- Any authentication tokens
- Phone-side
.envfile for runtime-only values such asMONITOR_AUTH_HASH .envfile on the target device (not in Git)- Environment variables passed via
compose.yaml
Notes:
- Normal deploy no longer depends on external SSH from GitHub-hosted runners.
- In the current self-hosted setup,
MONITOR_AUTH_HASHis not consumed as a GitHub Actions deploy secret.
cd src/MobianWebMonitor
dotnet run -- --generate-hash YourSecurePasswordCopy the output hash to your .env file as MONITOR_AUTH_HASH.
These values must ONLY exist in runtime environment, never in source code:
Auth:PasswordHash/MONITOR_AUTH_HASH- Any API tokens
- Password-only login with PBKDF2 (ASP.NET Identity PasswordHasher)
- Cookie-based sessions (7-day sliding expiration)
- Brute-force protection: progressive delays + IP lockout after 5 failed attempts (15 min)
- All API and SignalR endpoints require authentication
- Security headers: CSP, X-Frame-Options DENY, HSTS, no-referrer