Everything can be set in the environment: /opt/gangway/.env for an installer install, the
template on Unraid. Settings not pinned there are editable in Admin.
compose.yaml documents
them inline too. Your own changes to the compose setup go in compose.override.yaml beside it,
which upgrades leave alone.
| Variable |
Default |
|
GANGWAY_BASE_DOMAIN |
required |
Domain for the UI, API, MCP and, by default, previews |
GANGWAY_PREVIEW_DOMAIN |
(base domain) |
Put previews on their own registrable domain |
GANGWAY_PREVIEW_DOMAINS |
(none) |
More wildcard domains previews may be named under, comma-separated |
GANGWAY_INSTANCE |
main (compose) |
Prefix for this install’s containers: gw-<instance>-<slug> |
| Variable |
Default |
|
GANGWAY_LISTEN_ADDRESS |
172.17.0.1 (compose) |
Address gangway listens on; :: for every address |
GANGWAY_LISTEN_PORT |
8443 |
HTTPS port |
GANGWAY_LISTEN_HTTP_PORT |
empty (compose) |
Plain-HTTP port that redirects to HTTPS; empty for none |
GANGWAY_PUBLIC_PORT |
443 (compose) |
The port in the URLs gangway hands out |
GANGWAY_TRUSTED_PROXIES |
172.17.0.0/16 (compose) |
Proxies whose X-Forwarded-For is believed |
GANGWAY_TLS_MODE |
selfsigned |
selfsigned, acme (Let’s Encrypt over DNS-01) or file |
GANGWAY_TLS_CERT_PATH |
(none) |
Certificate for file mode |
GANGWAY_TLS_KEY_PATH |
(none) |
Key for file mode |
GANGWAY_CF_API_TOKEN |
(none) |
Cloudflare token with DNS edit, for acme |
GANGWAY_CF_ZONE_ID |
(looked up) |
The zone, if the token cannot list zones |
GANGWAY_ACME_EMAIL |
(none) |
Contact address for Let’s Encrypt |
GANGWAY_ACME_DIRECTORY_URL |
staging (compose) |
Set to https://acme-v02.api.letsencrypt.org/directory for real |
| Variable |
Default |
|
GANGWAY_ADMIN_TOKEN |
(none) |
Break-glass admin token, the only one that can mint tokens |
GANGWAY_CONTROL_ALLOW |
(everyone) |
Networks allowed to reach the UI and API; previews stay public |
GANGWAY_SURFACE_UI |
(Admin) |
Pin the dashboard on or off |
GANGWAY_SURFACE_MCP |
false |
Pin the MCP surface on or off |
GANGWAY_SHARE |
on if local |
Pin share links on or off; while off, cloudflared never starts |
| Variable |
Default |
|
GANGWAY_PREVIEW_MEMORY |
1g |
Memory limit for every preview container; 0 is off |
GANGWAY_PREVIEW_CPUS |
off |
CPU limit for every preview container |
GANGWAY_PREVIEW_PIDS |
1024 |
Process limit for every preview container |
GANGWAY_RECONCILE_ORPHANS |
report (installer) |
report or stop containers that look like gangway’s but it does not know |
| Variable |
Default |
|
GANGWAY_SMTP_URL |
(Admin) |
smtp://user:pass@host:587 or smtps://…:465, for invites and resets |
GANGWAY_MAIL_FROM |
(Admin) |
The sender address |
GANGWAY_UPDATE_CHECK |
on |
false stops the daily check for a new release |
GANGWAY_GITHUB_APP_ID etc. |
(Admin) |
The GitHub App, if not created from Admin → GitHub |
| Variable |
Default |
|
GANGWAY_STATE_DIR |
/state |
Database, logs, uploads and backups |
GANGWAY_LOG_LEVEL |
info |
debug, info, warn or error |
GANGWAY_CLOUDFLARED |
cloudflared |
The binary share links run; the image has one |