MYmemo

思い立ってやってみるけど、長続きしない。せめて記録しておく。

ChromebookにNextcloudをインストール(docker経由)

Chromebookを自宅のストレージサーバー化したいな、と思い色々検索してるとNextcloudに辿り着きました。
nextcloud.com

Nextcloudで特に私が惹かれたところは、スマホアプリの提供も無償でやっているところ。Pixcel 6aで撮影した写真データをポンポン放り込めるのでは?と期待しました。

しかし我がChromebookIntel入ってなくてarm。多分普通にはインストールできない。なので、dockerを入れてみました。

mymemo8.hatenablog.com




導入環境

毎度の事、私の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つのことが不足してます。勿論アプリをインストールした上での話ですが、

  1. ChromebookLinux環境でポート転送設定
  2. 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を見に行けば、私はアクセスできました。

さて、コイツがどこまで使い物になるのか?これから検証してみます。