# 20240205150537 Caddyをraspi4にインストール #raspi #caddy #web_server ### インストール [How to Setup a Raspberry Pi Caddy Web Server - Pi My Life Up](https://pimylifeup.com/raspberry-pi-caddy-web-server/) の方法が現在 20240205 は利用できない。 ``` Err:4 https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABA1F9B8875A6661 ``` このgpgエラーは、鍵が公開されていないのか、解決不能。 仕方ないのでソースからビルド。 まずgoが必要。 [[20240205152229 raspi4にgoをインストールする|raspi4にgoをインストールする]] caddyをビルド。 ```sh $ sudo apt install git (インストールしてなければ) $ git clone --depth=1 https://github.com/caddyserver/caddy.git $ cd caddy/cmd/caddy/ $ go build $ cd ../../.. $ sudo mv caddy /usr/local ``` `/usr/local/caddy/cmd/caddy` にパスを通す。 /etc/profileに追加。 ``` $ sudo setcap cap_net_bind_service=+ep /usr/local/caddy/cmd/caddy/caddy $ sudo visudo ``` `username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap` を追加。 WEBサーバーのルートを作る ``` $ sudo mkdir /var/www $ sudo chmod a+rw /var/www ``` Caddyfileを /etc 以下に作成 ``` $ sudo mkdir /etc/caddy/ $ sudo touch /etc/caddy/Caddyfile $ sudo chmod a+rw /etc/caddy/Caddyfile ``` Caddyfileを編集 ``` localhost, 127.0.0.1 192.168.1.100(自分で決めたIPアドレス), saipi4.local(自分で決めたhostname), notes.kinoshita-lab.org(cludflareで設定したhostname) { root * /var/www file_server } ``` /var/wwwにindex.htmlを作成 ``` AYBABTU

All your base are belong to us.

``` caddyを起動 ``` caddy run --config /etc/caddy/Caddyfile ``` 証明書が無いなど、色々怒られるかもだけど、とりあえずネットワーク内から接続できる。 saipi4は私のraspi4のhostname。 ![[Pasted image 20240205205804.png]] ### サービス化 [Keep Caddy Running — Caddy Documentation](https://caddyserver.com/docs/running#linux-service) 上記を参考にしつつ、パスなどを自分の環境にあわせる。 ``` $ sudo groupadd --system caddy ``` caddy.serviceはこちらを使用 [dist/init/caddy.service at master · caddyserver/dist · GitHub](https://github.com/caddyserver/dist/blob/master/init/caddy.service) 変更点は下記2カ所 ``` ExecStart=/usr/local/caddy/cmd/caddy/caddy run --environ --config /etc/caddy/Caddyfile ExecReload=/usr/local/caddy/cmd/caddy/caddy reload --config /etc/caddy/Caddyfile --force ``` あとは書いてある通りに実行 ``` $ sudo systemctl daemon-reload $ sudo systemctl enable --now caddy ``` ``` $ systemctl status caddy systemctl status caddy ● caddy.service - Caddy Loaded: loaded (/etc/systemd/system/caddy.service; enabled; preset: enabled) Active: active (running) since Sun 2024-02-11 18:09:01 JST; 14s ago Docs: https://caddyserver.com/docs/ Main PID: 3203 (caddy) Tasks: 11 (limit: 3918) CPU: 249ms CGroup: /system.slice/caddy.service └─3203 /usr/local/caddy/cmd/caddy/caddy run --environ --config /etc/caddy/Caddyfile ... ``` 動いてる。 Caddyfileを /etc 以下に作成 ``` $ sudo mkdir /etc/caddy/ $ sudo toucn /etc/caddy/Caddyfile ``` Caddyfileを編集 ``` localhost, 127.0.0.1 192.168.1.100(自分で決めたIPアドレス) saipi4.local(自分で決めたhostname) { root * /var/www file_server } ``` /var/wwwにindex.htmlを作成 ``` This is the title of the webpage!

All your base are belong to us.

``` caddyを起動 ``` caddy run --config /etc/caddy/Caddyfile ``` 色々怒られるかもだけど、とりあえずネットワーク内から接続できる。 saipi4は私のraspi4のhostname。 ![[Pasted image 20240205205804.png]] ## cf. - [GitHub - caddyserver/caddy: Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS](https://github.com/caddyserver/caddy?tab=readme-ov-file#build-from-source) - [caddyで簡単にhttpsサイト #http2 - Qiita](https://qiita.com/mmotoi/items/1af28e2e62a4e344eb6c) - [Caddy:Caddyfileに\`localhost\`を指定すると、https://127.0.0.1/ ではアクセスできない](https://zenn.dev/yuji38kwmt/articles/5d3e729dc9a5c1)