Nextcloudのセットアップ

2024-11-06

ここに書く動機

色んなところで詰まったので、あとから参照したいため。また、同じ困りが発生した他人がアクセスする可能性が若干あるかもしれないため。

手順

  1. WSL2でUbuntuを入れる
  2. UbuntuにDockerを入れる
  3. Nextcloudのためのdocker-compose.ymlを作成
  4. コンテナの起動
  5. Nextcloudにlocalhostからアクセス
  6. ファイアウォールからポートを開放
  7. WindowsのIPアドレスへのアクセスをWSLのIPアドレスに送る
  8. trusted_domainsにIPアドレスを追加

2までは終わっている想定で進めます。

3. Nextcloudのためのdocker-compose.ymlを作成

nextcloud - Official Image | Docker Hubにアクセス。

下の方にあるdocker-compose.ymlをコピペして作成。

4. コンテナの起動

docker compose up -d

でコンテナを起動。

5. Nextcloudにlocalhostからアクセス

localhost:8080(portを変更したなら変更後のport番号)でアクセス可能。

アクセスしたら管理者アカウントの作成を求められる。

データベースはmariadbを選ぶ。docker-compose.yml内で設定したユーザー名・パスワードを入力。

6. ファイアウォールからポートを開放

コントロールパネル → システムとセキュリティ → Windows Defender ファイアウォール → 詳細設定 → 受信の規則

設定したport番号を開放。

7. WindowsのIPアドレスへのアクセスをWSLのIPアドレスに送る

そのままだとWindowsのIPアドレスにアクセスしても何も出てこない。WSLのIPはまた別であるらしい。

ip a show dev eth0

を実行。出てきたIPアドレスをメモする。

PowerShellを管理者権限で起動する。

netsh interface portproxy add v4tov4 listenaddress=* listenport=<ポート番号> connectaddress=<出てきたIPアドレス> connectport=<ポート番号>

そんな感じ。WindowsのIPアドレスを使ってアクセスできる。

8. trusted_domainsにIPアドレスを追加

docker cp nextcloud-app-1:/var/www/html/config/config.php ./config.php

上記を実行してconfig.phpを引っ張り出す。docker内部にvimとかがないっぽいので。

trusted_domainsの中にWindowsのIPアドレスを追加する。

編集したら以下を実行して差し戻す。

docker cp ./config.php nextcloud-app-1:/var/www/html/config/config.php

総括

以上。

6~8が特に躓く。

なお、なんか色々変になっちゃったな……と思った場合、

docker compose down --rmi all --volumes

でコンテナを止め、色々削除できる。っぽい。

参考リンク: