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

3.7 KiB
Executable file
Raw Blame History

20240205150537 Caddyをraspi4にインストール

#raspi #caddy #web_server

インストール

How to Setup a Raspberry Pi Caddy Web Server - Pi My Life Up の方法が現在 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をインストールする

caddyをビルド。

$ 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

上記を参考にしつつ、パスなどを自分の環境にあわせる。

$ sudo groupadd --system caddy

caddy.serviceはこちらを使用 dist/init/caddy.service at master · caddyserver/dist · GitHub

変更点は下記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.