PortivoDocs · v2.0.0Complete handbookportivo.orgGitHub
Security

Security hardening guide

Practical deployment guidance and explicit 2.0.0 limitations.

v2.0.0Source-backed
Public Internet exposure is unsupported. Keep Portivo behind management-network controls.

Minimum deployment checklist

  1. Generate a long random APP_SECRET_KEY.
  2. Restrict TCP 8766 to the exact management subnets that require access.
  3. Use HTTPS through a trusted reverse proxy for browser paths that are not physically/administratively isolated.
  4. Set PUBLIC_URL_SCHEME=https behind TLS termination.
  5. Enable TRUST_PROXY_HEADERS only for explicit trusted proxy IPs.
  6. Back up portivo.db and the matching application secret.
  7. Use least-privilege network accounts and role scopes.
  8. Use SHA-256/AES SNMPv3 where device compatibility permits it. Treat SHA/DES as legacy modes.
  9. Review release dependencies and checksums before deployment.

Current limitations to account for

  • The default application bind remains 0.0.0.0:8766 with HTTP.
  • Windows LAN-access behavior can open Domain, Private and Public firewall profiles when enabled.
  • The current source does not document persistent SSH host-key fingerprint pinning as a Portivo control.
  • The current Windows service packaging should be reviewed against your least-privilege host policy.

Place Portivo on an administrative server/network with reachability to managed switch SSH and UPS SNMPv3 interfaces but with browser ingress restricted to authorized IT subnets. Avoid using a general user LAN as the management plane.

Source-backed detail

Production hardening checklist

  1. Generate a long unique application secret before first production start.
  2. Terminate TLS at a maintained reverse proxy and set the public URL scheme to HTTPS.
  3. Enable forwarded-header trust only for exact proxy addresses.
  4. Restrict ingress to administrative networks; never publish TCP 8766 directly.
  5. Use least-privilege roles, narrow Site/Group scope and separate automation credentials.
  6. Establish SSH host-key trust and review changes deliberately.
  7. Back up the database, protect backups as secrets and test restore.
  8. Keep the exact locked dependencies and validate installer/runtime hashes.
  9. Review sessions, failed authentication, Jobs, Audit Log and notification delivery.

Supply-chain baseline

The packaged installers use an exact dependency lock and verified upstream artifacts. Windows runtime and service-wrapper downloads are hash checked, Python Authenticode failure is fail-closed, and the Linux service uses a restricted systemd sandbox. Preserve these controls when repackaging.