Server configuration reference
Environment defaults for storage, sign-in, limits, notifications, and native transfer listeners.
On this page
Environment defaults
These values apply to the documented server release. Saved System settings take precedence where supported. Confirm release-specific changes before upgrading, and store secrets in your deployment's protected environment management.
| Variable | Default | Meaning |
|---|---|---|
VOTPORT_ADMIN_PASSWORD |
— | Admin password (hashed with argon2id at startup). Required unless the hash is set. At least 12 characters; a shorter one refuses to start, because this is the credential that still works when the identity provider does not. |
VOTPORT_ADMIN_PASSWORD_HASH |
— | Argon2 PHC string; takes precedence over the plain password. |
VOTPORT_PUBLIC_URL |
— | Public https URL; used for generated links and to mark cookies Secure. |
VOTPORT_BIND |
0.0.0.0:8080 |
Listen address inside the container. |
VOTPORT_PUSH_BIND |
off | UDP address for native VOT pushes. Setting it enables the listener; leave unset to keep native push disabled. |
VOTPORT_PUSH_ADVERTISE |
derived | host:port that native senders dial. Defaults to the host in VOTPORT_PUBLIC_URL and the push bind port. Set it when the public UDP address differs. |
VOTPORT_SERVE_BIND |
unset | UDP address for serving Deliver grants to VOT clients over QUIC; off when unset. Same certificate and issuer key as push. |
VOTPORT_SERVE_ADVERTISE |
derived | host:port that VOT fetch clients dial, on the same rules as VOTPORT_PUSH_ADVERTISE. |
VOTPORT_PUSH_CERT / VOTPORT_PUSH_KEY |
generated | PEM certificate and private key for native push. Set both together to use those paths in place, or leave both unset for a persistent self-signed pair under VOTPORT_DATA_DIR. |
VOTPORT_DATA_DIR |
/data |
State: votport.db (links, upload records; legacy state.json is imported once) and the cookie secret. |
VOTPORT_RECEIVE_DIR |
/received |
Root folder received files are published into. |
VOTPORT_OUTBOUND_DIR |
/outbound |
Root folder for server-rendered projects and files uploaded by admins for outbound links. Nested project subdirectories are allowed. |
VOTPORT_MAX_UPLOAD_BYTES |
50 GiB | Hard cap per upload session (per-link caps can be lower). Accepts plain bytes or a K/KiB/KB, M/MiB/MB, G/GiB/GB, T/TiB/TB suffix, e.g. 500G. |
VOTPORT_ALLOW_HIDDEN |
off | Set 1 to accept dot-file names from uploaders. |
VOTPORT_SESSION_IDLE_SECS |
1800 |
Idle time before an unfinished upload session is discarded. |
VOTPORT_WEB_ROOT |
./web |
Static assets directory (/app/web in Docker). |
VOTPORT_NOTIFY_WEBHOOK_URL |
— | POSTed a JSON summary (event, label, upload_id, total_bytes, files) when an upload completes. |
VOTPORT_NOTIFY_NTFY_URL |
— | Full ntfy topic URL (e.g. https://ntfy.sh/mytopic) sent a message per completed upload. |
VOTPORT_NOTIFY_NTFY_TOKEN |
— | Bearer token for the ntfy topic, if it needs one. |
VOTPORT_NOTIFY_PUSHOVER_TOKEN |
— | Pushover application token (set together with the user key). |
VOTPORT_NOTIFY_PUSHOVER_USER |
— | Pushover application token (set together with the user key). |
VOTPORT_NOTIFY_SMTP_HOST |
— | SMTP host. The channel is inert unless host, from, and at least one to all resolve. |
VOTPORT_NOTIFY_SMTP_PORT |
587 |
SMTP port. Port 465 uses implicit TLS. |
VOTPORT_NOTIFY_SMTP_STARTTLS |
on | SMTP STARTTLS. Off only when 0. Port 465 uses implicit TLS regardless. |
VOTPORT_NOTIFY_SMTP_USERNAME |
— | Optional SMTP AUTH username. |
VOTPORT_NOTIFY_SMTP_PASSWORD |
— | Optional SMTP AUTH password. |
VOTPORT_SCIM_TOKEN |
— | Bearer for the SCIM 2.0 provisioning endpoint at /scim/v2; unset disables it. Overridable via PUT /api/admin/settings. |
VOTPORT_REPLICA_TOKEN |
— | Bearer a standby presents to GET /api/replica; unset disables it. Overridable via PUT /api/admin/settings. |
VOTPORT_STANDBY_SOURCE |
— | votport standby only: the live instance's https URL to pull replicas from. |
VOTPORT_STANDBY_INTERVAL_SECS |
60 |
votport standby only: seconds between pulls; the RPO. |
VOTPORT_SCIM_REQUIRE_PROVISIONING |
0 |
1 refuses SSO sign-in for subjects with no principal row. Overridable via PUT /api/admin/settings. |
VOTPORT_OIDC_SUBJECT_CLAIM |
sub |
Id-token claim used as the principal subject: sub, email, or preferred_username. Must match the SCIM userName mapping. |
VOTPORT_NOTIFY_SMTP_FROM |
— | SMTP From address (required with host and to). |
VOTPORT_NOTIFY_SMTP_TO |
— | Comma-separated SMTP recipients (at least one required with host and from). |
VOTPORT_AUDIT_RETENTION_DAYS |
400 |
Days to keep queryable audit rows; 0 disables pruning. Overridable via PUT /api/admin/settings. |
VOTPORT_UPLOAD_RETENTION_DAYS |
off | Days to keep received files and their records; a daily sweep deletes expired content and audits it. 0 (default) keeps everything. Overridable via PUT /api/admin/settings. |
VOTPORT_DEFAULT_MAX_TOTAL_BYTES |
unlimited | Fills a new tenant's byte quota when the request omits it, and caps received bytes on the unnamed default tenant. Named tenants keep the quota on their row. |
VOTPORT_DEFAULT_MAX_LINKS |
unlimited | Same overlay for max links (new tenants when omitted, and the unnamed default tenant). |
VOTPORT_DEFAULT_MAX_SESSIONS |
unlimited | Same overlay for max concurrent sessions. |
VOTPORT_PUBLIC_PASSWORD_LOGIN |
on | Set 0 to prefer collapsing the local password form when SSO is offered (login API stays available). |
VOTPORT_METRICS_TOKEN |
— | When set, GET /metrics requires this bearer token. Counts only; scrape over an internal interface. |
VOTPORT_TRUSTED_PROXIES |
loopback + private ranges | Comma-separated CIDR blocks (or bare addresses) whose X-Forwarded-For is believed. Anything else is keyed on its socket address. The default trusts any loopback or RFC1918/ULA peer, which is broad: on a shared container network or a LAN bind, anything that can reach the port can pick its own throttle bucket. Name your reverse proxy to close that; see trusted proxy configuration. |
VOTPORT_OIDC_ISSUER |
— | OIDC issuer URL for admin single sign-on. Requires the client id/secret and VOTPORT_PUBLIC_URL; see sign-in configuration. |
VOTPORT_OIDC_CLIENT_ID |
— | OAuth client id at the identity provider. |
VOTPORT_OIDC_CLIENT_SECRET |
— | OAuth client secret at the identity provider. |
VOTPORT_OIDC_ADMIN_GROUP |
— | Group whose members sign in as admins. Unset means every principal your provider authenticates gets admin. |
Operational settings
The System page also manages scheduled backups, replica access, and sign-in settings. Use backup and restore, access configuration, and notifications and retention for their workflows.
Notification delivery is best-effort: a notification failure is logged and does not change the transfer outcome.