Skip to main content

Panel Security

What is already in place​

MechanismDetails
Brute-force protection on login5 attempts per "login + IP" pair, 20 from one IP, 50 per login, with escalating lockout
Passwordshashed; a password never appears in failed-login notifications
Administrator audit logadmin_audit_log table: who, what, when, IP, result
Secrets at restthe TOTP secret is stored encrypted (AES-256-GCM)
No external requeststhe built bundle makes no calls to third-party services: icons, version checks, and telemetry have been removed
Request bodies are not loggedotherwise passwords, tokens, and OAuth2 secrets would end up in the log — only the method, path, result, IP, and time are recorded
Retentionautomatic cleanup of personal data on schedule (see Environment Variables)

What is logged and what happens to it​

WhatWhereDefault retentionContains
Administrator action logadmin_audit_log30 dayswho, what, when, IP
User deviceshwid_user_devices90 daysHWID, OS, user-agent, IP
Subscription requestsuser_subscription_request_history30 daysIP, user-agent
Traffic historynodes_user_usage_history14 daysno IP
Node statisticsnodes_usage_history90 daysno IP

Automatic cleanup is disabled by default: enable SERVICE_CLEAN_USAGE_HISTORY and SERVICE_CLEAN_OLD_LOGS if you want the retention periods to be enforced automatically.

Manual cleanup​

On the Logs page, select the sources and click "Delete selected". The server additionally requires explicit confirmation (confirm: true), so cleanup cannot be triggered outside the interface.

The administrator action log is available on the Audit Log page: filters by administrator and result, plus pagination.

Administrator checklist​

  • APP_SECRET is stored in a safe place (a secrets manager, not a chat).
  • The .env file has permissions 600 and does not end up in backups accessible to third parties.
  • The panel is reachable only over HTTPS; HTTP redirects.
  • METRICS_PORT is closed to the outside: metrics are served only on 127.0.0.1.
  • Node port 2222 is reachable only from the panel IP.
  • 2FA (TOTP) is enabled for administrators.
  • A link to the source code is available to users (AGPL §13).
  • The administrator password is kept in a password manager: the requirements are strict, but they are exactly what protects the single entry point.

SSH terminal to nodes​

The feature (Settings → Experimental) gives you a command line on node servers. The private key is stored encrypted in the browser and is not sent to the server, but the access itself is very broad. Enable it only if you understand the consequences, and grant it to as few administrators as possible.

Reporting a vulnerability​

Do not open a public issue. Describe the problem privately through Security Advisories in the repository.