diff --git a/docs/content/examples/tutorials/caddy.md b/docs/content/examples/tutorials/caddy.md index b41c31f6..16d406e1 100644 --- a/docs/content/examples/tutorials/caddy.md +++ b/docs/content/examples/tutorials/caddy.md @@ -2,8 +2,101 @@ title: Caddy --- -It seems like the Docs on how to setup Caddy are not available yet. +/// note | Opinionated -Feel free to create a PR and add them here. +This guide is opinionated. If you use other conventions or folder layouts, feel free to change the commands and paths. +/// - +We're using [Caddy](https://caddyserver.com/) here as reserve proxy to serve `wg-easy` on [https://wg-easy.example.com](https://wg-easy.example.com) via TLS. + +## Create a docker composition for `caddy` + +```txt +. +├── compose.yml +└── Caddyfile + +1 directory, 2 files +``` + +```yaml +# compose.yml + +services: + caddy: + container_name: caddy + image: caddy:2.10.0-alpine + # publish everything you deem necessary + ports: + - '80:80/tcp' + - '443:443/tcp' + - '443:443/udp' + networks: + - caddy + restart: unless-stopped + volumes: + - './Caddyfile:/etc/caddy/Caddyfile:ro' + - config:/config + - data:/data + +networks: + caddy: + name: caddy + +volumes: + config: + data: +``` + +```txt +# Caddyfile + +{ + # setup your email address + email mail@example.com +} + +wg-easy.example.com { + # since the container will share the network with wg-easy + # we can use the proper container name + reverse_proxy wg-easy:80 + tls internal +} +``` + +...and start it with: + +```shell +sudo docker-compose up -d +``` + +## Adapt the docker composition of `wg-easy` + +```yaml +services: + wg-easy: + # sync container name and port according to Caddyfile + container_name: wg-easy + environment: + - PORT=80 + # no need to publish the HTTP server anymore + ports: + - "51820:51820/udp" + # add to caddy network + networks: + caddy: + ... + +networks: + caddy: + external: true + ... +``` + +...and restart it with: + +```shell +sudo docker-compose up -d +``` + +You can now access `wg-easy` at [https://wg-easy.example.com](https://wg-easy.example.com) and start the setup.