Docmostは、オープンソースのコラボレーティブなウィキとドキュメントプラットフォームです。VPS上にセルフホスティングすることで、完全なデータ所有権を持ち、独自ドメインを設定し、席ごとの料金を気にする必要がありません。このガイドでは、新しいUbuntu VPSからSSLとNginxを設定した稼働中のDocmostインスタンスまでの全設定手順を解説します。
前提条件
作業を始める前に必要なもの:
- Ubuntu 22.04または24.04を実行しているVPS(推奨:1 vCPU以上、2GB RAM)
- VPSのIPアドレスに向けたドメインまたはサブドメイン(例:
docs.yourdomain.com) - サーバーへのrootまたはsudoアクセス
- DockerとDocker Composeのインストール
おすすめのVPSプロバイダー:
- Hetzner Cloud - €4.15/月、2 vCPU、4GB RAM(コストパフォーマンス最高)
- Contabo VPS - €5.99/月、4 vCPU、8GB RAM、200GB NVMe
- DigitalOcean - $6/月、初心者にも優しい
ステップ1:VPSを準備する
新しいUbuntu 22.04 VPSをセットアップします。rootとしてSSH接続:
ssh root@your-server-ip
非rootユーザーを作成し、sudo権限を付与(推奨):
adduser deploy
usermod -aG sudo deploy
ステップ2:DockerとDocker Composeをインストールする
# システムの更新
apt update && apt upgrade -y
# Dockerのインストール
curl -fsSL https://get.docker.com | sh
# ユーザーをdockerグループに追加
usermod -aG docker deploy
# インストール確認
docker --version
docker compose version
設定変更を反映させるために、一度ログアウトして再ログインしてください。
ステップ3:Docmost用ディレクトリを作成
mkdir -p /opt/docmost
cd /opt/docmost
ステップ4:Docker Composeファイルを書く
/opt/docmost/docker-compose.ymlを作成してください:
version: '3'
services:
docmost:
image: docmost/docmost:latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://docmost:password@db:5432/docmost
REDIS_URL: redis://redis:6379
depends_on:
- db
- redis
restart: unless-stopped
db:
image: postgres:16
environment:
POSTGRES_USER: docmost
POSTGRES_PASSWORD: password
POSTGRES_DB: docmost
volumes:
- pg_data:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:7
volumes:
- redis_data:/data
restart: unless-stopped
volumes:
pg_data:
redis_data:
セキュリティ上の注意:
passwordは強力でランダムなパスワードに置き換えてください。
ステップ5:Docmostを起動
cd /opt/docmost
docker compose up -d
すべてのコンテナが稼働していることを確認:
docker compose ps
docmost、db、redisがrunning状態で表示されるはずです。動作がおかしい場合はログを確認してください。
docker compose logs docmost
ステップ6:Nginxのインストールと設定
apt install nginx -y
/etc/nginx/sites-available/docmostを作成:
server {
listen 80;
server_name docs.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name docs.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/docs.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/docs.yourdomain.com/privkey.pem;
client_max_body_size 100M;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
サイトを有効化:
ln -s /etc/nginx/sites-available/docmost /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
ステップ7:SSL証明書の取得
apt install certbot python3-certbot-nginx -y
certbot --nginx -d docs.yourdomain.com
指示に従って進めてください。Certbotが自動的にNginxの設定を更新し、証明書の自動更新も設定します。
ステップ8:ファイアウォールの設定
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable
ポート3000は直接開放しないように。すべての通信はNginxを通じて行います。
ステップ9:最初のログインとワークスペース設定
- ブラウザで
https://docs.yourdomain.comを開く - 最初のアクセス時にDocmostのセットアップウィザードが表示される
- 管理者アカウント(メール・パスワード)を作成
- ワークスペースに名前を付ける
- 最初のスペースを作成(例:「Engineering」「Product」「HR」)
- 設定パネルからチームメンバーを招待
Docmostのアップデート
最新イメージを取得して再起動:
cd /opt/docmost
docker compose pull
docker compose up -d
バックアップ戦略
PostgreSQLのデータを定期的にバックアップ:
docker exec docmost-db-1 pg_dump -U docmost docmost > backup_$(date +%Y%m%d).sql
また、Dockerボリューム /var/lib/docker/volumes/docmost_pg_data も定期的にバックアップしてください。
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| コンテナが起動しない | docker compose logsでエラーを確認 |
| 502 Bad Gateway | Docmostの初期化中の場合があるので、30秒待って再試行 |
| WebSocketエラー | Nginxの設定にUpgradeとConnectionヘッダーを追加 |
| DB接続拒否 | DATABASE_URLがPostgresコンテナの認証情報と一致しているか確認 |
次のステップ
- Docmostの設定でSMTPを設定し、メール通知を有効化
- Teamや組織がアイデンティティプロバイダーを使用している場合はOIDC/SSOを設定
- VPSの提供元による自動Docker volumeスナップショットを有効化
VPSプロバイダーの比較については selfhostvps.com/en/best/ をご覧ください。