インストール
Docker Compose で Vectana を自分のサーバーに立ち上げて、最初の管理者を作るまで。
Vectana は、Docker Hub で公開しているイメージ heki0824/vectana(linux/amd64・linux/arm64)と Docker Compose で動かします。
必要なもの
- Docker と Docker Compose v2 が使える Linux サーバー(メモリ 1GB 以上を推奨)
- サーバーから外部への HTTPS 通信(
api.osv.devとendoflife.dateに問い合わせます) - 公開用のドメインと、HTTPS で公開する仕組み(リバースプロキシや Cloudflare Tunnel など。公開する を参照)
- 招待メールや通知メールを送るための SMTP サーバー(なくても起動できます。メールの設定 を参照)
構成
1 つのイメージを、役割ごとに 4 つのコンテナとして起動します。
| サービス | 役割 |
|---|---|
db |
PostgreSQL 18。データはボリューム db-data に保存されます |
migrate |
起動時にデータベースを最新の構造に更新して終了します |
app |
画面と API。127.0.0.1:8000 で待ち受けます |
worker |
起動時と、その後は定期的に、すべてのパッケージをチェックして通知します |
インストール手順
ファイルを用意する
サーバーに作業用のディレクトリを作り、compose.prod.yaml と設定のひな形を取得します。
mkdir -p /srv/vectana && cd /srv/vectana
curl -fsSLo compose.yaml https://raw.githubusercontent.com/techolve/vectana/main/compose.prod.yaml
curl -fsSLo .env https://raw.githubusercontent.com/techolve/vectana/main/.env.example
chmod 600 .env.env を設定する
最低限、次の値を設定します。
VECTANA_VERSION=1.0.0
POSTGRES_PASSWORD=(ランダムな文字列)
SECRET_KEY=(openssl rand -hex 32 の出力)
WEB_URL=https://vectana.example.com
GROUP_NAME=Example Groupランダムな値は次のコマンドで作れます。
openssl rand -hex 24 # POSTGRES_PASSWORD 用
openssl rand -hex 32 # SECRET_KEY 用SECRET_KEY を設定しないと、app は起動しません。メールの設定は メールの設定、すべての項目は 設定 を参照してください。
起動する
docker compose up -d
docker compose psdb が healthy、migrate が終了(exited 0)、app と worker が起動していれば成功です。
curl http://127.0.0.1:8000/api/health
# {"status":"ok","version":"1.0.0"}最初の管理者を作る
グループ管理者を 1 人作ります。パスワードの入力を求められます。
docker compose exec app python -m app.cli create-admin \
--email you@example.com --name "管理者" --company "Example Inc."--company を付けると、その名前の親会社も一緒に作られ、管理者はそこに所属します。
ログを見る
docker compose logs -f app # 画面と API
docker compose logs -f worker # 定期チェックと通知("Scanned ... package(s)" など)
チェックを今すぐ 1 回だけ実行するには、次のコマンドを使います。
docker compose run --rm worker python -m app.worker --once