Skip to content

Configuration Reference

VGate splits configuration into file/env-only keys and DB-backed, hot-reloadable keys.

Manager (manager/config.yml)

File / env only

These cannot be changed at runtime — edit the file (or env) and restart.

KeyEnvDescriptionDefault
server.portSERVER_PORTHTTP listen port for the manager8081
db.dialectDB_DIALECTsqlite or postgressqlite
db.dsnDB_DSNDSN / connection stringSQLite file vgate_manager.db
jwt.secretJWT_SECRETHMAC secret for signing JWTs(required in prod)
admin.bootstrap.usernameBootstrap admin usernameadmin
admin.bootstrap.passwordBootstrap admin password (printed once)change-me

DB-backed (hot-reloadable via PUT /api/v1/admin/system-config)

Changed through the API; no restart needed. Merged over the file config on startup.

KeyDescription
jwt TTLsAccess/refresh token lifetimes.
log.levelLogging verbosity.
log.formatLogging format.
cors.allowed_originsAllowed frontend origins.
timeoutsRequest timeouts.

Server (server/config.yml)

The node's local config holds only manager-connection + sync settings. All serve-side settings (port, transport, security, flows) come from the manager.

KeyDescriptionExample
admin_apiManager base URLhttp://localhost:8081
node_idNode id assigned in admin console1
node_tokenNode token assigned in admin console****
sync_intervalSeconds between syncs30
log_levelLog verbosityinfo

Frontends (public/env.jsdist/env.js)

Not bundled — edited after build.

VariableMeaning
window.__ENV__.API_BASE_URLEmpty '' → relative /api/v1; or full manager URL.

Per-node serve settings (set in admin console, delivered by manager)

SettingValues
Listen portAny free port on the node host
Transporttcp, ws, xhttp
SecurityTLS / Reality (applied via transport/security.Wrap for tcp)
VLESS flowv0, v2, xtls-rprx-vision

viper env mapping

The manager maps SERVER_PORT-style environment variables, so you can override file keys with env vars in containers.

Licensed under AGPL-3.0.