Skip to content

NextcloudをDockerで構築してSSDを自分専用オンラインストレージにする

自宅で稼働しているUbuntuサーバーにSSDを増設して、NextCloudをDockerで導入しました。導入方法を記録しておきます。

はじめに

NextCloudの使用用途はミラーレスカメラで撮影した画像や、スマホで撮影した画像のバックアップです。

私は撮影した写真をGoogle Photoに画像をアップロードしていますが、容量を節約するために画質を落としています。圧縮前のオリジナルファイルをWindowsPCに置いていますが、格納しているHDDがカリカリ鳴くようになったので、危機感を覚えNextCloudをUbuntuサーバーに構築した次第です。

Nextcloudでスマートフォンの写真を自動バックアップする方法は以下をご参照ください。

構築手順

Dockerのイメージは公式イメージではなく、linuxserver.ioのイメージを使いました。理由としては、公式イメージではPUIDやPGIDなどの書き込み権限が設定できず、データフォルダのオーナーをwww-data にしないとアップロードや編集が拒否されてできなかったためです。

docker-compose.yml

任意のフォルダにdocker-compose.ymlを作成します。
例:~/docker/nextcloud/docker-compose.yml

version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=hoge
      - MYSQL_PASSWORD=hoge
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - PUID=1000
      - GUID=1000

  app:
    image: lscr.io/linuxserver/nextcloud:latest
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - ./data:/var/www/html
      - /mnt/wintenSSD/nextCloudData:/mnt/wintenSSD/nextCloudData
    environment:
      - PUID=1000
      - PGID=1000

ポイントは以下です。

  • imageをlscr.io/linuxserver/nextcloud:latest にする
  • PUID=1000, GUID=1000を追加する(idコマンドを打ち込んだときのidです)
  • appのvolumesに増設したSSDのマウントパスを設定する(/mnt/wintenSSD/nextCloudData:/mnt/wintenSSD/nextCloudData

あと、セキュリティ的にMYSQLのパスワードはベタ書きではなく.envなどに書くのが理想ですが、外部公開しないので直接書いています。

PUIDとGUIDがユーザに設定されたことで、アップロードやファイルの編集ができるようになりました。マウントしたSSDのディレクトリのオーナーはユーザにしてください。

コンテナの立ち上げ

docker-compose.ymlを作成したら、docker-compose up -d でコンテナをビルド&立ち上げます。コンテナの状態はdocker ps で確認できます。

ビルドが終わり、立ち上がったらブラウザから、サーバーのアドレス:8080(例:192.168.1.60:8080)でNextCloudを開きます。

NextCloudの設定

それではNextCloudの設定手順です。

4be1135d image

開くと管理者アカウントを作成する画面が表示されます。

ユーザー名とパスワードを設定してください。例:admin, admin
その他はデフォルトでインストールボタンをクリックします。

292295fa image

するとようこそ画面が出るので、右上の+アプリ をクリックします。

249660ed image

下の方にあるExternal storage support を有効にしてください。

88e1fff5 image

次に、左にあるメニューから管理 > 外部ストレージをクリックします。

129931dd image

外部ストレージをローカルに設定して、設定にdocker-compose.ymlで追加したディレクトリを入力します。利用可能はすべてのユーザーです。

2fbc05eb image

設定が終わり、ホームに戻るとwintenSSD(増設SSD)が表示されています。

これで構築手順は終了です。

おわりに

もともと1TBのSSDに録画データと画像データを保存していましたが、録画ファイルが容量を圧迫してしまうため、2TBのSSDを増設してデータを分けました。

購入したSSDは2TBで1万円(!)で驚きました。11年前に買った120GBのSSD(1万5000円くらいした)は未だに現役なので、今回購入したSSDも長持ちすることを祈っております。ちなみに120GBのSSDと同時期に購入したHDDはすべてぶっ壊れました。

カテゴリUbuntu

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントは日本語で入力してください。(スパム対策)

CAPTCHA