127 lines
3.7 KiB
Markdown
127 lines
3.7 KiB
Markdown
|
# 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)
|
|||
|
|
|||
|
- [Caddy:Caddyfileに\`localhost\`を指定すると、https://127.0.0.1/ ではアクセスできない](https://zenn.dev/yuji38kwmt/articles/5d3e729dc9a5c1)
|