ownCloudからフォークしたNextcloudは、Dropboxのようにドキュメントや写真などの個人的なコンテンツを集中的に保存できるファイル共有サーバーです。Nextcloudの違いは、すべての機能がオープンソースであることです。また、機密データの制御とセキュリティをユーザーに戻すため、サードパーティのクラウドホスティングサービスの使用が不要になります。
このチュートリアルでは、Ubuntu 20.04サーバーで、Nextcloudインスタンスをインストールして設定します。
このガイドの手順を完了するには、次が必要です。
sudo
ユーザーを作成し、基本的なファイアウォールをセットアップするには、Ubuntu 20.04の初期サーバーセットアップを参照してください。上記の手順を完了したら、サーバーでNextcloudをセットアップする方法の学習に進みます。
Snapパッケージングシステムを使用してNextcloudをインストールします。このパッケージングシステムはUbuntu 20.04でデフォルトで提供されます。自動更新機能を備えた自己完結型ユニットに関連するすべての依存関係と設定を併せたソフトウェアの積み込みが可能になります。つまり、Webサーバーとデータベースサーバーをインストールして設定し、それからNextcloudアプリケーションがサーバー上で稼働するように設定するのではなく、基礎となるシステムを自動的に処理するSnap
パッケージがインストールできるのです。
Nextcloud Snapパッケージをダウンロードしてシステムにインストールするには次のように入力します。
- sudo snap install nextcloud
Nextcloudパッケージがダウンロードされ、サーバーにインストールされます。インストールプロセスが成功したことを確認するには、Snapに関連する変更を一覧表示します。
- snap changes nextcloud
OutputID Status Spawn Ready Summary
4 Done today at 16:12 UTC today at 16:12 UTC Install "nextcloud" snap
StatusとSummaryは、インストールが問題なく完了したことを示しています。
Nextcloud Snapについて詳細な情報を得るのに役立つコマンドがいくつかあります。
snap info
コマンドは、説明、使用可能なNextcloud管理コマンド、インストールバージョン、追跡されているSnapチャネルを表示します。
- snap info nextcloud
Snapを使用してサポートする接続を定義できます。これらの接続はスロットとプラグで構成され、つなげると、特定の機能やアクセスレベルへSnapプアクセスが可能になります。 たとえば、ネットワーククライアントとして機能させたいSnapには、network
接続が必要です。このSnapで定義されたSnap接続
を確認するには、次のように入力します。
- snap connections nextcloud
OutputInterface Plug Slot Notes
network nextcloud:network :network -
network-bind nextcloud:network-bind :network-bind -
removable-media nextcloud:removable-media - -
このSnapが提供する個々のサービスとアプリのすべてについて知るには、次のように入力してSnap定義ファイルを表示します。
- cat /snap/nextcloud/current/meta/snap.yaml
これにより、デバッグ支援が必要な場合は、Snapに含まれる個々のコンポーネントを確認できます。
Nextcloud Snapを設定する方法はいくつかあります。このガイドでは、Webインターフェイスを使用して管理ユーザーを作成するのではなく、サーバーのIPアドレスまたはドメイン名にアクセスするユーザーが小窓から管理者登録ページへ侵入するのを防ぐためにコマンドラインで作成します。
新しい管理者アカウントでNextcloudを設定するには、nextcloud.manual-install
コマンドを使用します。引数としてユーザー名とパスワードを渡す必要があります。
- sudo nextcloud.manual-install sammy password
次のメッセージは、Nextcloudが正しく設定されたことを示しています。
OutputNextcloud 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インスタンスへのアクセス方法を追加する場合、連番(最初のコマンドなら「1」)を付けてconfig:system:set
コマンドをもう一度実行し、--value
を調整して、ドメイン名またはIPアドレスを追加します。
Nextcloudの使用を開始する前に、Webインターフェイスを保護する必要があります。
ドメイン名がNextcloudサーバーに関連付けられている場合、Nextcloud Snapを使用すれば、Let’s Encryptから信頼できるSSL証明書を取得して設定できます。Nextcloudサーバーがドメイン名を持たない場合、NextcloudはWebトラフィックを暗号化する自己署名証明書を設定できますが、Webブラウザからは自動的に信頼されません。
それを念頭に置いて、シナリオに合うセクションに従ってください。
ドメイン名がNextcloudサーバーに関連付けられている場合、Webインターフェイスを保護するための最良の選択肢は、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):
メールアドレスを入力し、Enter
キーを押して続行します。
最後に、Nextcloudサーバーに関連付けられたドメイン名を入力します。
OutputPlease enter your domain name(s) (space-separated): example.com
Let’s Encrypt証明書の要求が行われ、すべてがうまくいけば、内部のApacheインスタンスが再起動し、すぐにSSLが実装されます。
OutputAttempting to obtain certificates... done
Restarting apache... done
次の手順へ進み、Nextcloudに初めてサインインします。
Nextcloudサーバーがドメイン名を持たない場合でも、自己署名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ブラウザでサーバーのドメイン名またはIPアドレスにアクセスします。
https://example.com
注: 自己署名SSL証明書をセットアップした場合、サーバー証明書が公認認証局で署名されたものでないため、安全な接続でないという警告がブラウザ上で表示される場合があります。こうした警告は自己署名証明書にはつきものなので、気にせずクリックスルーしてサイトにアクセスします。
コマンドラインから管理者アカウントをすでに設定しているため、Nextcloudログインページが表示されます。管理ユーザー用に作成した資格情報を入力します。
Log inボタンをクリックして、Nextcloud Webインターフェイスにログインします。
初めて入力すると、入門ガイドや、Nextcloudインスタンスへのアクセスに利用できるさまざまなNextcloudクライアントへのリンクを含むウィンドウが表示されます。
クリックして興味のあるクライアントをダウンロードするか、右上隅のXをクリックしてウィンドウを閉じます。メインのNextcloudインターフェイスが表示され、ファイルのアップロードと管理を開始できます。
これでインストールが完了し、セキュリティ保護されました。インターフェイスを自由に探索して、新しいシステムの機能をよりよく理解してください。
Nextcloudは、一般的なサードパーティのクラウドストレージサービスの機能を複製できます。コンテンツは、ユーザー間で共有することも、パブリックURLを使用して外部で共有することもできます。Nextcloudの利点は、情報がユーザーが管理している場所に安全に保存されることです。
追加機能については、Nextcloudのapp storeを参照してください。プラグインをインストールしてサービスの機能を拡張できます。
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!