public_notes/20240205150537 Caddyをraspi4にインストール.md
2024-02-12 23:13:13 +09:00

126 lines
3.7 KiB
Markdown
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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を作成
```
<!doctype html>
<html>
<head>
<title>AYBABTU</title>
</head>
<body>
<p>All your base are belong to us.</p>
</body>
</html>
```
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
...
```
動いてる。
## 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)
- [CaddyCaddyfileに\`localhost\`を指定すると、https://127.0.0.1/ ではアクセスできない](https://zenn.dev/yuji38kwmt/articles/5d3e729dc9a5c1)