--- sidebar_position: 1 title: Caddy description: Lightweight reverse proxy with automatic SSL certificates and zero configuration --- import PointDomainToIp from '/docs/partials/\_point_domain_to_ip.md'; import OpenLoginPage from '/docs/partials/\_open_login_page.md'; ## Overview In this guide we will be using Caddy as a reverse proxy to access the Remnawave panel. We will point a domain name to our server and configure Caddy. Caddy will handle issuance of the SSL certificates by itself. ## Caddy configuration ### Simple configuration Create a file called `Caddyfile` in the `/opt/remnawave/caddy` directory. ```bash mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy && nano Caddyfile ``` Paste the following configuration. :::warning Please, replace `REPLACE_WITH_YOUR_DOMAIN` with your domain name. Review the configuration below, look for red highlighted lines. ::: ```caddy title="Caddyfile" // highlight-next-line-red https://REPLACE_WITH_YOUR_DOMAIN { reverse_proxy * http://remnawave:3000 } :443 { tls internal respond 204 } ``` ### Create docker-compose.yml Create a `docker-compose.yml` file in the `/opt/remnawave/caddy` directory. ```bash cd /opt/remnawave/caddy && nano docker-compose.yml ``` Paste the following configuration. ```yaml title="docker-compose.yml" services: caddy: image: caddy:2.9 container_name: 'caddy' hostname: caddy restart: always ports: - '0.0.0.0:443:443' - '0.0.0.0:80:80' networks: - remnawave-network volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy-ssl-data:/data networks: remnawave-network: name: remnawave-network driver: bridge external: true volumes: caddy-ssl-data: driver: local external: false name: caddy-ssl-data ``` ### Start the container ```bash docker compose up -d && docker compose logs -f -t ```