Nextcloudで自分専用のクラウドサービスを構築

Taildriveを紹介しましたが、「ファイル同期」という点に絞り、DropboxやOneDriveのような使い勝手を求めるなら、Nextcloudなどの自前クラウドを利用するほうが圧倒的に快適になります。それぞれ比較すると次のような形になります。

項目NextcloudTaildrive (Tailscale)
同期の仕組みDropbox方式(ローカルに保存)ネットワークドライブ方式(直接操作)
オフライン 外出先(電波なし)でも編集可能× ネットがないとファイルが見えない
スマホ連携強力(写真の自動アップロード等)閲覧のみ(手動でDL/ULが必要)
導入コスト高い(DB設定やメンテが必要)極低(コマンド1本で完了)
ストレージ同期する分だけ自分のPC容量を食うサーバー(Ubuntu)の容量だけ使う

Nextcloud が向いている人

  • スマホの写真を自動でバックアップしたい。
  • 飛行機や地下など、オフライン環境でもファイルを編集したい。
  • カレンダーや連絡先、共同編集機能もセットで使いたい。
  • サーバーのメンテナンス(アップデート作業など)を楽しめる。

Taildrive が向いている人

  • 設定に時間をかけたくない。今すぐ共有したい。
  • 自分のPCのストレージ容量を節約したい(必要な時だけ覗きに行く)。
  • 基本、ネットに繋がっている環境でしか作業しない。
  • ファイル同期のためだけに重いソフトを入れたくない。

Nextcloudをセットアップする

Nexcloudのセットアップは簡単です。Dockerの準備ができているなら、最もメンテナンスが楽で安定している SQLite版(DB設定不要) または MariaDB版(本格運用向け) の構成がおすすめです。ここでは、「標準的なMariaDB構成」を紹介します。
まずはディレクトリを作成し、Docker用の設定ファイルを作成します。

mkdir ~/nextcloud
cd ~/nextcloud
nano docker-compose.yml

docker-compose.yml に貼り付ける内容は下記になります(今後ONLYOFFICEを同じサーバにインストールする場合の設定も入れています)。データベース用パスワードは各自で変更しておいてください。

services:
  db:
    image: mariadb:10.6
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=rootpass # 任意のパスワードに変更
      - MYSQL_PASSWORD=nextcloudpass # 任意のパスワードに変更
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - ./data:/var/www/html
    environment:
      - MYSQL_PASSWORD=nextcloudpass # 上記MYSQL_PASSWORDと同じ
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
      - NEXTCLOUD_TRUSTED_DOMAINS=ホスト名 nextcloud-app-1 # ホスト名またはIPアドレスを入力
      - OVERWRITEHOST=ホスト名:8080 # ホスト名またはIPアドレスを入力
      - OVERWRITEPROTOCOL=http
    networks:
      - default
      - onlyoffice_net

networks:
  default:
  onlyoffice_net:
    external: true
  • ポート番号8080 を使っています。もし他のサービスと重なる場合は 9000:80 など左側の数字を変更してください。
  • データの保存先~/nextcloud/data にすべてのファイルが保存されます。バックアップはこのフォルダを丸ごとコピーするだけなので簡単です。

起動ファイルを保存(Ctrl+O, Enter)し、終了(Ctrl+X)したら、以下のコマンドで起動します。

cd ~/nextcloud
docker compose up -d

あとはブラウザで http://(サーバのIPアドレス):8080 を開きます。

WebブラウザからNextcloudを使う

管理者アカウントの作成画面が出るので、好きなユーザー名とパスワードを入力します。

必要なアプリを入れます。

数分待てば、Nextcloudのダッシュボードが表示されます。色々触ってみてください。

ログイン画面でエラーが表示される場合

ログイン画面で下記のようなエラーが出た場合の対処法。

所有者とパーミッションを修正

sudo chown -R www-data:www-data /opt/docker/nextcloud/data/config
sudo chmod 750 /opt/docker/nextcloud/data/config

確認

ls -la /opt/docker/nextcloud/data/ | grep config

データディレクトリも同様に権限を修正しましょう。

sudo chown -R www-data:www-data /opt/docker/nextcloud/data
sudo chmod 750 /opt/docker/nextcloud/data
タイトルとURLをコピーしました