Ubuntu 18.04にNextcloudをインストールおよび構成する方法

前書き

ownCloudのフォークであるNextcloudは、Dropboxのように一元化された場所に、ドキュメントや写真などの個人コンテンツを保存できるファイル共有サーバーです。 Nextcloudとの違いは、すべての機能がオープンソースであることです。 また、機密データの制御とセキュリティがユーザーに返されるため、サードパーティのクラウドホスティングサービスの使用が不要になります。

このチュートリアルでは、Ubuntu 18.04サーバーにNextcloudインスタンスをインストールして構成します。

前提条件

このガイドの手順を完了するには、次のものが必要です。

  • A sudo user and firewall configured on your serverUbuntu 18.04 initial server setup guideに従うことで、sudo特権を持つユーザーを作成し、基本的なファイアウォールを設定できます。

  • (Optional) A domain name pointed to your server:TLS / SSLを使用してNextcloudインストールへの接続を保護します。 Nextcloudは、サーバーにドメイン名がある場合、Let’s Encryptからの無料の信頼できるSSL証明書をセットアップして管理できます。 そうでない場合、Nextcloudは接続を暗号化できる自己署名SSL証明書を設定できますが、Webブラウザーではデフォルトで信頼されません。 DigitalOceanを使用している場合、Let’s Encryptを使用する場合は、how to set up a domain name for your serverに関するガイドに従うことができます。

上記の手順を完了したら、サーバーでNextcloudをセットアップする方法を学習し続けます。

[[step-1 -–- installing-nextcloud]] ==ステップ1-Nextcloudのインストール

snappyパッケージシステムを使用してNextcloudをインストールします。 Ubuntu 18.04でデフォルトで利用可能なこのパッケージングシステムにより、組織は、関連するすべての依存関係と構成とともに、自動更新機能を備えた自己完結型ユニットでソフトウェアを出荷できます。 つまり、Webサーバーとデータベースサーバーをインストールして構成し、そのサーバーで実行するようにNextcloudアプリを構成する代わりに、基盤となるシステムを自動的に処理するsnapパッケージをインストールできます。

Nextcloudsnapパッケージをダウンロードしてシステムにインストールするには、次のように入力します。

sudo snap install nextcloud

Nextcloudパッケージがダウンロードされ、サーバーにインストールされます。 snapに関連付けられた変更を一覧表示することで、インストールプロセスが成功したことを確認できます。

snap changes nextcloud
OutputID   Status  Spawn               Ready               Summary
2    Done    today at 16:12 UTC  today at 16:12 UTC  Install "nextcloud" snap

ステータスと概要は、インストールが問題なく完了したことを示しています。

Nextcloud Snapに関する追加情報の取得

Nextcloudsnapについてさらに情報が必要な場合は、役立つコマンドがいくつかあります。

snap infoコマンドは、説明、利用可能なNextcloud管理コマンド、インストールされているバージョン、追跡されているスナップチャネルを表示できます。

snap info nextcloud

スナップは、サポートするインターフェイスを定義できます。これらのインターフェイスは、スロットとプラグで構成されており、一緒にフックすると、特定の機能またはアクセスレベルへのスナップアクセスを提供します。 たとえば、ネットワーククライアントとして機能する必要があるスナップには、networkインターフェイスが必要です。 このスナップが定義するスナップ「インターフェイス」を確認するには、次のように入力します。

snap interfaces nextcloud
OutputSlot           Plug
:network       nextcloud
:network-bind  nextcloud
-              nextcloud:removable-media

このスナップが提供するすべての特定のサービスとアプリについて知るには、次のように入力してスナップ定義ファイルを見ることができます。

cat /snap/nextcloud/current/meta/snap.yaml

これにより、デバッグの支援が必要な場合、スナップに含まれる個々のコンポーネントを確認できます。

管理アカウントの構成

Nextcloudスナップを構成する方法はいくつかあります。 このガイドでは、ウェブインターフェースを使用して管理ユーザーを作成するのではなく、サーバーのIPアドレスまたはドメイン名にアクセスする人が管理者登録ページにアクセスできる小さなウィンドウを避けるために、コマンドラインで作成します。

新しい管理者アカウントでNextcloudを構成するには、nextcloud.manual-installコマンドを使用します。 引数としてユーザー名とパスワードを渡す必要があります。

sudo nextcloud.manual-install sammy password

次のメッセージは、Nextcloudが正しく構成されたことを示しています。

OutputNextcloud is not installed - only a limited number of commands are available
Nextcloud was successfully installed

Nextcloudがインストールされたので、Nextcloudがサーバーのドメイン名またはIPアドレスを使用してリクエストに応答するように、信頼できるドメインを調整する必要があります。

信頼できるドメインの調整

コマンドラインからインストールする場合、Nextcloudはインスタンスが応答するホスト名を制限します。 デフォルトでは、サービスは「localhost」ホスト名に対して行われたリクエストにのみ応答します。 サーバーのドメイン名またはIPアドレスを介してNextcloudにアクセスするため、これらのタイプのリクエストを受け入れるようにこの設定を調整する必要があります。

trusted_domains配列の値を照会することにより、現在の設定を表示できます。

sudo nextcloud.occ config:system:get trusted_domains
Outputlocalhost

現在、配列の最初の値として存在するのはlocalhostのみです。 次を入力して、サーバーのドメイン名またはIPアドレスのエントリを追加できます。

sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
OutputSystem config value trusted_domains => 1 set to string example.com

信頼されたドメインを再度照会すると、2つのエントリがあることがわかります。

