クラウドストレージ · KYC不要
Nextcloud をオフショアVPSでホスト
Nextcloudなら、ファイル、同期、カレンダー、連絡先まで揃った完全なプライベートクラウドを、自分が管理するハードウェア上でまるごと運用できます。第三者にデータを覗かれることはありません。
概要
Nextcloudは、オープンソースのクラウドストレージ&コラボレーションプラットフォームです。デスクトップとモバイル間のファイル同期、共有、カレンダー、連絡先に加え、オフィス文書・メモ・写真向けのアプリエコシステムを備えています。Dropbox、Google Drive、iCloudに代わる、セルフホスト型ソリューションの筆頭であり、すべてのデータは自分のサーバーに保存されます。
オフショアでホストする理由
no-KYCのオフショアVPSなら、ファイルが自分の身元に紐づいた米国やEUの大手クラウドアカウントに触れることは一切ありません。さらに帯域無制限のため、大容量の同期やメディア共有のダウンロードで送信データ量(egress)料金がかさむこともありません。暗号資産での支払いとプライバシー重視のロケーション選択により、個人文書のストレージを身元記録と無縁に保ち、一般的なデータ開示請求の管轄外に置くことができます。
デプロイ
実際に動作するリファレンス構成
これを新しいChainVPSインスタンスにコピーしてください。プレースホルダーを置き換えてから起動します。
## docker-compose.yml — Nextcloud + MariaDB + Redis
## Prereqs on Ubuntu 24.04:
## apt update && apt install -y docker.io docker-compose-v2
## Put this file in /opt/nextcloud/ and run: docker compose up -d
## Then front it with a TLS reverse proxy (Caddy/Nginx) on 443 -> 127.0.0.1:8080
services:
db:
image: mariadb:11
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MARIADB_ROOT_PASSWORD=CHANGE_ME_root
- MARIADB_DATABASE=nextcloud
- MARIADB_USER=nextcloud
- MARIADB_PASSWORD=CHANGE_ME_db
networks:
- nc
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --requirepass CHANGE_ME_redis
networks:
- nc
app:
image: nextcloud:30-apache
restart: unless-stopped
depends_on:
- db
- redis
ports:
- "127.0.0.1:8080:80" # bind to localhost; expose via reverse proxy TLS
volumes:
- nextcloud:/var/www/html # app + config + apps
- ./data:/var/www/html/data # user files (put on your big data volume)
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=CHANGE_ME_db
- REDIS_HOST=redis
- REDIS_HOST_PASSWORD=CHANGE_ME_redis
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=CHANGE_ME_admin
- NEXTCLOUD_TRUSTED_DOMAINS=cloud.example.com
- OVERWRITEPROTOCOL=https # required behind a TLS proxy
networks:
- nc
volumes:
db:
nextcloud:
networks:
nc:
ファイアウォール
開放するポート
| ポート | プロトコル | 用途 |
|---|---|---|
| 443 | TCP | TLSリバースプロキシ(Caddy/Nginx)経由のHTTPSアクセス — 外部に公開する唯一のポート |
| 80 | TCP | ACME/Let's Encryptのチャレンジ用HTTPと、HTTPSへのリダイレクト |
| 8080 | TCP | Nextcloudコンテナ用HTTP。127.0.0.1のみにバインドされ、リバースプロキシ経由でのみアクセス可能 |
| 3478 | TCP/UDP | 任意: Nextcloud Talkの音声・ビデオ通話用TURN/coturn |
適正サイジング
必要なプラン
VPS Small (2 vCPU / 4 GB RAM)
1〜5ユーザー、個人用のファイル同期+カレンダー/連絡先向け。ライブラリが増えてきたら、データディレクトリ用にStorageプランのボリュームを追加してください。
VPS Pro (4 vCPU / 8 GB RAM)
10〜30ユーザーで、活発な同期・プレビュー生成・Collabora/OnlyOfficeによる文書編集を利用する場合向け。大容量のStorage層データボリュームと組み合わせてください。
Dedicated (8+ cores / 32 GB RAM) + Storage node
50ユーザー以上、チームでのコラボレーション、Talkによるビデオ通話、大量のプレビュー生成に対応。ユーザーデータは専用のStorageサーバーまたはS3互換の外部ストレージへ移行してください。
最適なロケーション: Nextcloudは個人文書を保管するため、プライバシー重視のロケーション — NL、CH、RO、IS、MD、LU — を選びましょう。スイスとアイスランドは憲法レベルで強力なデータ保護を備え、14-Eyesの中核国の外にあります。モルドバとルーマニアはEUのデータ共有圧力の外に位置します。同期のレイテンシを抑えつつプライバシーに配慮した法域にとどまるため、ユーザーに最も近いリージョンを選んでください。
セキュリティを固める
セキュリティ強化チェックリスト
- コンテナのポートを直接公開しないでください — Nextcloudは127.0.0.1:8080にバインドし、CaddyまたはNginxのリバースプロキシでTLSを終端して、HSTS付きのHTTPSを強制します。生成されるURLを正しくするため、OVERWRITEPROTOCOL=httpsを設定してください。
- NEXTCLOUD_TRUSTED_DOMAINSは実際のホスト名に固定し、admin/db/redisには長くランダムなパスワードを使用してください。初回起動後はワイルドカードのまま放置せず、'occ config:system:set trusted_domains'を実行してください。
- 外部ストレージにはサーバーサイド暗号化を有効にし、全アカウントでブルートフォース対策と2FA(TOTP)をオンにしてください。ログイン画面はNextcloudのログを監視するfail2banの背後に置きます。
- /dataディレクトリは別の大容量ボリューム(ChainVPS Storage)に移動し、データベースダンプとデータディレクトリ双方について 'occ maintenance:mode' によるバックアップをスケジュールしてください。復元テストも定期的に行いましょう。
- 推奨されるバックグラウンドcronジョブは、AJAX cronの代わりにシステムcronから5分ごとに 'docker compose exec -u www-data app php cron.php' を呼び出す形で実行してください。またメモリキャッシュ(上記でRedisを設定済み)を追加し、管理画面の概要にある警告を解消しましょう。
質問
ホスティング Nextcloud — FAQ
ドメイン名は必要ですか?
実質的には必要です。Nextcloudには、有効なTLS証明書を発行するためと、モバイル/デスクトップの同期クライアントが安全に接続するためのホスト名が必要です。AレコードをVPSのIPに向け、NEXTCLOUD_TRUSTED_DOMAINSに設定してください。
ChainVPSのどの製品を選べばよいですか — VPSかStorageか?
アプリ本体はVPSから始め、実際のファイルデータ用にStorageプランを追加・接続してください。Nextcloudの必要な計算リソースはそれほど多くありませんが、ディスクは大量に消費するため、実際のサイジングの判断は安価で大容量なストレージにかかっています。
ファイルデータをメインディスクの外に保管できますか?
はい。/dataパスに別のStorageボリュームをマウントするか、S3互換の外部ストレージを設定してください。これにより、VPSとは独立して容量を拡張でき、バックアップもシンプルになります。
帯域無制限は、Nextcloudにとって実際に役立ちますか?
非常に役立ちます。初回同期、大容量のメディアライブラリ、複数デバイスでの利用は大量のデータを移動させます。転送量無制限であれば、大手クラウドのように大きなアップロード/ダウンロードで思わぬegress料金が発生することもありません。
どうすれば更新とセキュリティを維持できますか?
メジャーバージョンのイメージタグを固定し(例: nextcloud:30-apache)、アップグレード前にスナップショットを取得したうえで、一度に1メジャーバージョンずつ上げて 'occ upgrade' を実行してください。これに2FA、fail2ban、オフホストバックアップを組み合わせれば、しっかりとした基本対策になります。
暗号資産で支払えば、ストレージのプライバシーは守られますか?
支払いはno-KYCで、アカウントに身元情報は一切紐づきません。ただしエンドツーエンドのプライバシーはご自身の設定にも左右されます。プライバシー重視のロケーションを使い、暗号化を有効にし、管理者認証情報は自分で管理してください。ChainVPSが身分証明書の提出を求めることは決してありません。
セルフホストをもっと見る