diff --git a/templates/Mautic/0/README.md b/templates/Mautic/0/README.md new file mode 100644 index 0000000..1114dd5 --- /dev/null +++ b/templates/Mautic/0/README.md @@ -0,0 +1,30 @@ +# Nextcloud + +Nextcloud offers industry-leading on-premises file sync and online collaboration technology. Our expertise is in combining the convenience and ease of use of consumer-grade solutions like Dropbox and Google Drive with the security, privacy and control business needs. + +Our self-hosted solutions ensure you know where data is, who has access, and that even meta-data does not leak. + +## Pre-Requisites + +* Traefik deployed + +## Useful Tools + +* [Official Security Check](https://scan.nextcloud.com/) + +## Easy Redis Setup + +Copy the "redis.config.php" file into your Configuration directory. +You may need to restart your stack for it to pick up. +You can monitor if it is working by opening a shell terminal on your Redis container and using `redis-cli MONITOR` + +## To-Do's + +* Explain how to manually setup Redis +* Fix Cron container, does not yet properly execute yet +* Better setup trusted_proxies + * [Documentation Reference](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/reverse_proxy_configuration.html?highlight=reverse%20proxy) +* Create my own Nextcloud image and make the following changes: + * Add the Redis config + * Add the reverse proxy config + * Have the entrypoint automatically run the "php occ db:add-missing-indices" \ No newline at end of file diff --git a/templates/Mautic/0/docker-compose.yml b/templates/Mautic/0/docker-compose.yml new file mode 100644 index 0000000..a32a861 --- /dev/null +++ b/templates/Mautic/0/docker-compose.yml @@ -0,0 +1,66 @@ +version: '2' + +services: + mautic: + image: mautic/mautic:latest + dns: # Using Cloudflare DNS + - 1.1.1.1 + - 1.0.0.1 + - 2606:4700:4700::1111 + - 2606:4700:4700::1001 + environment: + MAUTIC_DB_HOST: mysql + MAUTIC_DB_USER: mautic_user + MAUTIC_DB_PASSWORD: ${DB_USER_PASS} + MAUTIC_DB_NAME: mautic_db + MAUTIC_TRUSTED_PROXIES: 10.42.0.0/16 # 10.42.0.0/16 is the default Rancher-managed subnet + labels: + io.rancher.container.pull_image: always + {{- if .Values.HOST_LABEL}} + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} + {{- end}} +# io.rancher.sidekicks: cron + traefik.enable: true + ### Start Web UI 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.STSIncludeSubdomains: true + traefik.frontend.headers.STSPreload: true + traefik.frontend.headers.STSSeconds: 15552000 + traefik.frontend.passHostHeader: true + traefik.frontend.rule: Host:${TRAEFIK_HOST} + traefik.port: "80" + ### End Web UI Segment + links: + - mysql + 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 + - /Persistent/${DATA_DIR}:/var/www/html # Mautic site + mysql: + image: mysql:5.6 + dns: # Using Cloudflare DNS + - 1.1.1.1 + - 1.0.0.1 + - 2606:4700:4700::1111 + - 2606:4700:4700::1001 + environment: + MYSQL_DATABASE: mautic_db + MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASS} + MYSQL_USER: mautic_user + MYSQL_PASSWORD: ${DB_USER_PASS} + labels: + io.rancher.container.pull_image: always + {{- if .Values.HOST_LABEL}} + io.rancher.scheduler.affinity:host_label: ${HOST_LABEL} + {{- end}} + traefik.enable: false + 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 + - /Persistent/${DATA_DIR}/Database:/var/lib/mysql + diff --git a/templates/Mautic/0/rancher-compose.yml b/templates/Mautic/0/rancher-compose.yml new file mode 100644 index 0000000..89fa3b2 --- /dev/null +++ b/templates/Mautic/0/rancher-compose.yml @@ -0,0 +1,49 @@ +version: '2' +catalog: + name: Mautic + version: latest + # description: + # minimum_rancher_version: + # maximum_rancher_version: + # upgrade_from: + questions: + + - variable: "HOST_LABEL" + label: "Host Label Key/Value Pair" + description: | + The Label Key/Value pair of the host which containers should be deployed + default: "host.id=Host1" + required: false + type: string + + - variable: "TRAEFIK_HOST" + label: "Public Host Domain" + description: | + The host that Traefik will use to provide public access. + default: "subdomain.domain.tld" + required: true + type: string + + - variable: "DB_ROOT_PASS" + label: "Database Root Password" + description: | + A secure password to be used by the "root" database user. + # default: + required: true + type: password + + - variable: "DB_USER_PASS" + label: "Database User Password" + description: | + A secure password to be used by the "mautic_user" database user. + # default: + required: true + type: password + + - variable: "DATA_DIR" + label: "Data Directory" + description: | + The directory to store persistent data for the stack. + default: "Personal/Mautic" + required: true + type: string \ No newline at end of file diff --git a/templates/Mautic/catalogIcon-nextcloud.svg b/templates/Mautic/catalogIcon-nextcloud.svg new file mode 100644 index 0000000..01cf5e8 --- /dev/null +++ b/templates/Mautic/catalogIcon-nextcloud.svg @@ -0,0 +1 @@ +catalogIcon-nextcloudW \ No newline at end of file diff --git a/templates/Mautic/config.yml b/templates/Mautic/config.yml new file mode 100644 index 0000000..0437694 --- /dev/null +++ b/templates/Mautic/config.yml @@ -0,0 +1,8 @@ +name: Nextcloud +description: | + Nextcloud is a suite of client-server software for creating and using file hosting services. +version: latest +# category: +maintainer: WilliamMiceli +# license: +# projectURL: \ No newline at end of file