sudo nextcloud.occ config:system:get trusted_domains
Outputlocalhost
example.com

Nextcloudインスタンスにアクセスする別の方法を追加する必要がある場合は、インデックス番号を増やしてconfig:system:setコマンドを再実行し(最初のコマンドの「1」)、%(t1 )s。

SSLを使用してNextcloud Webインターフェイスを保護する

Nextcloudの使用を開始する前に、Webインターフェースを保護する必要があります。

Nextcloudサーバーにドメイン名が関連付けられている場合、NextcloudスナップはLet’s Encryptから信頼できるSSL証明書を取得して構成するのに役立ちます。 Nextcloudサーバーdoes notにドメイン名がある場合、Nextcloudは自己署名証明書を構成できます。これにより、Webトラフィックは暗号化されますが、サーバーのIDを確認することはできません。

それを念頭に置いて、シナリオに合った以下のセクションに従ってください。

オプション1:Let's Encryptを使用したSSLのセットアップ

Nextcloudサーバーにドメイン名が関連付けられている場合、ウェブインターフェースを保護するための最良のオプションは、Let’s Encrypt SSL証明書を取得することです。

Let's Encryptがドメイン所有権の検証に使用するファイアウォールのポートを開くことから始めます。 これにより、Nextcloudログインページが公開されますが、管理者アカウントが既に構成されているため、誰もインストールをハイジャックできません。

sudo ufw allow 80,443/tcp

次に、次のように入力してLet's Encrypt証明書を要求します。

sudo nextcloud.enable-https lets-encrypt

まず、サーバーがLet's Encryptサービスから証明書を要求するために必要な条件を満たしているかどうかを尋ねられます。

OutputIn order for Let's Encrypt to verify that you actually own the
domain(s) for which you're requesting a certificate, there are a
number of requirements of which you need to be aware:

1. In order to register with the Let's Encrypt ACME server, you must
   agree to the currently-in-effect Subscriber Agreement located
   here:

       https://letsencrypt.org/repository/

   By continuing to use this tool you agree to these terms. Please
   cancel now if otherwise.

2. You must have the domain name(s) for which you want certificates
   pointing at the external IP address of this machine.

3. Both ports 80 and 443 on the external IP address of this machine
   must point to this machine (e.g. port forwarding might need to be
   setup on your router).

Have you met these requirements? (y/n)

続行するには、yと入力してください。

次に、復旧操作に使用するメールアドレスを入力するよう求められます。

OutputPlease enter an email address (for urgent notices or key recovery): [email protected]

最後に、Nextcloudサーバーに関連付けられたドメイン名を入力します。

OutputPlease enter your domain name(s) (space-separated): example.com

Let's Encrypt証明書が要求され、すべてがうまくいけば、内部のApacheインスタンスが再起動され、すぐにSSLが実装されます。

OutputAttempting to obtain certificates... done
Restarting apache... done

これで、sign into Nextcloud for the first timeまでスキップできます。

オプション2:自己署名証明書を使用したSSLのセットアップ

Nextcloudサーバーdoes notにドメイン名がある場合でも、自己署名SSL証明書を生成することでWebインターフェースを保護できます。 この証明書により、暗号化された接続を介したWebインターフェイスへのアクセスが許可されますが、サーバーの身元を確認できないため、ブラウザに警告が表示される可能性があります。

自己署名証明書を生成し、それを使用するようにNextcloudを構成するには、次を入力します。

sudo nextcloud.enable-https self-signed
OutputGenerating key and self-signed certificate... done
Restarting apache... done

上記の出力は、Nextcloudが自己署名証明書を生成して有効にしたことを示しています。

インターフェイスが安全になったので、ファイアウォールのWebポートを開いて、Webインターフェイスへのアクセスを許可します。

sudo ufw allow 80,443/tcp

これで、Nextcloudに初めてログインする準備が整いました。

Nextcloud Webインターフェイスへのログイン

Nextcloudが構成されたので、Webブラウザーでサーバーのドメイン名またはIPアドレスにアクセスします。

https://example.com

[.note]#Note:自己署名SSL証明書を設定すると、サーバーの証明書が承認された認証局によって署名されていないため、接続が安全でないという警告がブラウザに表示される場合があります。 これは自己署名証明書で予想されるため、警告をクリックしてサイトに進んでください。

コマンドラインから管理者アカウントをすでに設定しているため、Nextcloudログインページが表示されます。 管理ユーザー用に作成した資格情報を入力します。

Nextcloud login page

Log inボタンをクリックして、NextcloudWebインターフェースにログインします。

初めて入力すると、Nextcloudインスタンスと対話して管理するために使用できるさまざまなNextcloudクライアントへのリンクを含むウィンドウが表示されます。

Nextcloud client modal

クリックして興味のあるクライアントをダウンロードするか、右上隅のXをクリックしてウィンドウを終了します。 メインのNextcloudインターフェイスが表示され、ファイルのアップロードと管理を開始できます。

Nextcloud main page

これでインストールが完了し、セキュリティ保護されました。 インターフェースを自由に探索して、新しいシステムの機能をよりよく理解してください。

結論

Nextcloudは、一般的なサードパーティのクラウドストレージサービスの機能を複製できます。 コンテンツは、ユーザー間で共有することも、パブリックURLを使用して外部で共有することもできます。 Nextcloudの利点は、情報が管理している場所に安全に保存されることです。

インターフェイスを調べ、追加機能については、Nextcloud’s app storeを使用してプラグインをインストールしてください。