From acca7d3efaf5d31c55e5724ca68ae829b53c1a48 Mon Sep 17 00:00:00 2001 From: WilliamMiceli Date: Sun, 9 Dec 2018 19:37:20 -0500 Subject: [PATCH] Initial complete creation of fpm and alpine setup Many changes --- templates/Nextcloud/0/README.md | 5 +- templates/Nextcloud/0/docker-compose.yml | 101 ++++++++++++---------- templates/Nextcloud/0/rancher-compose.yml | 5 +- 3 files changed, 63 insertions(+), 48 deletions(-) diff --git a/templates/Nextcloud/0/README.md b/templates/Nextcloud/0/README.md index e8fe31d..0d177e1 100644 --- a/templates/Nextcloud/0/README.md +++ b/templates/Nextcloud/0/README.md @@ -5,4 +5,7 @@ https://scan.nextcloud.com/ ### Apache Configuration Reference -https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html? \ No newline at end of file +https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html? + +### To-Do's +* Explain how to manually setup Redis \ No newline at end of file diff --git a/templates/Nextcloud/0/docker-compose.yml b/templates/Nextcloud/0/docker-compose.yml index 78d3022..ba2e3a3 100644 --- a/templates/Nextcloud/0/docker-compose.yml +++ b/templates/Nextcloud/0/docker-compose.yml @@ -1,47 +1,6 @@ version: '2' services: - httpd: - image: httpd:alpine - dns: - - 1.1.1.1 - - 1.0.0.1 - labels: - io.rancher.container.pull_image: always - {{- if .Values.HOST_LABEL}} - io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} - {{- end}} - io.rancher.sidekicks: nextcloud - {{- if .Values.TRAEFIK_HOST}} - traefik.enable: true - traefik.frontend.rule: Host:${TRAEFIK_HOST} - traefik.frontend.entryPoints: http # ,https - # traefik.frontend.headers.forceSTSHeader: true - # traefik.frontend.headers.SSLRedirect: true - # traefik.frontend.headers.STSPreload: true - # traefik.frontend.headers.STSSeconds: 15552000 - traefik.port: "80" - {{- else}} - traefik.enable: false - {{- end}} - links: - - mysql - - nextcloud - {{- if eq .Values.REDIS "true"}} - - redis - {{- end}} - networks: - - public-proxy - ports: - - "${WEB_PORT}:80" - restart: on-failure - volumes: - - /etc/localtime:/etc/localtime:ro # Syncronize time of container with the host system - - /etc/timezone:/etc/timezone:ro # Syncronize timezone of container with the host system - - /RancherCattleData/${DATA_DIR}/Application:/usr/local/apache2/htdocs -# - /RancherCattleConfig/${DATA_DIR}/httpd:/usr/local/apache2/conf - - /RancherCattleData/${DATA_DIR}/Application:/var/www/html - - /RancherCattleData/${DATA_DIR}/UserData:/var/www/html/data nextcloud: image: nextcloud:fpm-alpine dns: @@ -55,6 +14,7 @@ services: NEXTCLOUD_ADMIN_USER: ${NC_ADMIN} NEXTCLOUD_ADMIN_PASSWORD: ${NC_ADMIN_PASS} expose: + - "80" - "9000" labels: io.rancher.container.pull_image: always @@ -65,14 +25,59 @@ services: - public-proxy restart: on-failure volumes_from: - - httpd + - nginx + nginx: + image: nginx:alpine + dns: + - 1.1.1.1 + - 1.0.0.1 + labels: + io.rancher.container.pull_image: always + {{- if .Values.HOST_LABEL}} + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} + {{- end}} + io.rancher.sidekicks: nextcloud + {{- if .Values.TRAEFIK_HOST}} + traefik.enable: true + ### Start Web Segment + traefik.frontend.entryPoints: http,https + traefik.frontend.headers.forceSTSHeader: true + traefik.frontend.headers.referrerPolicy: no-referrer # Security enhancement (Prevents leaking of referer information) + traefik.frontend.headers.SSLRedirect: true + traefik.frontend.headers.STSPreload: true + traefik.frontend.headers.STSSeconds: 15552000 + traefik.frontend.rule: Host:${TRAEFIK_HOST} + traefik.port: "80" + ### End Web Segment + {{- else}} + traefik.enable: false + {{- end}} + links: + - mysql + - nextcloud + {{- if eq .Values.REDIS "true"}} + - redis + {{- end}} + networks: + - public-proxy + {{- if .Values.WEB_PORT}} + ports: + - "${WEB_PORT}:80" + {{- end}} + restart: on-failure + volumes: + - /etc/localtime:/etc/localtime:ro # Syncronize time of container with the host system + - /etc/timezone:/etc/timezone:ro # Syncronize timezone of container with the host system + - /RancherCattle/${DATA_DIR}/Configuration/NGINX:/etc/nginx + - /RancherCattle/${DATA_DIR}/Nextcloud:/var/www/html + - /RancherCattle/${DATA_DIR}/UserData:/var/www/html/data mysql: image: mysql:5 dns: - 1.1.1.1 - 1.0.0.1 environment: - MYSQL_DATABASE: nextcloud + MYSQL_DATABASE: nextcloud # Will rename this to "nextcloud_db" in the future. MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS} MYSQL_USER: nextcloud_user MYSQL_PASSWORD: ${DB_USER_PASS} @@ -81,11 +86,15 @@ services: {{- if .Values.HOST_LABEL}} io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} {{- end}} + networks: + db-admin: + aliases: + - nextcloud # This should allow access from "mysql.nextcloud.rancher.internal" restart: on-failure volumes: - /etc/localtime:/etc/localtime:ro # Syncronize time of container with the host system - /etc/timezone:/etc/timezone:ro # Syncronize timezone of container with the host system - - /RancherCattleData/${DATA_DIR}/Database:/var/lib/mysql + - /RancherCattle/${DATA_DIR}/Database:/var/lib/mysql {{- if eq .Values.REDIS "true"}} redis: image: redis:latest @@ -100,5 +109,7 @@ services: {{- end}} networks: + db-admin: + external: true # Created by phpMyAdmin stack public-proxy: - external: true \ No newline at end of file + external: true # Created by Traefik stack \ No newline at end of file diff --git a/templates/Nextcloud/0/rancher-compose.yml b/templates/Nextcloud/0/rancher-compose.yml index 0f52a7b..ea4de32 100644 --- a/templates/Nextcloud/0/rancher-compose.yml +++ b/templates/Nextcloud/0/rancher-compose.yml @@ -29,9 +29,10 @@ catalog: label: "Web Port" description: | The port to locally access the web interface on. + Leaving this empty will disable opening any port on the host system. default: "10100" - required: true - type: string + required: false + type: int - variable: "DB_ROOT_PASS" label: "MySQL Root Password"