Zenn
Open5

DockerによるNextcloud構築

でぶねこでぶねこ

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>
ログインするとコメントできます