GoDoxy là một công cụ reverse proxy mã nguồn mở, được viết bằng Go, được thiết kế để thay thế các giải pháp như Nginx Proxy Manager (NPM), Caddy và Traefik. Nếu bạn đang tìm kiếm một reverse proxy nhẹ, đơn giản, nhưng mạnh mẽ với giao diện web trực quan, GoDoxy chính là lựa chọn hoàn hảo cho bạn.
GoDoxy được tạo ra với mục tiêu làm cho việc quản lý traffic HTTP/HTTPS trở nên đơn giản hơn bao giờ hết, đặc biệt là khi làm việc với các container Docker. Với hơn 2.5k stars trên GitHub, GoDoxy đã được công nhận là một trong những công cụ self-hosted yêu thích năm 2024 bởi cộng đồng.


Tại sao nên chọn GoDoxy?
- Đơn giản: Cấu hình dễ dàng thông qua WebUI hoặc labels trong Docker Compose
- Hiệu suất cao: Viết bằng Go, tiêu tốn ít tài nguyên hệ thống
- Tính năng phong phú: SSL tự động (Let’s Encrypt), OIDC SSO, load balancing, middleware tùy chỉnh
- Tích hợp Docker: Tự động phát hiện container và tạo route mà không cần cấu hình thủ công
- Idlesleeper: Tự động dừng container không sử dụng, tiết kiệm tài nguyên
- Miễn phí hoàn toàn: Tất cả tính năng không bị hạn chế bởi paywall
Yêu cầu hệ thống
Trước khi cài đặt GoDoxy, đảm bảo máy tính của bạn đáp ứng các yêu cầu sau:
- Docker (phiên bản 20.10 hoặc cao hơn)
- Docker Compose (phiên bản 1.29 hoặc cao hơn)
- Wildcard DNS Records: Cấu hình DNS wildcard để trỏ đến máy chạy GoDoxy (ví dụ:
*.domain.com -> 10.0.10.1) - RAM tối thiểu: 512MB (khuyến nghị 1GB trở lên)
- Ổ cứng: Tối thiểu 500MB không gian trống
- Hệ điều hành hỗ trợ: Linux (amd64 và arm64)
- Go 1.22+ (nếu build từ source)
Cách cài đặt GoDoxy
Hướng dẫn cài đặt qua Docker (Khuyến nghị)
Đây là cách nhanh nhất để cài đặt GoDoxy:
- Tạo thư mục cho GoDoxy
mkdir -p ~/godoxy
cd ~/godoxy- Chạy script setup tự động
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/yusing/godoxy/main/scripts/setup.sh)"Script này sẽ tự động tải xuống các tệp cấu hình cần thiết: docker-compose.yml, .env, và config/config.yml.
- Khởi động GoDoxy bằng Docker Compose
docker compose up -d- Truy cập WebUI
Mở trình duyệt web và truy cập:
https://godoxy.yourdomain.comGoDoxy sẽ tạo SSL certificate tự động (nếu DNS được cấu hình đúng) và hiển thị WebUI với dashboard trực quan.
Hướng dẫn cài đặt thủ công
Nếu muốn setup thủ công để có quyền kiểm soát tốt hơn:
- Tạo cấu trúc thư mục
mkdir -p ~/godoxy/config
cd ~/godoxy- Tải tệp cấu hình
# Tải config.yml
wget https://raw.githubusercontent.com/yusing/godoxy/main/config.example.yml -O config/config.yml
# Tải .env
wget https://raw.githubusercontent.com/yusing/godoxy/main/.env.example -O .env
# Tải docker-compose.yml
wget https://raw.githubusercontent.com/yusing/godoxy/main/compose.example.yml -O compose.yml- Chỉnh sửa .env (nếu cần)
Mở .env và cấu hình các biến môi trường:
# Cấu hình listening port
GODOXY_PORT=80
GODOXY_TLS_PORT=443
# Cấu hình domain
GODOXY_DOMAIN=yourdomain.com- Khởi động Docker Compose
docker compose up -dHướng dẫn build từ source
Nếu bạn muốn build GoDoxy từ source code:
- Cài đặt Go (phiên bản 1.22+)
# Trên Ubuntu/Debian
wget https://golang.org/dl/go1.22.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin- Clone repository
git clone https://github.com/yusing/godoxy --depth=1
cd godoxy- Chuẩn bị và build
# Xóa cache cũ (nếu có)
go clean -cache
# Tải dependencies
make get
# Build binary
make build- Chạy GoDoxy
./godoxyGoDoxy sẽ mở nghe trên port 3000 theo mặc định. Bạn có thể cấu hình port thông qua .env.
Cách sử dụng GoDoxy
Giao diện WebUI chính
Sau khi truy cập WebUI, bạn sẽ thấy các section chính:
- Dashboard: Tổng quan về các app, health status, và metrics
- Proxies: Quản lý các route proxy
- Apps: Danh sách các container Docker đã được phát hiện
- Config Editor: Chỉnh sửa
config.ymltrực tiếp - Logs: Xem Docker logs của từng container
- System: Giám sát tài nguyên hệ thống

