自前ホスティング(Docker)
Speckle はサーバー含めてオープンソースのため、SaaS の代わりに自社環境へ立てられます。docker-compose でまとめて起動する構成と、データ主権・バックアップなど運用の設計ポイントを整理します。
この記事の要点
- Speckle Server は OSS のため自社サーバー上でセルフホストできる
- 構成要素は概ね PostgreSQL・Redis・オブジェクトストレージ(MinIO 等)・サーバー・フロントエンド
docker-composeなどのコンテナ構成でまとめて起動するのが一般的- 社内にデータを置き続けたい「データ主権」の要件に応えられるが、運用設計の責任が生じる
本記事は Speckle カテゴリの一部として、Speckle Server の自前ホスティング(セルフホスト)を整理します。SaaS ではなく自社環境でデータを管理したい場合の選択肢です。サーバー全体の構成は アーキテクチャ もあわせて参照してください。
1なぜ自前ホスティングするのか
Speckle はサーバー含めてオープンソースのため、ホスティングされた SaaS を使う代わりに、自社のサーバーやクラウド上に同等の環境を立てられます。主な動機は次のとおりです。
一方で、サーバーの構築・監視・バックアップ・アップデートを自分たちで担う責任が生じます。SaaS と自前のどちらを選ぶかは、データ要件と運用体制のトレードオフです。小規模なチームや試験的な利用ではホスティング済みの SaaS から始め、データの社外保管に制約が出てきた段階でセルフホストへ移行する、という段階的な判断もよく取られます。いきなり本番をセルフホストで組むより、要件が固まってから踏み切るほうが手戻りを抑えられます。
2主な構成要素
| 要素 | 役割 |
|---|---|
| PostgreSQL | プロジェクト・ユーザー・メタデータなどを格納するDB |
| Redis | キャッシュ・キュー・セッションなどに使うインメモリストア |
| オブジェクトストレージ(MinIO 等) | モデルの実体(blob)など大きなデータの保存先。S3 互換 |
| Server(バックエンド) | API を提供する本体。GraphQL などで通信する |
| Frontend(フロントエンド) | Web UI とビューアを提供する |
これらを個別に立てるのは煩雑なため、コンテナでまとめて起動するのが一般的です。データの実体は オブジェクトモデル のとおり構造化されており、メタデータは DB、巨大な blob はオブジェクトストレージ、という役割分担になります。役割を分けておくことで、たとえば DB は冗長構成にし、ストレージは大容量のディスクへ、といったように構成要素ごとに最適なリソースを割り当てやすくなります。これは規模が大きくなったときの拡張余地にもつながります。
3docker-compose 構成のイメージ
各サービスを docker-compose でまとめて定義する構成が分かりやすい例です。YAML の記号やインデントは崩れやすいので、ここでは概念図として示します(実際の正しい定義は公式の compose ファイルを使ってください)。
services:
postgres:
image: postgres
redis:
image: redis
minio:
image: minio/minio
speckle-server:
image: speckle/speckle-server
depends_on:
- postgres
- redis
- minio
speckle-frontend:
image: speckle/speckle-frontend-2
ports:
- "80:8080"
上記はあくまで構成の関係を示すための簡略形で、環境変数・接続文字列・ボリュームなどの実設定は省いています。たとえば DB 接続文字列やバケット設定では & や <・> といった記号が現れることがあり、ファイルに書く際は正しい表記を保つ必要があります(本文中ではそれぞれ &・<・> として表記しています)。
4起動とアクセス
compose ファイルが用意できたら、まとめて起動します。コマンドは概念的に次のとおりです。
docker compose up -d
# 状態確認
docker compose ps
# ログ確認
docker compose logs -f speckle-server
起動後、フロントエンドの URL(例:自社サーバーのホスト名)にブラウザでアクセスし、管理者アカウントを作成します。クライアント側(Connector や SDK)からは、この自前サーバーの URL を接続先として登録します。.NET SDK での接続先指定は .NET SDK を参照してください。
運用上の設計ポイント
- TLS / ドメイン:HTTPS 化とリバースプロキシ(nginx 等)の前段配置
- 認証:社内 ID 基盤(SSO 等)との連携要否
- バックアップ:PostgreSQL のダンプとオブジェクトストレージのバックアップを両方とる
- ストレージ容量:モデルの blob は版を重ねると増えるため監視する
- アップデート:イメージ更新時の互換性とデータ移行の確認
セルフホストは「社内にデータを置き続けられる」強みがある一方、これらの運用設計を自分たちで担う必要があります。最初は検証環境で compose を立てて挙動を確認し、本番化の前にバックアップ・復旧手順まで固めておくことを勧めます。構成・イメージ名は版によって変わるため、導入時は公式の最新手順を確認してください。
→次に読む
子ページはありません
人気ページ
- 1 【Revit API】アドインの作成サンプル(外部ツール編)
- 2 Revit の要素(Category / Family / Type / Instance)4 階層モデルとは
- 3 【Revit API】要素の取得とID、名前、タイプの情報表示
- 4 【PythonでRevit API】pyRevitの導入と簡単なアプリケーションの作成
- 5 ArchiCAD 階段と手摺りの作成手順|階段ツール / 設定画面 / 手摺り追加
- 6 【Revit API】アドインの作成サンプル(外部アプリケーション編)
- 7 【Revit API】FamilySymbol(タイプ)の取得とパラメータの変更
- 8 RevitAPI.dll と RevitAPIUI.dll の参照
- 9 【Revit API】特定の要素のパラメータ一覧の取得
- 10 【Revit API】マニフェストファイルの書き方/作成方法
最近更新/作成されたページ
- Revit のエラーとトラブル対処|起動失敗・ライセンス・ファイル破損 2026-10-03 22:22:57
- GSG_01_Getting_Started_Template.rte の入手先(Revit) 2026-10-03 22:22:34
- Revit「Please run MaterialLibrary2021.msi first」の原因と対処 2026-10-03 22:22:34
- Archicadの参照線の配置・移動・削除|1本ずつ消す方法と全削除 2026-10-03 22:20:48
- Archicadで交点にカーソルを合わせる方法|スナップガイド・グリッド 2026-10-03 22:20:48
- Archicadで3D表示する方法|F3・Ctrl+F5と平行投影/パースの切替 2026-10-03 22:20:48
- ARCHICAD Column ツールで柱を配置する手順(断面・高さ・3D 確認) 2026-10-03 22:12:07
- Revitでプロジェクト基準点を表示する方法|測量点との違いと表示設定 2026-10-03 22:11:05
- Revit レベル (Level) 追加・修正完全ガイド(立面ビュー / Plan View 自動作成) 2026-10-03 22:11:05
- Revit プロジェクトの作成手順|テンプレート選択・保存・単位設定 2026-10-03 22:11:05
- Revit 完全ガイド|機能・ファイル形式・料金・システム要件とよくある質問 2026-10-03 22:11:05
- ARCHICAD で床(スラブ)を作る方法|ポリゴン入力と複合構造 2026-10-03 22:11:05
- ARCHICAD 窓の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD ドア (Door) の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD 壁の作成方法完全ガイド 2026-10-03 22:11:05