Просто http сервер для публикации сайтов и организации реверс прокси. Для настройки используется файл конфигурации Caddyfile с json описанием сайтов. Имеет большое количество модулей и расширений, может гибко настраиваться.
Не имеет графического интерфейса, вся настройка через файл конфигурации. Поддерживает dns chelenge.
Официальный сайт: Caddy - The Ultimate Server with Automatic HTTPS
Проект на GitHub GitHub - caddyserver/caddy: Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Пример docker compose файла:
type: docker-compose
tags:
aliases:
- Caddy
program:- caddy
modified: 2024-10-06T00:57:55+03:00
dg-publish: true
МОС: “[[Docker Compose]]”
services:
caddy:
image: ghcr.io/deniom3/caddy-cloudflare-transform:latest
container_name: caddy
restart: unless-stopped
cap_add:
- NET_ADMIN
ports:
- 80:80
- 443:443
environment:
ACME_AGREE: true
CLOUDFLARE_API_TOKEN: <CLOUDFLARE_API_TOKEN>
CLOUDFLARE_EMAIL: <CLOUDFLARE_EMAIL>
DOMAIN: deniom.ru
volumes:
- ./data:/data
- ./config:/config
- ./logs:/logs
- ./Caddyfile:/etc/caddy/Caddyfile
[!note]-
Подобно разобрано в [[Настройка реверс прокси Caddy и Fail2Ban в docker|статье]]Настройки проксирования указываются в [[Caddyfile|файле]]
Пример конфиг файла
type: conf
tags:
aliases: Caddyfile
program: caddy
modified: 2025-06-10T01:23:56+03:00
dg-publish: true
Пример настроек Caddy для использования как реверс прокси в домашней сети. Подробная настройка рассмотрена в [[Настройка реверс прокси Caddy и Fail2Ban в docker]].
(common) {
header /* {
-Server
}
}
(cloudflare) {
import common
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
}
}
(local) {
@allowed remote_ip 192.168.0.0/24
handle {
respond 401
}
}
{
log access-log {
include http.log.access
output file /logs/access.log {
roll_keep_for 48h
}
format transform `{ts} {request>headers>X-Forwarded-For>[0]:request>remote_ip} {request>host} {request>method} {request>uri} {status}` {
time_format "02/Jan/2006:15:04:05"
}
}
}
home-assistant.{env.DOMAIN} {
import cloudflare
log
reverse_proxy 192.168.0.125:8123
}
vaultwarden.{env.DOMAIN} {
import cloudflare
log
reverse_proxy 192.168.0.132:10380 {
header_up X-Real-IP {remote_host}
}
}
nextcloud.{env.DOMAIN} {
import cloudflare
log
reverse_proxy 192.168.0.133:11000
}
immich.{env.DOMAIN} {
import cloudflare
log
reverse_proxy 192.168.0.136:2283
}
jackett.{env.DOMAIN} {
import local
import cloudflare
log
handle @allowed {
reverse_proxy 192.168.0.134:9117
}
}
plex.{env.DOMAIN} {
import local
import cloudflare
log
handle @allowed {
reverse_proxy 192.168.0.134:32400
}
}
portainer.{env.DOMAIN} {
import local
import cloudflare
log
handle @allowed {
reverse_proxy 192.168.0.132:9000
}
}
[!urls]- Упоминания:
- [[Self-hosting программы]]
- [[Настройка реверс прокси Caddy и Fail2Ban в docker]]
[!description]- Примечание
Примечание:: Легкий реверс прокси