Skip to content

Basic Setup

NOTE

The wiki on https://docs.godoxy.dev reflects the latest changes in the repository.

Open the wiki on your WebUI instance to read docs of the version you're running.

Docker Image

TagDescription
latestStable release
latest-compatStable release (godoxy and godoxy-agent only)
latest-liteStable release (lite, WebUI only)
nightlyExperimental release
nightly-liteExperimental release (lite, WebUI only)
vx.y.zStable release
  • Proxy ghcr.io/yusing/godoxy:<tag>
  • Frontend ghcr.io/yusing/godoxy-frontend:<tag>
  • Agent ghcr.io/yusing/godoxy-agent:<tag>

Current version

GitHub Release

Lite Image

Lite image is a smaller image that runs a static build of WebUI with nginx.

ProsCons
Smaller image sizeSlower compared to the full image
Uses less resources

Compat Image

Compat image is a compatible image for old CPUs / docker version, godoxy and godoxy-agent only.

If you see errors like these, you should use the latest-compat image:

  • SIGILL: illegal instruction
  • Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.47

Secure your containers

NOTE

GoDoxy will work without mapping ports to the host.

Remove ports section in your docker-compose.yml file.

Doing this will make your host has only one exposed service, which is GoDoxy.

Environment variables

Core

NOTE

Also works with old prefix GOPROXY_ or without prefix like API_USER

Environment VariableDescriptionDefaultValues
GODOXY_HTTP_ADDRHTTP server listening address:80[host]:port
GODOXY_HTTPS_ADDRHTTPS server listening address (if enabled):443[host]:port
GODOXY_API_ADDRAPI server listening address127.0.0.1:8888[host]:port
GODOXY_LOCAL_API_ADDRLocal API server listening address for unauthenticated access-[host]:port
GODOXY_HTTP3_ENABLEDEnable HTTP/3trueboolean
GODOXY_DEBUGEnable debug behaviors and loggingfalseboolean

Authentication

Common

Environment VariableDescriptionDefaultValues
GODOXY_API_JWT_SECURESecure flag for JWT cookietrueboolean
GODOXY_API_JWT_SECRETBase64 JWT secret for api serverrandom (you will have to login again after restarting GoDoxy)string
GODOXY_API_JWT_TOKEN_TTLJWT Time-to-live24hduration

DANGER

If you desire to use WebUI without HTTPS, set GODOXY_API_JWT_SECURE to false

Not recommended

User Password Auth

Environment VariableDescriptionDefaultValues
GODOXY_API_USERWebUI login usernameadminstring
GODOXY_API_PASSWORDWebUI login passwordpasswordstring

OpenID Connect (OIDC)

OIDC provides enterprise authentication via external identity providers.

See OIDC Configuration for setup instructions.

Metrics

Environment VariableDescriptionDefaultValues
GODOXY_METRICS_DISABLE_CPUDisable cpu usage collectionfalseboolean
GODOXY_METRICS_DISABLE_MEMORYDisable memory usage collectionfalseboolean
GODOXY_METRICS_DISABLE_DISKDisable disk usage, I/O collectionfalseboolean
GODOXY_METRICS_DISABLE_NETWORKDisable network I/O collectionfalseboolean
GODOXY_METRICS_DISABLE_SENSORSDisable sensors info collectionfalseboolean

Behaviors

Default URL: <container_name>.yourdomain.com

Container Proxying

ALL CONTAINERS are proxied by default, unless any of the following is true:

  • The label proxy.exclude is set to true
  • The container is from a provider in explicit only mode (name with a trailing exclamation mark !)
  • The container is a backend service (e.g.: headless browsers, databases, etc.)
  • The container doesn't have any exposed port
  • The container name starts with buildx_
  • The alias starts with x- or ends with -old

Explicitly Enable Container Proxying

  • GoDoxy < v0.9 - set label proxy.aliases
  • GoDoxy >= v0.9 - set any label starting with proxy.

Health Monitoring

Health monitoring is enabled by default for ALL CONTAINERS, including the excluded ones.

It can be disabled by setting healthcheck.disable: true per route in the route file or in the docker labels.

yaml
services:
  app:
    labels:
      proxy.app.healthcheck.disable: true

Use JSON Schema in IDEs

If you are unsure about what it is, ignore this

Using JSON schema allows static checking in IDEs. For VSCode, copy .vscode/settings.example.json to .vscode/settings.json (under root directory of GoDoxy) and modify it to fit your needs