From 83ea4cb5b6a2d034b27b3bd3fa327a4899be045c Mon Sep 17 00:00:00 2001 From: Michael Grote Date: Fri, 31 May 2024 15:06:41 +0200 Subject: [PATCH] -dalp --- .../nextcloud/docker-compose.yml.j2 | 148 ------------------ .../nextcloud_ldap/docker-compose.yml.j2 | 50 +++--- 2 files changed, 25 insertions(+), 173 deletions(-) delete mode 100644 docker-compose/nextcloud/docker-compose.yml.j2 diff --git a/docker-compose/nextcloud/docker-compose.yml.j2 b/docker-compose/nextcloud/docker-compose.yml.j2 deleted file mode 100644 index b83d017f..00000000 --- a/docker-compose/nextcloud/docker-compose.yml.j2 +++ /dev/null @@ -1,148 +0,0 @@ -version: '3.3' -services: -######## Datenbank ######## - nextcloud-db: - image: "mariadb:11.3.2" - container_name: nextcloud-db - command: --transaction-isolation=READ-COMMITTED --log-bin=ROW --innodb_read_only_compressed=OFF - restart: unless-stopped - volumes: - - /etc/localtime:/etc/localtime:ro - - /etc/timezone:/etc/timezone:ro - - db:/var/lib/mysql - environment: - MYSQL_ROOT_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_root_password', 'password') }}" - MYSQL_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}" - MYSQL_DATABASE: nextcloud - MYSQL_USER: nextcloud - MYSQL_INITDB_SKIP_TZINFO: 1 - networks: - - intern - healthcheck: - interval: 30s - retries: 3 - test: - [ - "CMD", - "healthcheck.sh", - "--su-mysql", - "--connect" - ] - timeout: 30s - - # Error - ## [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255). - ## [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB'). - # Fix - ## docker exec nextcloud-db mysql nextcloud -p -e "ALTER TABLE mysql.column_stats MODIFY histogram longblob;" - ## docker exec nextcloud-db mysql nextcloud -p -e "ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');" - -######## Redis ######## - nextcloud-redis: - image: "redis:7.2.5" - container_name: nextcloud-redis - hostname: nextcloud-redis - networks: - - intern - restart: unless-stopped - command: "redis-server --requirepass {{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}" - healthcheck: - test: ["CMD", "redis-cli", "--pass", "{{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}", "--no-auth-warning", "ping"] - interval: 5s - timeout: 2s - retries: 3 - -######## cron ######## - nextcloud-cron: - container_name: nextcloud-cron - image: "registry.mgrote.net/nextcloud-cronjob:latest" - restart: unless-stopped - network_mode: none - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - /etc/localtime:/etc/localtime:ro - environment: - NEXTCLOUD_CONTAINER_NAME: nextcloud-app - NEXTCLOUD_CRON_MINUTE_INTERVAL: 1 - -######## Nextcloud ######## - nextcloud-app: - image: "nextcloud:29.0.0" - container_name: nextcloud-app - restart: unless-stopped - depends_on: - - nextcloud-db - - nextcloud-redis - - nextcloud-cron - environment: - REDIS_HOST: nextcloud-redis - REDIS_HOST_PASSWORD: "{{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}" - MYSQL_DATABASE: nextcloud - MYSQL_USER: nextcloud - MYSQL_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}" - MYSQL_HOST: nextcloud-db - NEXTCLOUD_TRUSTED_DOMAINS: "nextcloud.mgrote.net" - SMTP_HOST: mail-relay - #SMTP_SECURE: tls - SMTP_PORT: 25 - #SMTP_AUTHTYPE: LOGIN - SMTP_NAME: info@mgrote.net - #SMTP_PASSWORD: "{{ lookup('keepass', 'strato_smtp_password', 'password') }}" - MAIL_FROM_ADDRESS: info@mgrote.net - PHP_MEMORY_LIMIT: 1024M - PHP_UPLOAD_LIMIT: 10G - APACHE_DISABLE_REWRITE_IP: 1 - TRUSTED_PROXIES: "192.168.48.0/24" # Subnetz in dem sich traefik befindet - NEXTCLOUD_UPLOAD_LIMIT: 10G - NEXTCLOUD_MAX_TIME: 3600 - APACHE_BODY_LIMIT: 0 # unlimited, https://github.com/nextcloud/docker/issues/1796 - volumes: - - app:/var/www/html - - data:/var/www/html/data - networks: - - intern - - traefik - - mail-relay - healthcheck: - test: ["CMD", "curl", "-f", "--insecure", "http://localhost:80"] - interval: 30s - timeout: 10s - retries: 3 - labels: - traefik.http.routers.nextcloud.rule: Host(`nextcloud.mgrote.net`) - traefik.enable: true - traefik.http.routers.nextcloud.tls: true - traefik.http.routers.nextcloud.tls.certresolver: resolver_letsencrypt - traefik.http.routers.nextcloud.entrypoints: entry_https - traefik.http.services.nextcloud.loadbalancer.server.port: 80 - - traefik.http.middlewares.nextcloud-webdav.replacepathregex.regex: "^/.well-known/ca(l|rd)dav" - traefik.http.middlewares.nextcloud-webdav.replacepathregex.replacement: "/remote.php/dav/" - - traefik.http.middlewares.nextcloud-hsts.headers.stsincludesubdomains: false - traefik.http.middlewares.nextcloud-hsts.headers.stspreload: true - traefik.http.middlewares.nextcloud-hsts.headers.stsseconds: 15552001 - traefik.http.middlewares.nextcloud-hsts.headers.isdevelopment: false - - traefik.http.routers.nextcloud.middlewares: nextcloud-hsts,nextcloud-webdav - -######## Networks ######## -networks: - intern: - driver: bridge - traefik: - external: true - mail-relay: - external: true -######## Volumes ######## -volumes: - db: - app: - data: - -######## Doku ######## -# Telefonregion -# docker exec --user www-data nextcloud-app php occ config:system:set default_phone_region --value="DE" -# https://help.nextcloud.com/t/nextcloud-wont-load-any-mixed-content/13565/3 -# docker exec --user www-data nextcloud-app php occ config:system:set overwriteprotocol --value="https" -# docker exec --user www-data nextcloud-app php occ config:system:set overwrite.cli.url --value="http://nextcloud.mgrote.net" diff --git a/docker-compose/nextcloud_ldap/docker-compose.yml.j2 b/docker-compose/nextcloud_ldap/docker-compose.yml.j2 index 79e97926..c290ee3d 100644 --- a/docker-compose/nextcloud_ldap/docker-compose.yml.j2 +++ b/docker-compose/nextcloud_ldap/docker-compose.yml.j2 @@ -1,15 +1,15 @@ version: '3.3' services: ######## Datenbank ######## - nextcloud-db-ldap: + nextcloud-db: image: "mariadb:11.3.2" - container_name: nextcloud-db-ldap + container_name: nextcloud-db command: --transaction-isolation=READ-COMMITTED --log-bin=ROW --innodb_read_only_compressed=OFF restart: unless-stopped volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - - db-ldap:/var/lib/mysql + - db:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_root_password', 'password') }}" MYSQL_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}" @@ -34,14 +34,14 @@ services: ## [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255). ## [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB'). # Fix - ## docker exec nextcloud-db-ldap mysql nextcloud -p -e "ALTER TABLE mysql.column_stats MODIFY histogram longblob;" - ## docker exec nextcloud-db-ldap mysql nextcloud -p -e "ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');" + ## docker exec nextcloud-db mysql nextcloud -p -e "ALTER TABLE mysql.column_stats MODIFY histogram longblob;" + ## docker exec nextcloud-db mysql nextcloud -p -e "ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');" ######## Redis ######## - nextcloud-redis-ldap: + nextcloud-redis: image: "redis:7.2.5" - container_name: nextcloud-redis-ldap - hostname: nextcloud-redis-ldap + container_name: nextcloud-redis + hostname: nextcloud-redis networks: - intern restart: unless-stopped @@ -53,8 +53,8 @@ services: retries: 3 ######## cron ######## - nextcloud-cron-ldap: - container_name: nextcloud-cron-ldap + nextcloud-cron: + container_name: nextcloud-cron image: "registry.mgrote.net/nextcloud-cronjob:latest" restart: unless-stopped network_mode: none @@ -62,27 +62,27 @@ services: - /var/run/docker.sock:/var/run/docker.sock:ro - /etc/localtime:/etc/localtime:ro environment: - NEXTCLOUD_CONTAINER_NAME: nextcloud-app-ldap + NEXTCLOUD_CONTAINER_NAME: nextcloud-app NEXTCLOUD_CRON_MINUTE_INTERVAL: 1 ######## Nextcloud ######## - nextcloud-app-ldap: + nextcloud-app: image: "nextcloud:29.0.0" - container_name: nextcloud-app-ldap + container_name: nextcloud-app restart: unless-stopped depends_on: - - nextcloud-db-ldap - - nextcloud-redis-ldap - - nextcloud-cron-ldap + - nextcloud-db + - nextcloud-redis + - nextcloud-cron environment: # redis - REDIS_HOST: nextcloud-redis-ldap + REDIS_HOST: nextcloud-redis REDIS_HOST_PASSWORD: "{{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}" # mysql MYSQL_DATABASE: nextcloud MYSQL_USER: nextcloud MYSQL_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}" - MYSQL_HOST: nextcloud-db-ldap + MYSQL_HOST: nextcloud-db # mail SMTP_HOST: mail-relay SMTP_PORT: 25 @@ -101,8 +101,8 @@ services: NEXTCLOUD_MAX_TIME: 3600 APACHE_BODY_LIMIT: 0 # unlimited, https://github.com/nextcloud/docker/issues/1796 volumes: - - app-ldap:/var/www/html - - data-ldap:/var/www/html/data + - app:/var/www/html + - data:/var/www/html/data # hook-script nach install welches die ldap-config setzt, je einmal nach install und vor starten - ./ldap.sh:/docker-entrypoint-hooks.d/post-installation/ldap.sh - ./ldap.sh:/docker-entrypoint-hooks.d/before-starting/ldap.sh @@ -121,7 +121,7 @@ services: timeout: 10s retries: 3 labels: - traefik.http.routers.nextcloud.rule: Host(`nextcloud-ldap.mgrote.net`) + traefik.http.routers.nextcloud.rule: Host(`nextcloud.mgrote.net`) traefik.enable: true traefik.http.routers.nextcloud.tls: true traefik.http.routers.nextcloud.tls.certresolver: resolver_letsencrypt @@ -148,9 +148,9 @@ networks: external: true ######## Volumes ######## volumes: - db-ldap: - app-ldap: - data-ldap: + db: + app: + data: -# debug: docker exec --user www-data nextcloud-app-ldap php occ config:system:set trusted_domains 2 --value=docker10.mgrote.net +# debug: docker exec --user www-data nextcloud-app php occ config:system:set trusted_domains 2 --value=docker10.mgrote.net