Basics
Basics of GoDoxy
Docker Image
| Tag | Description |
|---|---|
latest | Stable release |
latest-compat | Stable release (godoxy and godoxy-agent only) |
latest-lite | Stable release (lite, WebUI only) |
nightly | Experimental release |
nightly-lite | Experimental release (lite, WebUI only) |
vx.y.z | Stable release |
- Proxy
ghcr.io/yusing/godoxy:<tag> - Frontend
ghcr.io/yusing/godoxy-frontend:<tag> - Agent
ghcr.io/yusing/godoxy-agent:<tag>
Current version
Lite Image
Lite image is a smaller image that runs a static build of WebUI with nginx.
| Pros | Cons |
|---|---|
| Smaller image size | Slower 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 instructionError 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 Variable | Description | Default | Values |
|---|---|---|---|
GODOXY_HTTP_ADDR | HTTP server listening address | :80 | [host]:port |
GODOXY_HTTPS_ADDR | HTTPS server listening address (if enabled) | :443 | [host]:port |
GODOXY_API_ADDR | API server listening address | 127.0.0.1:8888 | [host]:port |
GODOXY_LOCAL_API_ADDR | Local API server listening address for unauthenticated access | - | [host]:port |
GODOXY_HTTP3_ENABLED | Enable HTTP/3 | true | boolean |
GODOXY_DEBUG | Enable debug behaviors and logging | false | boolean |
Authentication
Common
| Environment Variable | Description | Default | Values |
|---|---|---|---|
GODOXY_API_JWT_SECURE | Secure flag for JWT cookie | true | boolean |
GODOXY_API_JWT_SECRET | Base64 JWT secret for api server | random (you will have to login again after restarting GoDoxy) | string |
GODOXY_API_JWT_TOKEN_TTL | JWT Time-to-live | 24h | duration |
To use WebUI without HTTPS, set GODOXY_API_JWT_SECURE to false.
Not recommended.
User Password Auth
| Environment Variable | Description | Default | Values |
|---|---|---|---|
GODOXY_API_USER | WebUI login username | admin | string |
GODOXY_API_PASSWORD | WebUI login password | password | string |
OpenID Connect (OIDC)
OIDC provides enterprise authentication via external identity providers.
See OIDC Configuration for setup instructions.
Metrics
| Environment Variable | Description | Default | Values |
|---|---|---|---|
GODOXY_METRICS_DISABLE_CPU | Disable cpu usage collection | false | boolean |
GODOXY_METRICS_DISABLE_MEMORY | Disable memory usage collection | false | boolean |
GODOXY_METRICS_DISABLE_DISK | Disable disk usage, I/O collection | false | boolean |
GODOXY_METRICS_DISABLE_NETWORK | Disable network I/O collection | false | boolean |
GODOXY_METRICS_DISABLE_SENSORS | Disable sensors info collection | false | boolean |
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.excludeis 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: trueUse 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