コンテンツにスキップ
Vectana
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

公開する

リバースプロキシや Cloudflare Tunnel で、Vectana を HTTPS で公開する方法。

app コンテナは、サーバー内からだけ接続できる 127.0.0.1:8000 で待ち受けます。外部には、HTTPS のリバースプロキシや Cloudflare Tunnel を通して公開してください。

公開したら、.env の WEB_URL をその URL(例: https://vectana.example.com)にして、docker compose up -d で反映します。招待メールや通知のリンクに使われます。

Caddy

HTTPS の証明書も自動で取得されます。

vectana.example.com {
    reverse_proxy 127.0.0.1:8000
}

nginx

server {
    listen 443 ssl;
    server_name vectana.example.com;

    ssl_certificate     /etc/letsencrypt/live/vectana.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vectana.example.com/privkey.pem;

    client_max_body_size 10m;  # lockfile のアップロード(最大 10MB)

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Cloudflare Tunnel

サーバーのポートを開けずに公開できます。cloudflared の設定ファイルの ingress に追加し、DNS にルートを登録します。

ingress:
  - hostname: vectana.example.com
    service: http://localhost:8000
  # …ほかのホスト…
  - service: http_status:404
cloudflared tunnel route dns <トンネル名> vectana.example.com
sudo systemctl restart cloudflared

http_status:404 の行は最後に置く必要があります。それより後ろに書いたルールは使われません。

確認

curl https://vectana.example.com/api/health
# {"status":"ok","version":"1.0.0"}