Windows10HomeでDocker版Nextcloudを試してみた

# 概要
- Nextcloud [ https://nextcloud.com/ ] というオンラインストレージアプリに興味をもったので試してみた。
- Docker版が提供されていたので、とりあえずどんなものかを触ってみたいなー程度のお試しをしてみた。Dockerがあると楽で良い

# よさそうと思ったところ
- GoogleDriveとかDropBOXライクな今時のデザインである点
- モバイル向けのアプリがある点
- ストレージとしてS3を使える点
- 2要素認証を使える点
- SSO（SAML）使える点
- Onecloudからフォークしたチームが開発しているがCloudNextの方が先進性があるらしい点
- 作りこめばAWS等で安定した環境を構築できそうな点
- Enterprise向けのサポートメニューが用意されている点
- ファイル管理だけでなくアプリを追加してカレンダーとか簡単なグループウェアとしても使えそうな点

# お試しした環境
- Windows10 home (1809)＋Docker Toolbox

# 構築

## Docker環境の構築
- こちらなどを参考にインストール: https://qiita.com/idani/items/fb7681d79eeb48c05144
- Docker Quickstart Terminal のショートカットからターミナルを起動
- ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/f182b640-9feb-fb6f-aa92-fb0a7ba8ff4c.png)
- Windows10homeの環境だと Virtualbox経由でDockerの実行環境が起動するため、すこし時間がかかる。
- しばらくするとクジラのAAとターミナルが起動 ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/b8f61adb-7893-1ad4-4867-73c9a31e3bd4.png)
- Dockerのversion確認

```
$ docker version
Client:
 Version:      17.10.0-ce
 API version:  1.32 (downgraded from 1.33)
 Go version:   go1.8.3
 Git commit:   f4ffd25
 Built:        Tue Oct 17 19:00:02 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.09.1-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   19e2cf6
 Built:        Thu Dec  7 22:28:28 2017
 OS/Arch:      linux/amd64
 Experimental: false
```
- あ、だいぶ古い。別途でアプデしよう・・

## Nextcloudコンテナの起動

- 公式で取得方法を確認する: https://nextcloud.com/
- ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/ab901392-4a40-5b1b-fe87-b72163cc08ae.png)
- ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/f71aca7a-d2c0-2075-70d7-63521014e52d.png)
- Dockerリポジトリが表示される: https://hub.docker.com/_/nextcloud/
- ![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/64598bd6-a121-6ef7-43c2-0ca2c5175ce9.png)
- `Using the apache image`　の項目に記載のコマンドをDockerのターミナルで実行。

```
$ docker run -d -p 8080:80 nextcloud
```
- Dockerイメージのダウンロード等がおこなわれしばらく待ってプロンプトが返ってきたら完了

# Nextcloud を触ってみる
- http://localhost:8080/ で行けるかな？と思ったけどダメだった（環境によるかも?）
- Dockerコンソールに記載されていたIPアドレスへ直接アクセス http://192.168.99.100:8080/
![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/d602d68b-f3d9-729a-caf3-b58a44aabfcf.png)
- 管理者アカウントとパスワードを指定して画面下部の「セットアップを完了します」でログイン
- 初回はDB等の初期化をしているのか少し時間がかかって1分ほどで画面を確認できた。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/27ded752-b4d0-9e38-561f-5e3416566fde.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/0940a460-6693-b947-2d85-c3f7f526f58f.png)
- メディアファイルのプレビューもできるっぽい。なかなか良いですね。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/c4a8035d-c100-b24f-51c7-d8b10fab485f.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/b6dfbf5e-a177-b037-3f32-841909bfa7dc.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/75076/f18089e9-d609-be05-f5d0-0c33ed3f2a32.png)

# 使ってみて
- 既に世の中には諸々のクラウドストレージが存在するのにあえて自前で運用する必要があるのか？という問いは置いておいて。
- インターネットから触れる環境なら個人利用であれば十分なサービスとして使えそう。
- 適切に構築すれば業務用途にも耐えられるものにできそう。S3とかユーザー管理、二要素認証、SAML、ログ取得回りも検証していきたい。

# 参考にした情報
Dokcer
- https://docs.docker.com/toolbox/overview/
- https://qiita.com/idani/items/fb7681d79eeb48c05144
NextCloud
- https://hub.docker.com/_/nextcloud/
- https://docs.nextcloud.com/server/15/admin_manual/
- https://qiita.com/h_amakasu/items/9947d81bc0d3bc18f06d
- https://qiita.com/CloudRemix/items/ae1500e407102affa47a