wg-easy/docs/content/examples/tutorials/caddy.md
Bernd Storath 47c6f476ac
refactor: replace mkdocs with zensical (#2667)
* move docs to zensical

* fix requirements

* fixes

* remove manual font loading

does not work properly with mike

* switch back to pymdownx.blocks.admonition

* revert back

* remove css

* add note about privacy plugin

* pr review findings
2026-06-16 12:56:54 +02:00

1.9 KiB

title
Caddy

/// note | Opinionated

This guide is opinionated. If you use other conventions or folder layouts, feel free to change the commands and paths.

///

We're using Caddy here as reverse proxy to serve wg-easy on https://wg-easy.example.com via TLS.

Create a docker composition for caddy

.
├── compose.yml
└── Caddyfile

1 directory, 2 files
# 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:
# 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:

sudo docker compose up -d

Adapt the docker composition of wg-easy

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:

sudo docker compose up -d

You can now access wg-easy at https://wg-easy.example.com and start the setup.