エンジニア向け技術仕様
システムアーキテクチャ
Launchora の内部構造・技術スタック・拡張ポイントを公開します。オープンな構成で、インフラを自由に置き換え可能です。
Rust axumK3sCloudflare PagesPostgres 16OpenRouter
ユーザーブラウザからHetzner VPS上のK3sクラスターまでの全体構成です。Cloudflare PagesがフロントエンドをホストしCloudflare DNSが各サービスへルーティングします。
Loading diagram...
VPS: Hetzner cx23(Falkenstein DE)/ K3s シングルノード / Cloudflare Pages(静的エクスポート)
プロジェクト作成リクエストから本番公開まで7〜8ステップを自動実行します。domain_buy・DNS・repo_create・k3s namespace prepは並列実行します。
Loading diagram...
| Step | Description | Client / Service |
|---|---|---|
domain_check | ドメイン空き確認 | Cloudflare API / Onamae API |
domain_buy | ドメイン購入(CF Registrar or お名前.com) | cf-registrar | onamae-bot |
dns_setup | Cloudflare DNS レコード設定 | cf-client |
repo_create | GitLab リポジトリ作成 | gitlab-client |
k3s_namespace_prep | K3s ネームスペース・RBAC 準備 | kubectl |
template_render | Jinja2 + LLM でテンプレートカスタマイズ | Jinja2 + OpenRouter LLM |
k3s_deploy | kubectl apply でデプロイ | kubectl apply |
live_check | HTTP ヘルスチェック(リトライあり) | HTTP GET + retry |
各層の技術選定理由は「Rust = 低メモリ・高速API」「K3s = 軽量K8s」「Cloudflare Pages = ゼロオペレーション静的ホスト」です。
⚙️
バックエンド
- Rust axum
- sqlx
- Postgres 16
- Serde + Tokio
🖥
フロントエンド
- Next.js 15 (App Router)
- Tailwind CSS v4
- TypeScript 6
- Cloudflare Pages
☁️
インフラ
- K3s (Hetzner cx23)
- Nginx Ingress
- cert-manager + Let's Encrypt
- Cloudflare DNS + Registrar
🔄
CI / CD
- GitLab CI
- kaniko (rootless build)
- Group runner (Kubernetes)
- Helm (chart management)
📡
監視・通知
- line-hub (LINE 通知集約)
- Orchestrator health endpoint
- K3s pod restart policy
💳
決済
- Stripe (Test → Live)
- Stripe Tax 自動化
- Webhook 署名検証
- Subscription management
🤖
LLM
- OpenRouter (gpt-4o-mini 主)
- Claude Sonnet (副 / 複雑推論)
- Jinja2 テンプレート
- LLM カスタマイズ生成