Collabora Online (ひらめPC)

// 最終更新: 2026-08-26 — hirame 撤去により本構成は消滅 (以下は再構築用の記録)
【重要】2026-08-26 現在、この構成は存在しない。
Collabora Online を載せていた hirame (X58A-UD3R) は物理的に撤去済みで、 実機確認 (ping 不達 / 12XS Te2/0/10・Te2/0/11 とも notconnect) でも存在が確認できない。 対向の maguro も停止中 (IPMI のみ生存) のため、 fabric 直結経路 (173.0.0.6 ⇄ 173.0.0.5) も両端ごと消滅している。

結果として Nextcloud のオフィス編集機能 (Collabora) は現在利用できない。 復旧するには、 まず Collabora の載せ替え先ホストを決めるところから検討し直す必要がある (R640 上の docker、 または新規機材)。

以下の記述はすべて撤去前の構成の記録であり、 再構築時の参照用に温存している。 現況ではない点に注意。

記録 Collabora は hirame (X58A-UD3R, Ubuntu) 上で Docker コンテナ。 fabric 直結で maguro NC と疎結合。 (〜2026-08-26 撤去まで)

ホスト hirame の役割
項目値
ホスト名hirame (Gigabyte X58A-UD3R)
OSUbuntu
主要IP192.168.10.40 (MGMT) / 192.168.20.40 (DATA) / 192.168.50.40 (UPDATE) / 173.0.0.6 (fabric to maguro) / 173.0.0.10 (fabric to R640)
主役Collabora Online Docker container (collabora/code 25.04.9.4)
その他検証環境、 補助ツール
Collabora Docker 構成
項目値
imagecollabora/code (Collabora Online Development Edition 25.04.9.4)
container 名collabora
compose ファイル/home/hirame/collabora/docker-compose.yml
compose projectcollabora
port9980/tcp
extra_hostscloud.k2-o.net:173.0.0.5 (maguro fabric 直結、 2026-05-14)
restartunless-stopped
環境変数 (compose env)
extra_params=--o:ssl.enable=false --o:ssl.termination=true
server_name=cloud.k2-o.net
aliasgroup1=https://cloud\.k2-o\.net:443
username=admin
password=<管理者パスワード>
aliasgroup1 = Collabora側の WOPI ホスト許可。 NC ホスト名 (cloud.k2-o.net) をエスケープ済正規表現で指定。 これと NC 側の wopi_allowlist の両方マッチが必要 (二層認証)。
ネットワーク経路
方向経路備考
NC → Collaboramaguro compose-app-1 → 173.0.0.10:9980fabric R640-HIRAME-FAB 経由 (173.0.0.8/30)
Browser → Collaborabrowser → cloud.k2-o.net → maguro nginx /browser/ proxy → 173.0.0.10:9980WebSocket + HTTP
Collabora → NC (WOPI)container → docker bridge → hirame eth → 173.0.0.5 (maguro fabric) → maguro nginx2026-05-14 fabric 直結化
起動・停止
# hirame で実行
cd /home/hirame/collabora

# 起動
docker-compose up -d

# 停止
docker-compose down

# 再起動 (image更新後など)
docker-compose pull && docker-compose down && docker-compose up -d

# 状態確認
docker ps --filter name=collabora
docker logs collabora --tail 50

# 環境変数 / extra_hosts 確認
docker inspect collabora --format '{{.HostConfig.ExtraHosts}}'
docker inspect collabora --format '{{range .Config.Env}}{{println .}}{{end}}'
Collabora 内部からの NC アクセス確認
# container 内 DNS 解決確認
docker exec collabora getent hosts cloud.k2-o.net
# → 173.0.0.5    cloud.k2-o.net

# container → NC 疎通
docker exec collabora curl -sk -o /dev/null -w '%{http_code} via %{remote_ip}\n' \
  --max-time 8 https://cloud.k2-o.net/status.php
# → 200 via 173.0.0.5
Collabora の管理画面
# admin console (要認証)
http://173.0.0.10:9980/browser/dist/admin/admin.html
# user: admin / pass: docker env の password
ハマりやすいポイント
// docker-compose v1 (Python版) の KeyError

docker-compose up -d --force-recreate 時に KeyError: 'ContainerConfig'。 新しい image との非互換。

解決: docker-compose down → docker-compose up -d で fresh up する。

// extra_hosts が反映されてない

compose.yml を編集後、 既存 container を down しないと extra_hosts が反映されない (running container は変更されない)。 down → up 必須。

// 「認証されていないWOPIホスト」エラー

WOPI 二層認証のどちらかが拒否。 Collabora 構築レポート 参照。

// hosts file がコンテナ内に反映されてない

hirame ホスト側の /etc/hosts はコンテナ内では使えない (docker network isolation)。 必ず extra_hosts または --add-host で渡す。

バージョン情報
# 公式 discovery で確認
curl http://173.0.0.10:9980/hosting/capabilities

# 出力例
{"productName":"Collabora Online Development Edition","productVersion":"25.04.9.4",...}
設計判断 / 履歴
  • なぜ hirame に Collabora を置くか: Collabora は CPU/RAM負荷が高い (Office レンダリング)。 R640 / maguro と分離して干渉を避ける。 ハードウェアは Gigabyte X58A-UD3R (旧PC流用)、 用途特化で十分
  • fabric 直結化 (2026-05-14): 旧 --add-host cloud.k2-o.net:173.0.0.9 (R640 fabric) から 173.0.0.5 (maguro fabric) に変更。 R640 SNI迂回を廃止して経路短縮 + セキュリティ向上
  • aliasgroup1 のエスケープ: https://cloud\.k2-o\.net:443 ドット (.) は正規表現で escape 必要
  • SSL termination は外側で: --o:ssl.enable=false --o:ssl.termination=true。 Collabora 自体は HTTP で動かし、 maguro nginx で SSL終端