GoDoxy
Getting Started

Basics

Basics of GoDoxy

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

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

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

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.

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

On this page