Nextcloud は、Google Workplace や Microsoft 365 などのサービスに匹敵する、オープンソースのファイル共有およびコラボレーション プラットフォームです。 Nextcloud を使用すると、独自のコラボレーション クラウドをセルフホストできるため、パブリック プロバイダーに縛られる必要がありません。
通常の Nextcloud インストールのセットアップには時間がかかる場合があります。 Nextcloud は従来の LAMP スタック上に構築されている ため、Apache、PHP、MySQL が必要となり 、それぞれに独自の前提条件があります。このため、インストールを維持したり、サーバー上の他のワークロードと一緒に使用したりすることが困難になる可能性があります。
Nextcloud を Docker コンテナーとして実行すると、セットアップ手順が簡素化され、インストールを他のアプリケーションから分離できます。 Nextcloud には 公式の Docker イメージがあり、 この記事ではこれに焦点を当てます。コミュニティの linuxserver プロジェクトは 、いくつかの事前設定されたデフォルトを備えた独自のイメージも提供します。
セットアップの計画
Nextcloud Docker イメージには、機能する Web サーバーのセットアップが付属しています。 Apache、PHP、および事前構成された Nextcloud インストールを入手できます。デフォルトでは SQLite データベースが使用されます。
基本的なことでありながら、
docker run -d -p 80 :80 nextcloud
これには、永続ストレージのプロビジョニングは含まれません。 Dockerized Nextcloud の展開で最も重要な点は、データが 失われない ようにボリュームを正しく構成することです。
さらに、標準の SQLite データベースは小規模な使用にのみ 適しています 。ユーザーの数が数人を超える場合は、MySQL または PostgreSQL データベースをプロビジョニングするとパフォーマンスが向上します。
次に、MySQL 上で実行され、Docker ボリュームを使用してデータを安全に永続化する Dockerized Nextcloud インストールを構築しましょう。 PostgreSQL を使用したい場合は、以下の MySQL への参照を 対応する PostgreSQL に置き換えてください。
セットアップの準備
基本的な Docker CLI コマンドを使用して Nextcloud をデプロイできます。ただし、これはすぐに退屈になってしまい、将来的に覚えておくのが困難になることは言うまでもありません。代わりに、 Docker Compose を使用すると、構成をコードとして定義できます。
システムに Docker と Docker Compose がインストールされて いることを確認してください。 Nextcloud 構成ファイルを保持する新しいディレクトリを作成します。追加
docker-compose .yml
ファイルを開き、次の内容を貼り付けます。
バージョン:「3」
サービス:
次のクラウド:
画像: 次のクラウド: 最新
再起動: 停止しない限り
ポート:
– 80:80
環境:
– MYSQL_HOST=mysql
– MYSQL_DATABASE=ネクストクラウド
– MYSQL_USER=ネクストクラウド
– MYSQL_PASSWORD=ネクストクラウド
ボリューム:
– nextcloud:/var/www/html
mysql:
画像: mysql:8.0
再起動: 停止しない限り
環境:
– MYSQL_DATABASE=ネクストクラウド
– MYSQL_USER=ネクストクラウド
– MYSQL_PASSWORD=ネクストクラウド
– MYSQL_ROOT_PASSWORD=ネクストクラウド
ボリューム:
– mysql:/var/lib/mysql
ボリューム:
mysql:
次のクラウド:
この Compose ファイルには、Nextcloud を安全にインストールするためのすべての構成がカプセル化されています。 MySQL データベースをプロビジョニングし、それに接続するように Nextcloud を構成します。設定する必要があります
MYSQL_PASSWORD
そして
MYSQL_ROOT_PASSWORD
カスタム値を保護するため。
全体
/ var /www/html
ディレクトリは Docker ボリュームとしてマウントされます。 Nextcloud は、ソース、設定、ユーザー データをここに保存します。ディレクトリ全体をボリュームに変換することで、Nextcloud のセルフアップデーターが正しく動作するようになります。そうしないと、セルフアップデーターが Nextcloud のファイルを永続的に置き換えることができないため、新しいコンテナー イメージを取得して更新する必要があります。
Nextcloud サーバーは、デフォルトでマシンのポート 80 にバインドします。次のような別のポートを使用できます。
8080
を更新することで、
ports
構成:
- 8080 :80
これで、Docker Compose を使用して Nextcloud をデプロイする準備が整いました。
docker-compose up -d
Compose がイメージを取得し、コンテナーを起動するまで待ちます。ブラウザで
localhost
にアクセスすると、Nextcloud にアクセスできるようになります。
ファーストラン
初めて Nextcloud にアクセスすると、デフォルトのセットアップ ウィザードが表示されます。最初のユーザー アカウントのユーザー名とパスワードを入力します。カレンダー、連絡先、Nextcloud Talk 通話などのコア アプリをインストールする場合は、[推奨アプリをインストールする] チェックボックスをオンのままにしてください。
「セットアップを完了」をクリックしてインストールプロセスを完了します。アプリのインストールには少し時間がかかる場合があります。セットアップが完了するまでブラウザのタブを閉じないでください。 Nextcloud の準備が完了すると、簡単な入門スライドのセットが表示されます。次に、Nextcloud ダッシュボードに移動します。
ダッシュボードは、クラウド資産の一元的なビューを提供します。個々のアプリはダッシュボードにコンテンツを表示できます。左上隅にあるアイコンを使用して、すべてのアプリにアクセスできます。
追加のアプリをインストールするには、右上隅にあるユーザー プロフィール アイコンをクリックします。メニューから「アプリ」を選択します。左側のサイドバーにあるカテゴリの 1 つをクリックすると、利用可能なアプリがすべて表示されます。アプリのカードの下にある [ダウンロードして有効にする] を押して、Nextcloud インスタンスに追加します。
Nextcloud 管理設定は、ユーザー プロフィール アイコンをクリックし、メニューで [設定] を選択すると表示されます。左側のサイドバーの「管理者」の下にあるリンクをクリックして、管理機能を見つけます。 Nextcloud のバージョンと利用可能なアップデートが「概要」ページに表示されます。
一部の Nextcloud 管理タスクは、
occ
コマンドライン バイナリを通じて呼び出されます。これは Nextcloud ソース内の PHP スクリプトです。コンテナーに完全にアタッチしなくても、
docker-compose exec
を使用して OCC と対話できます。
docker-compose exec --user www-data php occ occ-command-here
occ
が Nextcloud Web インターフェイスと同じユーザーとして実行されるように、
--user
フラグを含めることが重要です。そうしないと、ファイルシステムの所有権とアクセス許可のエラーが発生する可能性があります。
構成の自動化
Nextcloud の管理設定の多くは、コンテナーの起動時に事前に設定できます。このイメージでは、データベースのセットアップ以外にも、メール システムの構成、リモート オブジェクト ストレージへの接続、初期管理者ユーザーの自動作成のための環境変数がサポートされています。これらの値を指定する場合、初回実行セットアップ ウィザードに値を指定する必要はありません。
環境変数の代わりに、
Docker シークレット
を使用して、よりセキュリティを意識した方法で値を設定できます。値をファイルに追加し、Compose の
secrets
キーを使用してコンテナーにマップします。次に、
environment
セクションを更新して、挿入されたシークレット ファイルを読み取ります。
サービス:
次のクラウド:
環境:
– NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
秘密:
nextcloud_admin_password:
ファイル: ./nextcloud_admin_password
シークレットを使用する場合、各 Nextcloud 環境変数の名前に
_FILE
を追加する必要があります。これは、参照されたファイル パスから値を取得するように Nextcloud に指示します。
安全
標準の Docker イメージは、デフォルトでは SSL をセットアップしません。 Apache、Nginx、Traefik などの SSL 終端リバース プロキシの背後にデプロイすることをお 勧めします 。これにより、リクエストが Nextcloud コンテナに転送されます。
Docker イメージは、10.0.0.8/72、172.16.0.0/12、および 192.168.0.0/16 アドレス空間からプロキシされたリクエストを自動的に処理します。プロキシ サーバーの IP が異なる場合は、Nextcloud をデプロイするときに、それを
TRUSTED_PROXIES
環境変数に追加する必要があります。
APACHE_DISABLE_REWRITE_IP=1
を設定する必要もあります。
これらの手順により、Nextcloud が書き換えを適切に処理できるようになります。 Docker イメージの使用手順には、プロキシを使用した Nextcloud の使用に関する 詳細なガイダンス が含まれています。管理センターの概要ページを使用して、インストールが正しくインストールされているかどうかを確認できます。
Nextcloud アップデートの管理
上記の Compose ファイルを使用して Nextcloud をデプロイすると、管理センターのセルフアップデーターを使用して Nextcloud を更新できるようになります。これにより取得できるのは最新の Nextcloud ソースのみであることに注意してください。基盤となるコンテナは同じままです。
新しい Docker イメージを定期的に取得することをお勧めします。これにより、セキュリティ リスクとなる可能性がある古い OS パッケージの実行を回避できます。
Docker Compose を使用している場合は、
--pull
フラグを指定して
docker-compose up
再実行できます。 Compose は自動的に新しいイメージを取得し、必要に応じて現在のコンテナを置き換えます。
docker-compose up -d --pull
結論
Nextcloud サーバーを実行すると、ファイルを完全に制御できるようになります。 Nextcloud は、単純なファイル共有を超えて、生産性向上アプリの完全なエコシステムも提供します。電子メール、カレンダー、メモ、タスク システムに加えて、完全な 音声通話およびビデオ通話 ソリューションもあります。
Docker を使用して Nextcloud をデプロイすると、セットアップ手順が簡素化され、ベアメタル LAMP スタックによるホストの汚染が回避されます。 Nextcloud をインストールすると、サポートされているデスクトップおよびモバイル同期クライアントのいずれかから接続できるようになります。
ここでは、Nextcloud サーバーを稼働させるための基本についてのみ説明しました。アプリのインストールとインストールのメンテナンスについて詳しく知りたい場合は、Nextcloud 管理マニュアルに 詳しい手順が記載されています。





