Caddy
Единственный веб-сервер, который делает HTTPS из коробки. Никаких certbot, cron-задач на обновление, ручной конфигурации TLS. Написал домен — Caddy сам получил сертификат.
Базовый Caddyfile
example.com {
reverse_proxy localhost:8080
}
sub.example.com {
reverse_proxy localhost:8080 {
header_up Host localhost
}
}Статика
site.com {
root * /var/www/site
try_files {path} {path}.html {path}/ index.html
file_server
encode gzip zstd
}try_files — для SPA и красивых URL. encode gzip zstd — сжатие.
Редиректы
site.com {
redir /git https://github.com/user permanent
redir /tg https://t.me/user permanent
root * /var/www/site
file_server
}Проверка и перезагрузка
caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddyПерезагрузка без даунтайма
Caddy перезагружается без даунтайма — текущие соединения завершаются, новые идут по новому конфигу.
Права на файлы
Caddy работает от пользователя caddy. Файлы должны быть читаемы:
chmod -R 644 /var/www/site/* # файлы
chmod -R 755 /var/www/site/ # директорииRsync с --chmod=F644 решает это автоматически. Подробнее: .
Caddy в Docker
services:
caddy:
image: caddy:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
restart: unless-stoppedПодробнее в .
Связанные статьи
- — основы Docker для self-hosting
- — P2P-синхронизация, Web UI через Caddy
- — деплой статического сайта
- — радио через Caddy reverse proxy
Связанные