Skip to content

Commit

Permalink
Add NET_ADMIN documentation (#2348)
Browse files Browse the repository at this point in the history
Co-authored-by: Francis Lavoie <[email protected]>
  • Loading branch information
otbutz and francislavoie authored Oct 17, 2023
1 parent 183fe19 commit 7fd17fa
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion caddy/content.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ $ docker run -d -p 80:80 \
The default `Caddyfile` only listens to port `80`, and does not set up automatic TLS. However, if you have a domain name for your site, and its A/AAAA DNS records are properly pointed to this machine's public IP, then you can use this command to simply serve a site over HTTPS:

```console
$ docker run -d -p 80:80 -p 443:443 -p 443:443/udp \
$ docker run -d --cap-add=NET_ADMIN -p 80:80 -p 443:443 -p 443:443/udp \
-v /site:/srv \
-v caddy_data:/data \
-v caddy_config:/config \
Expand Down Expand Up @@ -109,6 +109,14 @@ $ caddy_container_id=$(docker ps | grep caddy | awk '{print $1;}')
$ docker exec -w /etc/caddy $caddy_container_id caddy reload
```

### Linux capabilities

Caddy ships with HTTP/3 support enabled by default. To improve the performance of this UDP based protocol, the underlying quic-go library tries to increase the buffer sizes for its socket. The `NET_ADMIN` capability allows it to override the low default limits of the operating system without having to change kernel parameters via sysctl.

Giving the container this capability is optional and has potential, though unlikely, to have [security implications](https://unix.stackexchange.com/a/508816).

See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for more details.

### Docker Compose example

If you prefer to use `docker-compose` to run your stack, here's a sample service definition.
Expand All @@ -120,6 +128,8 @@ services:
caddy:
image: %%IMAGE%%:<version>
restart: unless-stopped
cap_add:
- NET_ADMIN
ports:
- "80:80"
- "443:443"
Expand Down

0 comments on commit 7fd17fa

Please sign in to comment.