Setting Caddy Up on Ubuntu
- First we need to install caddy on the server:
```
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
```
1. Next, let's reconfigure caddy:
Change /etc/caddy/Caddyfile to read:
```json
{
log {
output file /var/log/caddy/caddy_log.txt
level DEBUG
}
}
import sites-enabled/*
```
1. Make sure we have a 404 error page:
the Caddyfile should look something like this:
```json
```
{
log {
output file /var/log/caddy/caddy_log.txt
level DEBUG
}
}
:443 {
handle_errors {
header Content-Type text/html
respond <<HTML
<html>
<head><title>Oops</title></head>
<body>
<h5>whoa, we have a problem partner...</h5>
</body>
</html>
HTML 200
}
}
import sites-enabled/*
```
```
1. make sure we have have these directories and that they are owned
by the caddy user:
* /var/log/caddy
* /etc/caddy/sites-enabled
* /etc/caddy/sites-disabled
1. restart caddy:
```bash
... sudo systemctl restart caddy.service
```
1. create a new static site file so we can test the setup:
```json
[site-url] {
root * /var/www/site_dir
file_server
}
```
```
1. make sure ports 80 and 443 is open on the firewall:
```bash
... sudo ufw allow http
... sudo ufw allow https
```