Initial complete creation of fpm and alpine setup

Many changes
This commit is contained in:
WilliamMiceli
2018-12-09 19:37:20 -05:00
parent 6ebce7c89c
commit acca7d3efa
3 changed files with 63 additions and 48 deletions

View File

@@ -5,4 +5,7 @@ https://scan.nextcloud.com/
### Apache Configuration Reference ### Apache Configuration Reference
https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html? https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html?
### To-Do's
* Explain how to manually setup Redis

View File

@@ -1,47 +1,6 @@
version: '2' version: '2'
services: 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: nextcloud:
image: nextcloud:fpm-alpine image: nextcloud:fpm-alpine
dns: dns:
@@ -55,6 +14,7 @@ services:
NEXTCLOUD_ADMIN_USER: ${NC_ADMIN} NEXTCLOUD_ADMIN_USER: ${NC_ADMIN}
NEXTCLOUD_ADMIN_PASSWORD: ${NC_ADMIN_PASS} NEXTCLOUD_ADMIN_PASSWORD: ${NC_ADMIN_PASS}
expose: expose:
- "80"
- "9000" - "9000"
labels: labels:
io.rancher.container.pull_image: always io.rancher.container.pull_image: always
@@ -65,14 +25,59 @@ services:
- public-proxy - public-proxy
restart: on-failure restart: on-failure
volumes_from: 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: mysql:
image: mysql:5 image: mysql:5
dns: dns:
- 1.1.1.1 - 1.1.1.1
- 1.0.0.1 - 1.0.0.1
environment: environment:
MYSQL_DATABASE: nextcloud MYSQL_DATABASE: nextcloud # Will rename this to "nextcloud_db" in the future.
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS} MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS}
MYSQL_USER: nextcloud_user MYSQL_USER: nextcloud_user
MYSQL_PASSWORD: ${DB_USER_PASS} MYSQL_PASSWORD: ${DB_USER_PASS}
@@ -81,11 +86,15 @@ services:
{{- if .Values.HOST_LABEL}} {{- if .Values.HOST_LABEL}}
io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} io.rancher.scheduler.affinity:host_label: ${HOST_LABEL}
{{- end}} {{- end}}
networks:
db-admin:
aliases:
- nextcloud # This should allow access from "mysql.nextcloud.rancher.internal"
restart: on-failure restart: on-failure
volumes: volumes:
- /etc/localtime:/etc/localtime:ro # Syncronize time of container with the host system - /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 - /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"}} {{- if eq .Values.REDIS "true"}}
redis: redis:
image: redis:latest image: redis:latest
@@ -100,5 +109,7 @@ services:
{{- end}} {{- end}}
networks: networks:
db-admin:
external: true # Created by phpMyAdmin stack
public-proxy: public-proxy:
external: true external: true # Created by Traefik stack

View File

@@ -29,9 +29,10 @@ catalog:
label: "Web Port" label: "Web Port"
description: | description: |
The port to locally access the web interface on. The port to locally access the web interface on.
Leaving this empty will disable opening any port on the host system.
default: "10100" default: "10100"
required: true required: false
type: string type: int
- variable: "DB_ROOT_PASS" - variable: "DB_ROOT_PASS"
label: "MySQL Root Password" label: "MySQL Root Password"