diff --git a/.env.sample b/.env.sample index bfce670ec8e7447e4c7950f2384cd4f65ccb1556..33f4644dd413701344afc4e93b4990b313d16d2b 100644 --- a/.env.sample +++ b/.env.sample @@ -1,3 +1,8 @@ +# +# Add all modules you need, ex : +# COMPOSE_FILE=docker-compose.yml:onlyoffice.yml:traefik.yml:ldap.yml +# +COMPOSE_FILE=docker-compose.yml HOST=nextcloud.FQDN MYSQL_PASSWORD= MYSQL_ROOT_PASSWORD= diff --git a/docker-compose.yml b/docker-compose.yml index 1e04e7165ee2412880624b338fa5393688c26fde..85e813997abf805c7288a98c57206d0205cb0c46 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,9 +12,6 @@ services: - '9000' volumes: - app_data:/var/www/html - networks: - - ldap - - default environment: MYSQL_PASSWORD: MYSQL_DATABASE: @@ -28,9 +25,6 @@ services: volumes: - app_data:/var/www/html entrypoint: /cron.sh - networks: - - ldap - - default db: image: mariadb @@ -44,19 +38,6 @@ services: MYSQL_DATABASE: MYSQL_USER: - onlyoffice-document-server: - container_name: onlyoffice-document-server - image: onlyoffice/documentserver:latest - stdin_open: true - tty: true - restart: always - expose: - - '80' - - '443' - volumes: - - document_data:/var/www/onlyoffice/Data - - document_log:/var/log/onlyoffice - nginx: container_name: nginx-server image: nginx @@ -69,25 +50,7 @@ services: networks: - traefik - default - labels: - - "traefik.enable=true" - - "traefik.docker.network=traefik" - - "traefik.http.routers.nextcloud.rule=Host(`${HOST}`)" - - "traefik.http.routers.nextcloud.tls.certresolver=myresolver" - - "traefik.http.routers.nextcloud.entrypoints=web,websecure" - - "traefik.http.routers.nextcloud.middlewares=nextcloud-caldav@docker,hardening@docker" - - "traefik.http.middlewares.nextcloud-caldav.redirectregex.permanent=true" - - "traefik.http.middlewares.nextcloud-caldav.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav" - - "traefik.http.middlewares.nextcloud-caldav.redirectregex.replacement=https://$${1}/remote.php/dav/" volumes: - document_data: - document_log: app_data: db: - -networks: - ldap: - external: true - traefik: - external: true diff --git a/ldap.yml b/ldap.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7758f030d040c9cd36363cbb0e70738b898da17 --- /dev/null +++ b/ldap.yml @@ -0,0 +1,14 @@ +version: '3' +services: + nextcloud: + networks: + - ldap + - defautlt + cron: + - ldap + - defautlt + +networks: + ldap: + external: true + diff --git a/onlyoffice.yml b/onlyoffice.yml new file mode 100644 index 0000000000000000000000000000000000000000..174bfa5b969c6e674d74b64a81d91a7c55eedaf5 --- /dev/null +++ b/onlyoffice.yml @@ -0,0 +1,19 @@ +version: '3' +services: + + onlyoffice-document-server: + container_name: onlyoffice-document-server + image: onlyoffice/documentserver:latest + stdin_open: true + tty: true + restart: always + expose: + - '80' + - '443' + volumes: + - document_data:/var/www/onlyoffice/Data + - document_log:/var/log/onlyoffice + +volumes: + document_data: + document_log: diff --git a/traefik.yml b/traefik.yml new file mode 100644 index 0000000000000000000000000000000000000000..541199ef73484a01cf27071e846dc67fac58fb38 --- /dev/null +++ b/traefik.yml @@ -0,0 +1,18 @@ +version: '3' +services: + + nginx: + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.http.routers.nextcloud.rule=Host(`${HOST}`)" + - "traefik.http.routers.nextcloud.tls.certresolver=myresolver" + - "traefik.http.routers.nextcloud.entrypoints=web,websecure" + - "traefik.http.routers.nextcloud.middlewares=nextcloud-caldav@docker,hardening@docker" + - "traefik.http.middlewares.nextcloud-caldav.redirectregex.permanent=true" + - "traefik.http.middlewares.nextcloud-caldav.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav" + - "traefik.http.middlewares.nextcloud-caldav.redirectregex.replacement=https://$${1}/remote.php/dav/" + +networks: + traefik: + external: true