这是本文档旧的修订版!
Caddy
Caddy can manage https certificate automatically.
Install
- compose.yml
- services:
- caddy:
- image: caddy:latest
- container_name: caddy
- restart: unless-stopped
- networks:
- - web
- ports:
- - "80:80"
- - "443:443"
- volumes:
- - ./Caddyfile:/etc/caddy/Caddyfile
- - ./data:/data
- - ./config:/config
- networks:
- web:
- external: true
Then run in docker
cd ~/services/caddy docker compose up -d
Config
Write Caddyfile to map your site.
For any change in Caddyfile during its run, reload it using
cd ~/services/caddy docker compose exec caddy caddy validate --config /etc/caddy/Caddyfile && \ docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile
Host a static site
xiaobenmao.win {
encode zstd gzip
root * /srv/www
file_server
}
Need to ensure the root path in docker container, here /srv/www, mapped to a real directory using the compose.yml.
Map to a site (reverse_proxy)
auth.xiaobenmao.win {
reverse_proxy authentik-server-1:9000
}
bits.xiaobenmao.win {
reverse_proxy bits-wordpress:80
}
wiki.xiaobenmao.win {
reverse_proxy pkb:8080
}
Redirect
www.xiaobenmao.win {
redir https://xiaobenmao.win{uri}
}