Cấu hình tự động Docker Container
GoDoxy tự động phát hiện các container Docker và tạo route mà không cần cấu hình thủ công. Dưới đây là ví dụ:
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "8000:8000"
- "9000:9000"
labels:
# Tự động phát hiện bằng GoDoxy
proxy.aliases: portainer
# (Hoặc để trống để dùng container_name)Sau khi khởi động container, bạn có thể truy cập tại: https://portainer.yourdomain.com
Cài đặt SSL Let’s Encrypt tự động
GoDoxy hỗ trợ cấp SSL certificate tự động từ Let’s Encrypt. Cấu hình trong config/config.yml:
acme:
provider: letsencrypt # hoặc provider khác
email: [email protected]
challenge: dns-01 # hoặc http-01GoDoxy sẽ tự động gia hạn certificate trước khi hết hạn.
Bảo mật với OIDC (OpenID Connect)
Bạn có thể bảo vệ các app bằng OIDC SSO. Ví dụ với Authentik hoặc Keycloak:
proxies:
myapp:
target: http://172.17.0.2:5000
middlewares:
- oidc:
client_id: your-client-id
client_secret: your-client-secret
issuer: https://your-oidc-issuerThiết lập Idlesleeper
Tính năng idlesleeper tự động dừng container nếu không có traffic trong thời gian nhất định:
services:
myapp:
labels:
proxy.idlesleep: "30m" # Dừng sau 30 phút không có traffic
Ví dụ trường hợp sử dụng
Trường hợp 1: Trang chủ tập trung
Bạn muốn tạo một homepage tập trung để quản lý tất cả các app self-hosted (Portainer, Plex, Nextcloud, v.v.):
version: '3.8'
services:
# Homepage
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
labels:
proxy.aliases: home
ports:
- "3000:3000"
# Portainer
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
labels:
proxy.aliases: portainer
ports:
- "9000:9000"
# Nextcloud
nextcloud:
image: nextcloud:latest
container_name: nextcloud
labels:
proxy.aliases: nextcloud
ports:
- "8080:80"GoDoxy sẽ tự động tạo route cho tất cả, bạn chỉ cần truy cập:
https://home.yourdomain.comhttps://portainer.yourdomain.comhttps://nextcloud.yourdomain.com
Trường hợp 2: API Gateway với Load Balancing
GoDoxy hỗ trợ load balancing giữa nhiều instance:
proxies:
api:
target:
- http://api-1:3000
- http://api-2:3000
- http://api-3:3000
load_balancer: round_robin # hoặc least, ipTrường hợp 3: Bảo vệ với Cloudflare
Tích hợp Cloudflare Real IP middleware để lấy IP thực của client:
middlewares:
- use: CloudflareRealIPNhững tính năng nổi bật
- Multi-node Setup: Thiết lập GoDoxy trên nhiều node với GoDoxy Agents
- Rule-Based Routing: Định tuyến dựa trên path, header, host tương tự Caddy
- Notification System: Nhận cảnh báo qua Gotify hoặc Webhook (Discord, v.v.)
- Prometheus Metrics: Xuất metrics cho Grafana monitoring
- TCP/UDP Port Forwarding: Không chỉ HTTP, mà còn port forwarding
- Custom Middlewares: Hỗ trợ middleware tùy chỉnh để sửa đổi request/response
- Custom Error Pages: Tạo trang lỗi 404, 500 tùy chỉnh
Những lưu ý quan trọng
- Network Mode: GoDoxy được thiết kế để chạy ở host network mode, tránh những vấn đề về connectivity
- Wildcard DNS: Bạn phải cấu hình wildcard DNS record (
*.domain.com) trước khi sử dụng - Tự động: GoDoxy là một reverse proxy động – tập trung vào tính năng tự động hơn là cấu hình tĩnh
- Sao lưu trước cập nhật: Luôn sao lưu
config.ymltrước khi cập nhật phiên bản mới - Còn phát triển: GoDoxy vẫn đang được phát triển tích cực, có thể xảy ra breaking changes
FAQ (Câu hỏi thường gặp)
Q: GoDoxy có tương thích với Docker Swarm không?
A: Hiện tại, GoDoxy chủ yếu được tối ưu cho Docker daemon. Hỗ trợ Kubernetes vẫn đang được xem xét.
Q: Tôi có thể sử dụng GoDoxy với Cloudflared tunnel không?
A: Có, bạn có thể dùng Cloudflared tunnel kết hợp với GoDoxy. Tuy nhiên, bạn cần cấu hình DNS wildcard thích hợp.
Q: GoDoxy có mất dữ liệu khi cập nhật không?
A: Thường thì không, nhưng nên sao lưu config.yml trước khi cập nhật để an toàn.
Q: Idlesleeper có tác động đến downtime của app không?
A: Có, khi container bị dừng, traffic đầu tiên sẽ chờ container khởi động lại (thường 3-10 giây). Điều này là trade-off để tiết kiệm tài nguyên.
Q: GoDoxy có hỗ trợ wildcard SSL không?
A: Có, GoDoxy tự động tạo wildcard certificate từ Let’s Encrypt cho toàn bộ domain.
GoDoxy là một reverse proxy mã nguồn mở đáng chú ý cho những ai tìm kiếm giải pháp đơn giản, hiệu suất cao, và dễ sử dụng. So với Nginx Proxy Manager, Caddy hay Traefik, GoDoxy nổi bật với:
- Tích hợp Docker tự động mà không cần cấu hình phức tạp
- WebUI trực quan và dễ sử dụng
- Tính năng idlesleeper tiết kiệm tài nguyên
- Đầy đủ các tính năng bảo mật (OIDC, middleware)
- Miễn phí hoàn toàn, không có paywall
Nếu bạn đang quản lý một homelab hoặc infrastructure tự lưu trữ, GoDoxy chắc chắn là công cụ mà bạn nên thử.








