ConoHaでNextcloudを使っていたけどSyncthingにしてみた話


きっかけ

今までConoHaVPSでNextcloudを動かしていたけど、使っていて問題が出てきて組み直そうかと思っていた.
スタートアップスクリプトが公開されているけどLet's Encryptとか使っていて環境が違うので使えない.
個人で使うだけなのでファイル共有できればよいのでP2Pを選択.
以前使ったことのあるResilio Syncは試してみたけどうまくインストールできなかったので他のものを探していたらSyncthingを見つけた.
P2Pだがサーバで常時起動させて置けばストレージサーバとして問題ない.
Go製のオープンソースらしくマルチプラットフォーム対応.

サーバの追加

まずは新しいサーバを追加します.
OSはUbuntu(16.04) メモリは1GB
パスワードとネームタグを適当に決めて追加を選択
スタートアップスクリプトはどこかでバグるから今回は使用しない

ユーザの追加

ついでにホスト名も変更しておく

useradd ws --create-home -G sudo
passwd ws
echo "ubuntu" > /etc/hostname

Syncthingのインストール

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt update
sudo apt install -y syncthing

自動起動とファイアウォールの設定

Web GUIは8384番を使用するのでポート開放
※ 2018/01/29 修正:ユーザログインしないとsyncthingが起動しないので下記に変更

#systemctl --user enable syncthing.service
sudo systemctl enable [email protected]
sudo ufw allow ssh
sudo ufw allow 8384
sudo ufw reload
sudo ufw enable
sudo reboot

Web GUIでアクセス

デフォルトではローカルからしかアクセスできないので
~/.config/syncthing/config.xmlの27行目の127.0.0.1:83840.0.0.0:8384に書き換える
※どこからでもアクセスできるようになるのでアクセスする端末が決まっている場合はそのIPアドレスに変更したほうがよい.

syncthingを再起動し, ブラウザから<VPSのIPアドレス>:8384にアクセスする.
アクセスしたら設定ですぐに設定>GUIでユーザー名とパスワードを設定する.

ファイルの共有設定

  1. Windowsの場合サードパーティ製のクライアントSyncTrayzorをインストール.
  2. 起動後, メニュー>IDを表示でデバイスIDをコピー
  3. ブラウザから+接続先デバイスの追加を選択, コピーしたデバイスIDをペースト, デバイス名を設定して保存.
  4. クライアント側に新規デバイスの追加を承認し, デバイスの設定をする. アドレスはVPSのIPを指定.
  5. フォルダーの追加設定
  6. クライアント側で新規フォルダーの追加承認
  7. Android/iOSの場合はアプリをストアからインストールし, QRコードを読み取りデバイスIDを入力できる.

さいごに

Web GUIのアクセス制限で何時間も詰まったけど, Nextcloudより簡単にストレージサーバが構築できて機能的にもほぼ変わらず便利だった.
ブラウザからファイルを見れないけどだいたい満足
他の設定は追々やっていく

参考にしたサイト