You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.1 KiB

https://pimylifeup.com/raspberry-pi-caddy-web-server/

sudo apt update
sudo apt upgrade
sudo apt remove apache2
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
$ wget https://github.com/caddyserver/caddy/releases/download/v2.6.1/caddy_2.6.1_linux_arm64.tar.gz -O caddy.tar.gz

$ mkdir caddy && tar -zxvf caddy.tar.gz -C caddy

$ cd caddy
$ mv caddy_linux_arm7 caddy
sudo mkdir /etc/caddy

sudo nano /etc/caddy/Caddyfile
$ sudo setcap CAP_NET_BIND_SERVICE=+eip ./caddy

install/update acme client

$ sudo apt-get install certbot

to check acme version

install the script

$ curl https://get.acme.sh | sh

!!!! run service

$ sudo ./caddy run --config Caddyfile

Run as Service

Reference

  • Setup user / group
$ sudo mv caddy /usr/bin/

$ caddy version

$ sudo groupadd --system caddy

$ sudo useradd --system \
    --gid caddy \
    --create-home \
    --home-dir /var/lib/caddy \
    --shell /usr/sbin/nologin \
    --comment "Caddy web server" \
    caddy

  • create Caddyfile
$ sudo mkdir /etc/caddy
$ sudo nano /etc/caddy/Caddyfile

homenetyth.ddnsking.com, homeyth.ddnsking.com {
	reverse_proxy 127.0.0.1:3000 {
		lb_policy first
	}
}

homenetyth.ddnsking.com:5001 {
	reverse_proxy https://192.168.0.16:5001 {
		transport http {
			tls
			tls_insecure_skip_verify
		}
	}
}

homenetyth.ddnsking.com:8080 {
	reverse_proxy http://192.168.0.174:8080
}
  • create caddy.service
$ sudo nano /etc/systemd/system/caddy.service

# caddy.service
#
# For using Caddy with a config file.
#
# Make sure the ExecStart and ExecReload commands are correct
# for your installation.
#
# See https://caddyserver.com/docs/install for instructions.
#
# WARNING: This service does not use the --resume flag, so if you
# use the API to make changes, they will be overwritten by the
# Caddyfile next time the service is restarted. If you intend to
# use Caddy's API to configure it, add the --resume flag to the
# `caddy run` command or use the caddy-api.service file instead.

[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
  • Load the service
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now caddy

# verify service is running
$ systemctl status caddy

  • Service is ready

  • Future editing

$ sudo nano /etc/caddy/Caddyfile