docs for caddy example (#1939)
This commit is contained in:
@@ -2,8 +2,101 @@
|
|||||||
title: Caddy
|
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.
|
||||||
|
///
|
||||||
|
|
||||||
<!-- TODO -->
|
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.
|
||||||
|
|||||||
Reference in New Issue
Block a user