技術ノート クラウド Nextcloud と Docker を使用してコラボレーション クラウドをセルフホストする方法

Nextcloud と Docker を使用してコラボレーション クラウドをセルフホストする方法

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 に置き換えてください。

Nextcloud と Docker を使用してコラボレーション クラウドをセルフホストする方法

セットアップの準備

基本的な 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 と Docker を使用してコラボレーション クラウドをセルフホストする方法

ファーストラン

初めて 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 を使用してコラボレーション クラウドをセルフホストする方法

構成の自動化

Nextcloud の管理設定の多くは、コンテナーの起動時に事前に設定できます。このイメージでは、データベースのセットアップ以外にも、メール システムの構成、リモート オブジェクト ストレージへの接続、初期管理者ユーザーの自動作成のための環境変数がサポートされています。これらの値を指定する場合、初回実行セットアップ ウィザードに値を指定する必要はありません。

環境変数の代わりに、 Docker シークレット を使用して、よりセキュリティを意識した方法で値を設定できます。値をファイルに追加し、Compose の secrets キーを使用してコンテナーにマップします。次に、 environment セクションを更新して、挿入されたシークレット ファイルを読み取ります。

サービス:

次のクラウド:

環境:

– NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password

秘密:

nextcloud_admin_password:

ファイル: ./nextcloud_admin_password

シークレットを使用する場合、各 Nextcloud 環境変数の名前に _FILE を追加する必要があります。これは、参照されたファイル パスから値を取得するように Nextcloud に指示します。

Nextcloud と Docker を使用してコラボレーション クラウドをセルフホストする方法

安全

標準の 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 と Docker を使用してコラボレーション クラウドをセルフホストする方法

Nextcloud アップデートの管理

上記の Compose ファイルを使用して Nextcloud をデプロイすると、管理センターのセルフアップデーターを使用して Nextcloud を更新できるようになります。これにより取得できるのは最新の Nextcloud ソースのみであることに注意してください。基盤となるコンテナは同じままです。

新しい Docker イメージを定期的に取得することをお勧めします。これにより、セキュリティ リスクとなる可能性がある古い OS パッケージの実行を回避できます。

Docker Compose を使用している場合は、 --pull フラグを指定して docker-compose up 再実行できます。 Compose は自動的に新しいイメージを取得し、必要に応じて現在のコンテナを置き換えます。

 docker-compose up -d --pull 

Nextcloud と Docker を使用してコラボレーション クラウドをセルフホストする方法

結論

Nextcloud サーバーを実行すると、ファイルを完全に制御できるようになります。 Nextcloud は、単純なファイル共有を超えて、生産性向上アプリの完全なエコシステムも提供します。電子メール、カレンダー、メモ、タスク システムに加えて、完全な 音声通話およびビデオ通話 ソリューションもあります。

Docker を使用して Nextcloud をデプロイすると、セットアップ手順が簡素化され、ベアメタル LAMP スタックによるホストの汚染が回避されます。 Nextcloud をインストールすると、サポートされているデスクトップおよびモバイル同期クライアントのいずれかから接続できるようになります。

ここでは、Nextcloud サーバーを稼働させるための基本についてのみ説明しました。アプリのインストールとインストールのメンテナンスについて詳しく知りたい場合は、Nextcloud 管理マニュアルに 詳しい手順が記載されています。

「 Nextcloud と Docker を使用してコラボレーション クラウドをセルフホストする方法」に関するベスト動画選定!

NextCloudを構築する(Docker使用)dropbox、cloudflare、googledrive
自分専用のクラウドサーバーを作る Windowsで動かすNextcloud Hub