Open5
DockerによるNextcloud構築

目的
自宅LAN用のオンラインストレージを構築したい
手段
OSSとして公開されているNextcloudを自宅サーバに構築する
構成
「docker compose」を利用して構築する
参考

dockerの構成は以下のようにする
~/nextcloud
├── compose.yaml
├── .env
データは外部HDDに保存するものとする
/mnt/nextcloud
├── /data
├── /config
├── /db

compose.yaml
上記のように「/mnt」以下に外付けストレージを接続し、その中にnextcloud用の保存場所を用意する
LAN内でもhttpsで接続できるように「steveltn/https-portal」を使用する
また「hoge.com」でも接続できるように「NEXTCLOUD_TRUSTED_DOMAINS」を設定する
パスワードなどは「.env」に記載
services:
mysql:
image: mariadb:10.6
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- /mnt/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- TZ=Asia/Tokyo
nextcloud:
image: nextcloud:30
restart: always
#ports:
# - 8080:80
links:
- mysql
volumes:
# 必要なものだけ永続化、これで大丈夫だと思うが…
#- /mnt/nextcloud/html:/var/www/html
- /mnt/nextcloud/data:/var/www/html/data
- /mnt/nextcloud/config:/var/www/html/config
environment:
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=mysql
- NEXTCLOUD_TRUSTED_DOMAiINS='hoge.com' # 信頼するドメインを追加
- OVERWRITEPROTOCOL=https # iOSから接続の際に必要
- PHP_UPLOAD_LIMIT=16G # アップロードできるファイルサイズ
- TZ=Asia/Tokyo

.env
<password>の部分に自信のパスワードを記入する
MYSQL_ROOT_PASSWORD=<password>
MYSQL_PASSWORD=<password>

cronでバックグラウンド処理
下記を参考に設定する
ログインするとコメントできます