From 3bfc475f4ce8a789f70001151f89a4daebc07368 Mon Sep 17 00:00:00 2001
From: David Beniamine <david.beniamine@tetras-libre.fr>
Date: Mon, 15 Nov 2021 17:48:23 +0100
Subject: [PATCH] Split docker-compose file

---
 .env.sample        |  5 +++++
 docker-compose.yml | 37 -------------------------------------
 ldap.yml           | 14 ++++++++++++++
 onlyoffice.yml     | 19 +++++++++++++++++++
 traefik.yml        | 18 ++++++++++++++++++
 5 files changed, 56 insertions(+), 37 deletions(-)
 create mode 100644 ldap.yml
 create mode 100644 onlyoffice.yml
 create mode 100644 traefik.yml

diff --git a/.env.sample b/.env.sample
index bfce670..33f4644 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 1e04e71..85e8139 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 0000000..f7758f0
--- /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 0000000..174bfa5
--- /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 0000000..541199e
--- /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
-- 
GitLab