caddy

caddy

Docker app from hotio's Repository

Overview

WireGuard VPN, Privoxy and Unbound built-in! Easy reverse proxy!

GitHub
ghcr.io

Upstream Project

Tags Description Commit Last Updated
latest
release
release-0db42da
release-2.11.4
release-v2
release-v2.11
release-v2.11.4
ReleasesModified: meta.json2026-07-08 22:08:07

Starting the container

cli

docker run --rm \
    --name="caddy" \
    -p 80:8080 \
    -p 443:8443 \
    -e PUID=1000 \
    -e PGID=1000 \
    -e UMASK=002 \
    -e TZ="Etc/UTC" \
    -e WEBUI_PORTS="8080/tcp,8443/tcp" \ #(3)!
    -e CUSTOM_BUILD="" \
    -v /<host_folder_config>:/config \
    ghcr.io/hotio/caddy

compose

services:
  caddy:
    container_name: caddy
    image: ghcr.io/hotio/caddy
    ports:
      - "80:8080"
      - "443:8443"
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=002
      - TZ=Etc/UTC
      - WEBUI_PORTS=8080/tcp,8443/tcp #(3)!
      - CUSTOM_BUILD
    volumes:
      - /<host_folder_config>:/config

!!! info

Included modules: [caddy-dns/cloudflare](https://github.com/caddy-dns/cloudflare), [mholt/caddy-ratelimit](https://github.com/mholt/caddy-ratelimit). The default config only allows access from private ip ranges.

Custom build

If you set the environment variable CUSTOM_BUILD to a file location like for example /config/caddy_linux_amd64_custom, an attempt is made to start Caddy with that binary. The custom build can be obtained from the Caddy download page. This is particularly useful if you need extra modules.

Install Caddy on Unraid in a few clicks.

Find Caddy in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Caddy Review the template variables and paths Click Install

Requirements

Don't forget to click **Show more settings...** for all **Variables**! If you do not use the VPN feature, you can remove all VPN related **Variables** and **Extra Parameters** (turn on **ADVANCED VIEW**).

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/hotio/caddy:latest
Last Updated2026-07-17
First Seen2023-08-20

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
bridge
Shell
bash
Privileged
false
Extra Params
--hostname=caddy.internal --cap-add=NET_ADMIN

Template configuration

Host Port for 8080Porttcp

Container Port: 8080

Target
8080
Default
8080
Host Port for 8443Porttcp

Container Port: 8443

Target
8443
Default
8443
Host Path for /configPathrw

Container Path: /config

Target
/config
CUSTOM_BUILDVariable

Container Variable: CUSTOM_BUILD

PRIVOXY_ENABLEDVariable

Container Variable: PRIVOXY_ENABLED

Default
false|true
UNBOUND_ENABLEDVariable

Container Variable: UNBOUND_ENABLED

Default
false|true
UNBOUND_NAMESERVERSVariable

Container Variable: UNBOUND_NAMESERVERS

VPN_ENABLEDVariable

Container Variable: VPN_ENABLED

Default
false|true
VPN_CONFVariable

Container Variable: VPN_CONF

Default
wg0
VPN_PROVIDERVariable

Container Variable: VPN_PROVIDER

Default
generic|proton|pia
VPN_LAN_NETWORKVariable

Container Variable: VPN_LAN_NETWORK

VPN_LAN_LEAK_ENABLEDVariable

Container Variable: VPN_LAN_LEAK_ENABLED

Default
false|true
VPN_EXPOSE_PORTS_ON_LANVariable

Container Variable: VPN_EXPOSE_PORTS_ON_LAN

VPN_AUTO_PORT_FORWARDVariable

Container Variable: VPN_AUTO_PORT_FORWARD

Default
false
VPN_PORT_REDIRECTSVariable

Container Variable: VPN_PORT_REDIRECTS

VPN_HEALTHCHECK_ENABLEDVariable

Container Variable: VPN_HEALTHCHECK_ENABLED

Default
false|true
VPN_NAMESERVERSVariable

Container Variable: VPN_NAMESERVERS

VPN_PIA_USERVariable

Container Variable: VPN_PIA_USER

VPN_PIA_PASSVariable

Container Variable: VPN_PIA_PASS

VPN_PIA_PREFERRED_REGIONVariable

Container Variable: VPN_PIA_PREFERRED_REGION

VPN_PIA_DIP_TOKENVariable

Container Variable: VPN_PIA_DIP_TOKEN

VPN_PIA_PORT_FORWARD_PERSISTVariable

Container Variable: VPN_PIA_PORT_FORWARD_PERSIST

Default
false|true
PUIDVariable

Container Variable: PUID

Default
99
PGIDVariable

Container Variable: PGID

Default
100
UMASKVariable

Container Variable: UMASK

Default
002