SONUB ホーム JA English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

通知を有効にする方法

このブラウザーまたはアドレスでは通知を利用できません。対応ブラウザーで安全な接続のSONUBサイトを開いてください。

通知がブロックされている場合は、ブラウザーの設定で許可してください。

  1. アドレスバー横のサイト設定、またはブラウザーのサイト設定を開き、このサイトの通知を許可に変更してください。
  2. 端末の設定でブラウザーの通知を許可し、おやすみモードや集中モードを確認してください。
  3. SONUBに戻ってページを再読み込みし、ベルから通知を有効にしてください。

iPhoneやiPadではSONUBをホーム画面に追加し、そこから開いて通知を許可してください。

バイブコーディングの一覧へ
バイブコーディング

Webサーバー

が話しかけてくれるスクリプト20行。

Webはを待ってを送るだけのです。それを証明するために、bashととだけでサーバーを作ります — 一行残らず読めます。そのあと、実際のサイトを込みで動かすCaddyへ進みます。

Caddy — 読めるまま残った本物のWebサーバー

Caddyは実行ファイル一つでできた現代的なWebサーバーです。シェルの例のすぐあとに学ぶ価値があるのは、読める数行で動くという感覚をそのままに、シェル版にできなかったこと(大勢の同時接続・HTTPS・住所ごとの道分け)を片づけるからです。

いちばんの売りは自動HTTPSです。本物のドメイン名を与えるだけでを取り、入れ、期限が来る前に更新し、httpの訪問者をhttpsへ回します。ほかのサーバーでは数か月ごとに繰り返す雑用です。

インストール

install
# macOS
brew install caddy

# Ubuntu / Debian — add Caddy's own package list first (official steps)
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
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

# with Docker (covered in the Docker tab): serve this folder on port 8080
docker run -p 8080:80 -v "$PWD":/usr/share/caddy caddy:2

コマンド一行でフォルダーを差し出す

設定ファイルは要りません。index.htmlのあるフォルダーへ行って一行打つだけ — 同じネットワークの誰かにページを見せるいちばん速い方法です。

terminal
# serve this folder's index.html on port 8080
caddy file-server --listen :8080

# add a directory listing for folders without an index.html
caddy file-server --listen :8080 --browse

Caddyfile

長く置くものならCaddyfileを書きます。ただの文字ファイルで、サイト一つが四行で終わります。

Caddyfile
example.com {
	root * /var/www/html
	file_server
	encode gzip zstd
}
  1. example.com {サイトの住所です。ここに本物のドメインを書けばCaddyがHTTPS証明書を自分で用意します。localhostと書いても、Caddyは自分で作った証明書でHTTPSを使います。ただのhttpだけにしたいなら、http://localhostや:80のように書きます。
  2. root * /var/www/htmlファイルがディスクのどこにあるかです。星印はこのサイトのすべてのパスに当てはめるという意味です。
  3. file_serverそのファイルを実際に差し出せ、という行です。この行がないとCaddyはリクエストに何も返しません。
  4. encode gzip zstd送る前にレスポンスを圧縮します。一語ですが、遅い回線ではページが目に見えて速く届きます。
その証明書について

CaddyはLet's Encryptに無料の証明書を求めます。そのためには、ドメインのが自分の機械を指している必要があります。また、80番と443番のポートに外から届く必要があります。前にいる別のプロキシがそのポートを代わりに受けていると、確認に失敗し、証明書は届きません。最初のCaddy設定で鍵が緑にならない、いちばんよくある理由です。

リバースプロキシ — リクエストを渡す

たいていのサイトはディスク上のファイルではなく、どこかのローカルポートで耳を澄ませているアプリケーションです。は外からのリクエストを受けてそのアプリへ渡し、答えを返すサーバーです。一行で済みます。

Caddyfile
example.com {
	reverse_proxy 127.0.0.1:8080
}

files.example.com {
	root * /srv/files
	file_server browse
}

一台の機械が複数のサイトを抱える方法もこれです。443番ポートは一つのプログラムしか持てないのでCaddyがそれを握り、訪問者がどのドメインを求めたかを読んで、それぞれ別のアプリへ回します。

必要なコマンド

コマンド働き
caddy run前面で動かし、記録をターミナルに出します。設定をまだ整えている間はこちらが欲しいはずです。
caddy start背後へ回してプロンプトを返します。ちょっと見せるには十分ですが、きちんとしたサーバーはシステムサービスとして動かします。
caddy reload接続を一つも切らずに、変えた設定を読み直します。Caddyfileを直したからといって再起動は要りません。
caddy fmt --overwriteファイルの書式をその場で標準の形に整えます。Caddyfileは字下げが違っても動きますが、書式がずれているとCaddyが警告を出します。
caddy validate何も起動せずに設定の誤りを調べます。動いているサーバーをreloadする前に、まずこれを回します。
このサイトもまさにそう動いています

SONUBのサーバーでは前段のCaddy一つが80番と443番を握り、ドメイン名で道を分けます。本サイトはLaravelアプリのへ、ダウンロード用のサブドメインはファイルを出す小さなCaddyコンテナへ渡します。上の例のようにサイトごとにブロックを一つ足せばよく、ポートを奪い合う二つ目のプログラムもありません。

自分で記録する欄です。ここで採点はしません。

この段階を理解したものとして記録しますか?

まだ取り消せないので、本当に理解できたときだけ記録してください。

理解したものとして記録しました

自分で記録する欄です。ここで採点はしません。