SaaSをサーバー1台でセルフホスト、クラウドプラットフォームの請求なしで
最終更新:
Seedは借りたLinuxサーバーで動き、開発でも本番でもDocker Composeを使って、コマンド1つでデプロイできます。サーバーの準備は文書化された手順で一度だけ行い、それ以降のデプロイはそのコマンドだけです。
- 前段に証明書を自動取得するTraefik
- アプリと並んで動くPostgresとValkey
- S3互換のファイルストレージGarageに、メモの画像やPDF、プロフィール写真を保存。アップロードは署名付きリンク経由で、中身でチェックします。写真(HEICを含む)は、位置情報などのメタデータを取り除いた小さなAVIFとWebPに変換されます
- VictoriaMetrics、VictoriaLogs、Grafanaとアラート
- オプトインで毎日取れる、データベースの暗号化resticバックアップと、文書化された復元手順
- バージョンタグをプッシュすると、CIからリリースイメージを公開
デプロイはSSHでプロジェクトをサーバーにコピーし、Composeで起動します。デプロイのたびに、1回だけ動くサービスがデータベースのマイグレーションを適用します。前段にはTraefikがあり、ホストごとの証明書をLet's Encryptに要求します。
Postgres、Valkey、S3ファイルストア、メトリクス、ログ、アラート付きのダッシュボードがアプリと並んで動き、複数のプロダクトが同じプロキシの背後で1台のサーバーを共有できます。
- Traefik
- Postgres
- Valkey
- VictoriaMetrics
- VictoriaLogs
- Grafana
- Alertmanager
- Garage file store
- restic backups
Kubernetesは必要ですか?
いいえ。開発でも本番でも、サーバー1台のDocker Composeでプロダクト全体が動きます。
複数のプロダクトで1台のサーバーを共有できますか?
はい。プロキシは共有し、ディレクトリ、データベース、データはそれぞれ別に持ちます。サーバーを共有するのは、同じくらい信頼できるプロダクト同士だけにしてください。
バックアップはありますか?
はい。オプトインで、データベースの暗号化resticバックアップを毎日取れます。復元手順も文書化されています。
SeedはNodeやBunで動きますか?
まだです。Seedは現在Denoで動いており、Deno・Node・Bunのどれでも動くようにする作業を進めています(#623)。機能ページのランタイム計画をご覧ください。