ミニPCにUbuntu Linuxをインストールして、Nextcloudサーバを構築する
「Beelink Mini S12 Pro」というミニPCを購入した。
本機にプリインストールされているのはWindowsなのだが、いきなりUbuntu Linuxをインストールして、Linuxサーバとして使用している。
ミニPCでNextcloudサーバを作ろう!
今回、このミニPCを導入したのは、Nextcloudサーバを作ろうと思ったからだ。
別のマシンで試しにNextcloudをインストールしてみたら、これがなかなか良さそうだったから、専用機を立てることにした。真面目にストレージとして使おうと思うと、実験用サーバにおいているのは少々怖いので。
本機が長期運用に適したものかはこれから評価することになるが、多分1~2年とか平気でもつんじゃないかと思っている。もって欲しい。ここには願望も入っている。
DockerでNextcloud
さて、肝心のNextcloudのインストールだが、試しに入れたときはDockerでアッサリ入れることができたから、本機にはまずDocker環境を構築する。
Docker環境は公式サイトを見ながらチョイナチョイナと操作すればサクッと作れる。もう何度作ったことか。
Docker環境ができたら、続いてNextcloudのインストールだ。
こちらもDocker HubのNextcloud公式ページにDocker composeを使ったスクリプトが乗っているから、ほぼそのまま使う。
「Running this image with docker-compose」以降のところにdocker-compose.yamlのサンプルがある。
ほぼそのままというのは、MySQLのパスワードなんかは自分で設定しないといけないから、その部分は自分で埋める。あとはコンテナ名とかをお好みで変えるくらい。
なお、最近のDockerはcomposeプラグイン?があるみたいで、別途docker-composeをインストールする必要もないようだ。
docker compose up -d
とコマンドを打てば実にアッサリとNextcloudがインストールされてしまった。素晴らしい。
Nextcloudの初期設定
インストールできたら、ブラウザからNextcloudにログインして使用開始する。サンプルどおりのdocker-compose.yamlでNextcloudをインストールしていた場合は、8080ポートを指定するのを忘れずに。
http://192.168.1.10:8080
みたいな感じで。
本当はhttps化した方がよいのだろうけど、自宅内に閉じた環境だし、ひとまずこのままで運用することにする。
Nextcloudにログインし、初期設定をする。といってもデフォルトで問題なく使えるからウィザードの通り進めればいい。
あとはWindows PCやMacにクライアントアプリをインストールしたら、クラウドストレージとして使用開始できる。スマホやタブレットでも使えている。
バックグラウンドジョブをCronで回す
なお、Nextcloudは定期的にバックグラウンドジョブを実行した方がよいそうで、推奨されているのはCronを使って定期実行するものらしい。
バックグラウンドジョブの設定は、管理画面の「基本設定」ページの中にある。
今の状態だと、NextcloudはDockerコンテナ上で動いているから、本機のLinuxからDockerコンテナ上のジョブを実行してやらないといけない。
ここがちょっとややこしかったんだけど、やってみたら大したものではなかった。本機のLinuxのcrontabにタスクを追加するだけだった。
crontab -e
でcrontabの編集画面に入って、最後の行に
*/5 * * * * /usr/bin/docker exec --user www-data nextcloud_app_1 php cron.php
のように入力し、保存する。この例だと5分おきにバックグラウンドジョブが実行される。
ユーザは www-data じゃないとダメだそうだから、–user オプションで指定している。
nextcloud_app_1 のところはコンテナ名だから、自分が設定したとおりに入れよう。
このコマンドで合っているかを確かめたければ、そのままターミナルで実行すれば試せる。
/usr/bin/docker exec --user www-data nextcloud_app_1 php cron.php
の部分だ。コマンドが合っていれば特に何も言われずに実行完了する。cronに設定する前に1回実行して試しておけば安心である。
ちゃんとcronが実行されているかは、
sudo journalctl -r -u cron
で確認できる。5分とか10分とか、5の倍数の時間になったら見てみるといい。
コマンドがうまく実行されていれば、上のスクリーンショットのように、
最終ジョブ実行は 3分前 です。
のように表示される。
ひとまずここまでやってしまえば、Nextcloudを使ったプライベートクラウドストレージ環境の構築は完了である。多分。
おわりに
「Beelink Mini S12 Pro」がかなりいい感じのミニPCだから、LinuxのインストールやDocker環境の構築、Nextcloudのインストールといった作業はとても快適であった。
ストレージは500GBだが、このくらいあればだいたい大丈夫だろう。足りなくなってきたら1TBくらいのに換装するのもいいかもしれない。
SSDの寿命もあるし、本機は2~3年も動いてくれたら十分だろうと思っている。5年とかになるとデータを置いておくのが不安になるから、定期的に作り替えていくのがいいのかもしれない。
ここ数年はNASなど使わなくなっていて、若干バックアップの不安があった。
せっかく自前のクラウドストレージ環境を作ったので、うまく活用していきたい。