docs: update README and config example for v0.11.0

This commit is contained in:
yusing 2025-04-25 14:24:28 +08:00
parent 03401488f6
commit 759995972d
2 changed files with 76 additions and 31 deletions

View file

@ -27,8 +27,8 @@ For full documentation, check out **[Wiki](https://github.com/yusing/godoxy/wiki
- [Running demo](#running-demo) - [Running demo](#running-demo)
- [Key Features](#key-features) - [Key Features](#key-features)
- [Prerequisites](#prerequisites) - [Prerequisites](#prerequisites)
- [How does GoDoxy work](#how-does-godoxy-work)
- [Setup](#setup) - [Setup](#setup)
- [How does GoDoxy work](#how-does-godoxy-work)
- [Screenshots](#screenshots) - [Screenshots](#screenshots)
- [idlesleeper](#idlesleeper) - [idlesleeper](#idlesleeper)
- [Metrics and Logs](#metrics-and-logs) - [Metrics and Logs](#metrics-and-logs)
@ -44,40 +44,46 @@ For full documentation, check out **[Wiki](https://github.com/yusing/godoxy/wiki
## Key Features ## Key Features
- Easy to use - **Simple**
- Effortless configuration - Effortless configuration with [simple labels](https://github.com/yusing/godoxy/wiki/Docker-labels-and-Route-Files) or WebUI
- Simple multi-node setup with GoDoxy agents or Docker Socket Proxies - [Simple multi-node setup](https://github.com/yusing/godoxy/wiki/Configurations#multi-docker-nodes-setup)
- Error messages is clear and detailed, easy troubleshooting - Detailed error messages for easy troubleshooting.
- **Auto SSL** with Let's Encrypt (See [Supported DNS-01 Challenge Providers](https://github.com/yusing/go-proxy/wiki/Supported-DNS%E2%80%9001-Providers)) - **ACL**: connection / request level access control
- **Auto hot-reload** on container state / config file changes - IP/CIDR
- **Container aware**: create routes dynamically from running docker containers - Country **(Maxmind account required)**
- **idlesleeper**: stop and wake containers based on traffic _(optional, see [screenshots](#idlesleeper))_ - Timezone **(Maxmind account required)**
- HTTP reserve proxy and TCP/UDP port forwarding - **Access logging**
- **OpenID Connect integration**: SSO and secure your apps easily - **Advanced Automation**
- [HTTP middleware](https://github.com/yusing/go-proxy/wiki/Middlewares) and [Custom error pages support](https://github.com/yusing/go-proxy/wiki/Middlewares#custom-error-pages) - Automatic SSL certificate management with Let's Encrypt ([using DNS-01 Challenge](https://github.com/yusing/go-proxy/wiki/Supported-DNS%E2%80%9001-Providers))
- **Web UI with App dashboard, config editor, _uptime and system metrics_, _docker logs viewer_** - Auto-configuration for Docker containers
- Supports **linux/amd64** and **linux/arm64** - Hot-reloading of configurations and container state changes
- Written in **[Go](https://go.dev)** - **Idle-sleep**: stop and wake containers based on traffic _(see [screenshots](#idlesleeper))_
- Docker containers
- Proxmox LXCs
- **Traffic Management**
- HTTP reserve proxy
- TCP/UDP port forwarding
- **OpenID Connect support**: SSO and secure your apps easily
- **Customization**
- [HTTP middlewares](https://github.com/yusing/go-proxy/wiki/Middlewares)
- [Custom error pages support](https://github.com/yusing/go-proxy/wiki/Middlewares#custom-error-pages)
- **Web UI**
- App Dashboard
- Config Editor
- Uptime and System Metrics
- Docker Logs Viewer
- **Cross-Platform support**
- Supports **linux/amd64** and **linux/arm64**
- **Efficient and Performant**
- Written in **[Go](https://go.dev)**
## Prerequisites ## Prerequisites
Setup Wildcard DNS Record(s) for machine running `GoDoxy`, e.g. Configure Wildcard DNS Record(s) to point to machine running `GoDoxy`, e.g.
- A Record: `*.domain.com` -> `10.0.10.1` - A Record: `*.domain.com` -> `10.0.10.1`
- AAAA Record (if you use IPv6): `*.domain.com` -> `::ffff:a00:a01` - AAAA Record (if you use IPv6): `*.domain.com` -> `::ffff:a00:a01`
## How does GoDoxy work
1. List all the containers
2. Read container name, labels and port configurations for each of them
3. Create a route if applicable (a route is like a "Virtual Host" in NPM)
4. Watch for container / config changes and update automatically
> [!NOTE]
> GoDoxy uses the label `proxy.aliases` as the subdomain(s), if unset it defaults to the `container_name` field in docker compose.
>
> For example, with the label `proxy.aliases: qbt` you can access your app via `qbt.domain.com`.
## Setup ## Setup
> [!NOTE] > [!NOTE]
@ -95,6 +101,18 @@ Setup Wildcard DNS Record(s) for machine running `GoDoxy`, e.g.
3. You may now do some extra configuration on WebUI `https://godoxy.yourdomain.com` 3. You may now do some extra configuration on WebUI `https://godoxy.yourdomain.com`
## How does GoDoxy work
1. List all the containers
2. Read container name, labels and port configurations for each of them
3. Create a route if applicable (a route is like a "Virtual Host" in NPM)
4. Watch for container / config changes and update automatically
> [!NOTE]
> GoDoxy uses the label `proxy.aliases` as the subdomain(s), if unset it defaults to the `container_name` field in docker compose.
>
> For example, with the label `proxy.aliases: qbt` you can access your app via `qbt.domain.com`.
## Screenshots ## Screenshots
### idlesleeper ### idlesleeper

View file

@ -17,6 +17,25 @@
# 3. other providers, see https://github.com/yusing/godoxy/wiki/Supported-DNS%E2%80%9001-Providers#supported-dns-01-providers # 3. other providers, see https://github.com/yusing/godoxy/wiki/Supported-DNS%E2%80%9001-Providers#supported-dns-01-providers
# acl:
# default: allow # or deny (default: allow)
# allow_local: true # or false (default: true)
# allow:
# - ip:1.2.3.4
# - cidr:1.2.3.4/32
# - country:US
# - timezone:Asia/Shanghai
# deny:
# - ip:1.2.3.4
# - cidr:1.2.3.4/32
# - country:US
# - timezone:Asia/Shanghai
# log: # warning: logging ACL can be slow based on the number of incoming connections and configured rules
# buffer_size: 65536 # (default: 64KB)
# path: /app/logs/acl.log # (default: none)
# stdout: false # (default: false)
# keep: last 10 # (default: none)
entrypoint: entrypoint:
# Below define an example of middleware config # Below define an example of middleware config
# 1. block non local IP connections # 1. block non local IP connections
@ -73,6 +92,14 @@ providers:
# url: https://discord.com/api/webhooks/... # url: https://discord.com/api/webhooks/...
# template: discord # this means use payload template from internal/notif/templates/discord.json # template: discord # this means use payload template from internal/notif/templates/discord.json
# Proxmox providers (for idlesleep support for proxmox LXCs)
#
# proxmox:
# - url: https://pve.domain.com:8006/api2/json
# token_id: root@pam!abcdef
# secret: aaaa-bbbb-cccc-dddd
# no_tls_verify: true
# Check https://github.com/yusing/godoxy/wiki/Certificates-and-domain-matching#domain-matching # Check https://github.com/yusing/godoxy/wiki/Certificates-and-domain-matching#domain-matching
# for explaination of `match_domains` # for explaination of `match_domains`
# #