Docker - nextcloud oder linuxserver/nextcloud

haha das ist genau das Problem… ich habe ein über mehrere compose files verteiltes Setup mit unterschiedlichen Diensten traefik, 2 Nextclouds, CODE, restic backup. In den compose files sind zT domains und credencials drin. Das verständlich runterzubrechen und auch einfach verständlich zu machen braucht ein Paar Tage und gewisse Motivation - die ich bisher nicht aufgebracht habe und kurzfristig wohl auch nicht aufbringen werde. Ich habe mein Setup schon mal recht detailliert beschrieben… im Moment sieht es nicht viel anders aus…

Das ist was ich aktuell im dev habe - mittlereweile würde ich einiges anders machen… könnte sein das einige Parameter nicht notwendig sind… non-root UID/PID habe angefangen aber noch nicht abgeschlossen. Aber wenn es dir hilft

cat compose.yml

version: "3.3"

services:
  dev-nextcloud-db:
    image: mariadb:10.5
    container_name: dev-nextcloud-db
    command: --transaction-isolation=READ-COMMITTED --log-bin=ROW
    restart: unless-stopped
    volumes:
      #- /etc/localtime:/etc/localtime:ro
      #- /etc/timezone:/etc/timezone:ro
      - ./db:/var/lib/mysql
      - ./db-config/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./db-backup:/mnt/db-backup
    env_file:
      - ./db.env

  dev-nextcloud-redis:
    image: redis:alpine
    container_name: dev-nextcloud-redis
    command: redis-server --requirepass ${REDIS_HOST_PASSWORD}
    env_file:
      - ./redis.env
    restart: unless-stopped

  dev-nextcloud-app:
    image: nextcloud:${NEXTCLOUD_VERSION}
    #build:
    #  context: .
    #  dockerfile: ./nextcloud_with_smb
    container_name: dev-nextcloud-app
    restart: unless-stopped
    # untested with cron and push
    # user: 1004:1004
    depends_on:
      - dev-nextcloud-db
      - dev-nextcloud-redis
    env_file:
      - ./nextcloud.env
      - ./db.env
    volumes:
      - ./app:/var/www/html
      - ./files:/var/www/html/data
      - ./config:/var/www/html/config
      # https://github.com/nextcloud/docker/issues/182
      - ./php/conf.d/custom.ini:/usr/local/etc/php/conf.d/custom.ini
      - ./remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf:ro
      - ./redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
    networks:
      proxy:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.dev-nextcloud.entrypoints=web-secure
      - traefik.http.routers.dev-nextcloud.priority=1                     # for notify_push
      - traefik.http.routers.dev-nextcloud.rule=Host(`${NEXTCLOUD_FQDN}`) #Domain anpassen
      - traefik.http.routers.dev-nextcloud.tls=true
      - traefik.http.routers.dev-nextcloud.tls.certresolver=letsencryptresolver
      - traefik.http.routers.dev-nextcloud.middlewares=secHeaders4@file,nextcloud-redirect@file
      - traefik.http.services.dev-nextcloud.loadbalancer.server.port=80
      - traefik.docker.network=proxy

  dev-nextcloud-cron:
    image: nextcloud:${NEXTCLOUD_VERSION}
    container_name: dev-nextcloud-cron
    restart: unless-stopped
    env_file:
      - ./nextcloud.env
      - ./db.env
    volumes:
      - ./app:/var/www/html
      - ./files:/var/www/html/data
      - ./config:/var/www/html/config
    entrypoint: /cron.sh
    depends_on:
      - dev-nextcloud-app

  dev-nextcloud-notify_push:
    image: nextcloud:${NEXTCLOUD_VERSION}
    container_name: dev-nextcloud-notify_push
    restart: unless-stopped
    environment:
      - PORT=7867
      - NEXTCLOUD_URL=http://dev-nextcloud-app # don't go through the proxy to contact the nextcloud server
    entrypoint: /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push /var/www/html/config/config.php
    depends_on:
      - dev-nextcloud-db
      - dev-nextcloud-redis
      - dev-nextcloud-app
    volumes:
      - ./app:/var/www/html
      - ./config:/var/www/html/config:ro
    networks:
      proxy:
      default:
    labels:
      - traefik.enable=true
      - traefik.http.routers.dev-nextcloud_push.entryPoints=web-secure
      - traefik.http.routers.dev-nextcloud_push.priority=2
      - traefik.http.routers.dev-nextcloud_push.middlewares=nextcloud_strip_push
      - traefik.http.routers.dev-nextcloud_push.tls.certresolver=letsencryptresolver
      # necessary for the notify_push app to work:
      - traefik.http.routers.dev-nextcloud_push.rule=Host(`${NEXTCLOUD_FQDN}`) && PathPrefix(`/push`)
      - traefik.http.routers.dev-nextcloud_push.middlewares=nextcloud_striprefix_push@file
      - traefik.http.services.dev-nextcloud_push.loadbalancer.server.port=7867
      - traefik.docker.network=proxy

networks:
  proxy:
    external: true

cat .env

 cat ../dev-nextcloud/.env
# this is the ENV file for docker-compose
# nextcloud FQDN - public DNS (for traefik labels)
NEXTCLOUD_FQDN=dev-nc.mydomain.tld
NEXTCLOUD_VERSION=27

cat .nextcloud.env

# nextcloud FQDN - public DNS
NEXTCLOUD_FQDN=dev-nc.mydomain.tld
NEXTCLOUD_TRUSTED_DOMAINS=dev-nc.mydomain.tld
NEXTCLOUD_ADMIN_USER=root
NEXTCLOUD_ADMIN_PASSWORD=**sensitive value**
# SMTP config
SMTP_HOST=**sensitive value**
SMTP_SECURE=ssl
SMTP_PORT=465
SMTP_NAME=**sensitive value**
SMTP_PASSWORD=**sensitive value**
# reverse proxy config
OVERWRITEHOST=dev-nc.mydomain.tld
OVERWRITEPROTOCOL=https
overwrite.cli.url=https://dev-nc.mydomain.tld
# from NC25 ? notify_push requires this setting!
OVERWRITECLIURL=https://dev-nc.mydomain.tld
COLLABORA_FQDN=collabora.mydomain.tld
# redis
#REDIS_URL=redis://dev-nextcloud-redis
REDIS_HOST=dev-nextcloud-redis
REDIS_HOST_PASSWORD=**sensitive value**
#TURN server
COTURN_SECRET=**sensitive value**
# php
PHP_MEMORY_LIMIT=768M
PHP_UPLOAD_LIMIT=1G

cat db.env

# maria DB container
MYSQL_HOST=dev-nextcloud-db
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_PASSWORD=**sensitive value**
1 Like