Chromebookを自宅のストレージサーバー化したいな、と思い色々検索してるとNextcloudに辿り着きました。
nextcloud.com
Nextcloudで特に私が惹かれたところは、スマホアプリの提供も無償でやっているところ。Pixcel 6aで撮影した写真データをポンポン放り込めるのでは?と期待しました。
しかし我がChromebookはIntel入ってなくてarm。多分普通にはインストールできない。なので、dockerを入れてみました。
導入環境
毎度の事、私のChromebookはコレ一台のみ
項目 | 内容 |
---|---|
メーカー | acer |
機種 | Spin 311 |
CPU | MediaTek M8183C 2.0GHz |
メモリ | 4GB |
ストレージ | eMMC 32GB |
アーキテクチャはarm。ストレージ32GBのマシーンをストレージサーバーに、なんて笑止!だと思いますが、とりあえずお試ししてみて、うまくいったら違うマシーンの新調も視野に…予算があればですが。
イメージ導入とコンテナ立上
dockerさえ導入できていれば、Nextcloudを入れること自体は簡単で、以下を実行するだけ。
$ sudo docker pull nextcloud
イメージが導入できたかどうかは以下を実行して確認できます。
$ sudo docker image ls
ちなみに、私の場合は以下のようになりました。サイズは1GB近い。SSDが32GBしかない我がPCでこれを運用するのは不適ですが、まあお試しということで。
REPOSITORY TAG IMAGE ID CREATED SIZE nextcloud latest xxxxxxxxxxxx 1 day ago 945MB hello-world latest xxxxxxxxxxxx 12 months ago 9.14kB
つづいて、コンテナを作ります。nextcloudのイメージにはWebサーバーも含まれているので、ポートを指定するとブラウザーでログイン画面を見に行くことができます。
$ sudo docker run -d -p 8080:80 nextcloud
※公式ドキュメントも確認ください --> Docker
ちなみに、私はこのdocker run
がコンテナを起動するコマンドだと勘違いして、hellow-worldコンテナをムダに一杯作ってしまいました。
コンテナ一覧は以下を実行すれば表示されます。オプションの-a
は起動していないものも含めて全部、ということなので、省略すれば、稼働中のもののみ表示されます。
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES abcd12345678 nextcloud "/entrypoint.sh apac…" 1 days ago Exited (255) 5 minutes ago 0.0.0.0:8080->80/tcp, :::8080->80/tcp silly_feistel efgh90000000 hello-world "/hello" 10 days ago Exited (0) 10 days ago determined_kare
作成されたコンテナを起動するコマンドはdocker start
のあとにコンテナの「ID」か「NAME」を指定します。例えば、上記のようにdocker ps -a
で結果が表示されるのであれば
sudo docker start abcd12345678
とするか、
sudo docker start silly_feistel
で起動するはずです。
起動できていれば、ブラウザのアドレスバーにhttp://localhost:8080/
を入力すればnextcloudへのログイン画面が表示されるはず。(すごい、何もしなくても日本語になってる ...) 。
ちなみに上の画像は、初期で表示される画像ではありません。本当は最初に管理アカウント作成画面が出るはずです。上の画像は、初期設定を済ませたあとに、改めてlocalhost
を見に行ったときに出る画面です。
Androidアプリから見に行けるようにするには?
ここからは、あくまローカルネットワーク内でのお話をします。この状態では外部からはnextcloudを見に行くことはできません。そうするためには2つのことが不足してます。勿論アプリをインストールした上での話ですが、
- ChromebookのLinux環境でポート転送設定
- nextcloudコンテナ内の設定
これが完了して、初めてスマホからアクセスできます。
1. ポート転送設定
Chromebookは初期設定ではローカルサーバーの外部公開はされないようになってます。これを開放するには、
設定→詳細設定→Linux→ポート転送を設定します。
2. nextcloudコンテナ内の設定
Nextcloudの初期設定も、ホストコンピュータからのアクセスのみに制限されてます。信頼できるドメインの調整が必要で、まずNextcloudのコンテナ内にbashで入ります。
$ sudo docker exec -u33 -it <docer id> bash
多分ここからは実行環境でだいぶ違うと思うのですが、私の場合、コンテナに入ったところにoccがあったので、以下を実行すれば、現状の信頼できるドメインが表示されます。
./occ config:system:get trusted_domains
我が家のローカルネットは192.168.0.でIPアドレスが払い出されていて、Chromebookには192.168.0.26が割当たっています。コイツを信頼できるドメインに追加します。
./occ config:system:set trusted_domains 1 --value=192.168.0.26:8080
以上!
後は、アプリをインストールし、192.168.0.26:8080を見に行けば、私はアクセスできました。
さて、コイツがどこまで使い物になるのか?これから検証してみます。