$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | -weight: 600;">sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | -weight: 600;">sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | -weight: 600;">sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/caddy-stable.list
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/caddy-stable.list
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/caddy-stable.list
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install caddy -y
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install caddy -y
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install caddy -y
$ caddy version
$ caddy version
$ caddy version
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">stop caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">stop caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">stop caddy
$ -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart caddy
$ -weight: 600;">sudo ufw allow 80/tcp
$ -weight: 600;">sudo ufw allow 443/tcp
$ -weight: 600;">sudo ufw allow 80/tcp
$ -weight: 600;">sudo ufw allow 443/tcp
$ -weight: 600;">sudo ufw allow 80/tcp
$ -weight: 600;">sudo ufw allow 443/tcp
$ -weight: 600;">sudo mkdir -p /var/www/app.example.com
$ -weight: 600;">sudo chown -R caddy:caddy /var/www/app.example.com
$ -weight: 600;">sudo mkdir -p /var/www/app.example.com
$ -weight: 600;">sudo chown -R caddy:caddy /var/www/app.example.com
$ -weight: 600;">sudo mkdir -p /var/www/app.example.com
$ -weight: 600;">sudo chown -R caddy:caddy /var/www/app.example.com
$ -weight: 600;">sudo nano /var/www/app.example.com/index.html
$ -weight: 600;">sudo nano /var/www/app.example.com/index.html
$ -weight: 600;">sudo nano /var/www/app.example.com/index.html
<!DOCTYPE html>
<html>
<head><title>My App</title></head>
<body><h1>Hello World from Caddy on Ubuntu 26.04</h1></body>
</html>
<!DOCTYPE html>
<html>
<head><title>My App</title></head>
<body><h1>Hello World from Caddy on Ubuntu 26.04</h1></body>
</html>
<!DOCTYPE html>
<html>
<head><title>My App</title></head>
<body><h1>Hello World from Caddy on Ubuntu 26.04</h1></body>
</html>
$ -weight: 600;">sudo mkdir -p /var/log/caddy
$ -weight: 600;">sudo chown -R caddy:caddy /var/log/caddy
$ -weight: 600;">sudo mkdir -p /var/log/caddy
$ -weight: 600;">sudo chown -R caddy:caddy /var/log/caddy
$ -weight: 600;">sudo mkdir -p /var/log/caddy
$ -weight: 600;">sudo chown -R caddy:caddy /var/log/caddy
$ -weight: 600;">sudo mv /etc/caddy/Caddyfile /etc/caddy/Caddyfile.default
$ -weight: 600;">sudo mv /etc/caddy/Caddyfile /etc/caddy/Caddyfile.default
$ -weight: 600;">sudo mv /etc/caddy/Caddyfile /etc/caddy/Caddyfile.default
$ -weight: 600;">sudo nano /etc/caddy/Caddyfile
$ -weight: 600;">sudo nano /etc/caddy/Caddyfile
$ -weight: 600;">sudo nano /etc/caddy/Caddyfile
app.example.com { tls [email protected] root * /var/www/app.example.com file_server { index index.html } log { output file /var/log/caddy/app.example.com.log format console }
}
app.example.com { tls [email protected] root * /var/www/app.example.com file_server { index index.html } log { output file /var/log/caddy/app.example.com.log format console }
}
app.example.com { tls [email protected] root * /var/www/app.example.com file_server { index index.html } log { output file /var/log/caddy/app.example.com.log format console }
}
$ -weight: 600;">sudo caddy fmt --overwrite /etc/caddy/Caddyfile
$ -weight: 600;">sudo caddy fmt --overwrite /etc/caddy/Caddyfile
$ -weight: 600;">sudo caddy fmt --overwrite /etc/caddy/Caddyfile
$ -weight: 600;">sudo caddy validate --config /etc/caddy/Caddyfile
$ -weight: 600;">sudo caddy validate --config /etc/caddy/Caddyfile
$ -weight: 600;">sudo caddy validate --config /etc/caddy/Caddyfile
$ -weight: 600;">sudo -weight: 500;">systemctl reload caddy
$ -weight: 600;">sudo -weight: 500;">systemctl reload caddy
$ -weight: 600;">sudo -weight: 500;">systemctl reload caddy - tls: email address for Let's Encrypt registration
- root: document root directory
- file_server: enables static file serving
- log: routes access logs to a file - Configure Caddy as a reverse proxy in front of a Node.js or Python application
- Add multiple sites by appending additional server blocks to the Caddyfile
- Enable automatic HTTP-to-HTTPS redirects — Caddy enables them by default