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
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
- 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