From a39cec1112ddd975eed2316cf6279255429cc4f2 Mon Sep 17 00:00:00 2001 From: Ethan Edwards Date: Tue, 30 Jun 2020 19:10:03 -0400 Subject: [PATCH] Discourse (#189) * Testing discourse.json * More testing * changed underscores to hyphens * idek * Added 'containerHttpPort' * $$cap_appname-${postgresql, redis, discourse, sidekiq} added * t * My commits are messy * added logo * added dockerfileLines to remove the unsupported "commmand" command * done for tonight * moved the password to below the uesr * leaving the house * fixed spacing? * used prettier * added db_name * pushing * pushing * switching devices * pushgin * added changes * switching devices * done for tonight * update * updated * git is hard lol * update * missed this * added smtp * added admin variables * added the password * updating with fixed recommendations --- public/v2/apps/discourse.json | 180 ++++++++++++++++++++++++++++++++++ public/v2/logos/discourse.png | Bin 0 -> 3575 bytes 2 files changed, 180 insertions(+) create mode 100644 public/v2/apps/discourse.json create mode 100644 public/v2/logos/discourse.png diff --git a/public/v2/apps/discourse.json b/public/v2/apps/discourse.json new file mode 100644 index 0000000..57421e0 --- /dev/null +++ b/public/v2/apps/discourse.json @@ -0,0 +1,180 @@ +{ + "captainVersion": "2", + "documentation": "Taken from https://hub.docker.com/r/bitnami/discourse", + "displayName": "Discourse", + "description": "Discourse is the 100% open source discussion platform built for the next decade of the Internet. Use it as a mailing list, discussion forum, long-form chat room, and more!", + "dockerCompose": { + "version": "2", + "services": { + "$$cap_appname-postgresql": { + "documentation": "Taken from https://hub.docker.com/r/bitnami/postgresql", + "image": "docker.io/bitnami/postgresql:$$cap_postgresql_version", + "notExposeAsWebApp": "true", + "restart": "always", + "environment": { "ALLOW_EMPTY_PASSWORD": "yes" }, + "volumes": ["$$cap_appname-postgresql-data:/bitnami/postgresql"] + }, + "$$cap_appname-redis": { + "documentation": "Taken from https://hub.docker.com/r/bitnami/redis", + "image": "docker.io/bitnami/redis:$$cap_redis_version", + "notExposeAsWebApp": "true", + "restart": "always", + "environment": { "ALLOW_EMPTY_PASSWORD": "yes" }, + "volumes": ["$$cap_appname-redis-data:/bitnami"] + }, + "$$cap_appname": { + "documentation": "Taken from https://hub.docker.com/r/bitnami/discourse", + "image": "docker.io/bitnami/discourse:$$cap_discourse_version", + "containerHttpPort": "3000", + "depends_on": [ + "$$cap_appname-postgresql", + "$$cap_appname-redis" + ], + "volumes": ["$$cap_appname-data:/bitnami"], + "environment": { + "POSTGRESQL_HOST": "srv-captain--$$cap_appname-postgresql", + "POSTGRESQL_ROOT_USER": "postgres", + "POSTGRESQL_CLIENT_CREATE_DATABASE_NAME": "$$cap_db_name", + "POSTGRESQL_CLIENT_CREATE_DATABASE_USERNAME": "$$cap_db_user", + "POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD": "$$cap_db_pass", + "DISCOURSE_USERNAME": "$$cap_admin_user", + "DISCOURSE_PASSWORD": "$$cap_admin_pass", + "DISCOURSE_EMAIL": "$$cap_admin_email", + "DISCOURSE_SITENAME": "$$cap_sitename", + "DISCOURSE_POSTGRESQL_NAME": "$$cap_db_name", + "DISCOURSE_POSTGRESQL_USERNAME": "$$cap_db_user", + "DISCOURSE_POSTGRESQL_PASSWORD": "$$cap_db_pass", + "DISCOURSE_HOSTNAME": "$$cap_appname.$$cap_root_domain", + "REDIS_HOST": "srv-captain--$$cap_appname-redis", + "SMTP_HOST": "$$cap_smtp_host", + "SMTP_PORT": "$$cap_smtp_port", + "SMTP_USER": "$$cap_smtp_user", + "SMTP_PASSWORD": "$$cap_smtp_pass" + } + }, + "$$cap_appname-sidekiq": { + "documentaion": "Taken from https://hub.docker.com/r/bitnami/discourse", + "notExposeAsWebApp": "true", + "depends_on": ["$$cap_appname"], + "volumes": ["$$cap_appname-data:/bitnami"], + "dockerfileLines": [ + "FROM docker.io/bitnami/discourse:$$cap_discourse_version", + "CMD [\"nami\" , \"start\" , \"--foreground\" , \"discourse-sidekiq\"]" + ], + "environment": { + "DISCOURSE_POSTGRESQL_NAME": "$$cap_db_name", + "DISCOURSE_POSTGRESQL_USERNAME": "$$cap_db_user", + "DISCOURSE_POSTGRESQL_PASSWORD": "$$cap_db_pass", + "DISCOURSE_HOST": "srv-captain--$$cap_appname", + "DISCOURSE_PORT": "3000", + "DISCOURSE_HOSTNAME": "$$cap_appname.$$cap_root_domain", + "POSTGRESQL_HOST": "srv-captain--$$cap_appname-postgresql", + "REDIS_HOST": "srv-captain--$$cap_appname-redis", + "SMTP_HOST": "$$cap_smtp_host", + "SMTP_PORT": "$$cap_smtp_port", + "SMTP_USER": "$$cap_smtp_user", + "SMTP_PASSWORD": "$$cap_smtp_pass" + } + } + } + }, + "instructions": { + "start": "Discourse is a relatively heavy application, atleast 2GB RAM is recommended to run Discourse", + "end": "Discourse image is deployed and the installation process has begun. The installation process takes about 10 minutes." + }, + "variables": [ + { + "id": "$$cap_discourse_version", + "label": "Discourse Version", + "defaultValue": "2-debian-10", + "description": "Version of Discourse", + "validRegex": "/^([^\\s^\\/])+$/" + }, + { + "id": "$$cap_postgresql_version", + "label": "Postgresql (database) version", + "defaultValue": "11-debian-10", + "description": "Version of Postgresql", + "validRegex": "/^([^\\s^\\/])+$/" + }, + { + "id": "$$cap_sitename", + "label": "Sitename", + "defaultValue": "My site!", + "description": "The title of the site, the words on the tab" + }, + { + "id": "$$cap_redis_version", + "label": "Redis version", + "defaultValue": "5.0-debian-10", + "description": "Version of Redis", + "validRegex": "/^([^\\s^\\/])+$/" + }, + { + "id": "$$cap_admin_user", + "label": "Admin username", + "defaultValue": "admin", + "description": "Name of the admin account", + "validRegex": "/.{1,}/" + }, + { + "id": "$$cap_admin_pass", + "label": "Admin password", + "defaultValue": "sTr0nG_p@s$wo%d", + "description": "Password of the admin account", + "validRegex": "/.{1,}/" + }, + { + "id": "$$cap_admin_email", + "label": "Admin email", + "defaultValue": "your_email@gmail.com", + "description": "Email of the admin account", + "validRegex": "/.{1,}/" + }, + { + "id": "$$cap_db_name", + "label": "Database name", + "defaultValue": "discourse_db", + "description": "Name for the database using postgresql", + "validRegex": "/^([^\\s^\\/])+$/" + }, + { + "id": "$$cap_db_user", + "label": "Database user", + "defaultValue": "discourse_user", + "description": "Username for the database using postgresql", + "validRegex": "/^([^\\s^\\/])+$/" + }, + { + "id": "$$cap_db_pass", + "label": "Database password", + "defaultValue": "sTr0nG_p@s$wo%d", + "description": "Password for the database user and root using postgresql", + "validRegex": "/.{1,}/" + }, + { + "id": "$$cap_smtp_host", + "label": "SMPT host", + "defaultValue": "smtp.gmail.com", + "description": "The host for your smtp server" + }, + { + "id": "$$cap_smtp_port", + "label": "SMTP port", + "defaultValue": "587", + "description": "The port for your smtp server" + }, + { + "id": "$$cap_smtp_user", + "label": "SMTP user", + "defaultValue": "your_email@gmail.com", + "description": "The user for your smtp server" + }, + { + "id": "$$cap_smtp_pass", + "label": "SMTP password", + "defaultValue": "sTr0nG_p@s$wo%d", + "description": "The password for your smtp server" + } + ] +} diff --git a/public/v2/logos/discourse.png b/public/v2/logos/discourse.png new file mode 100644 index 0000000000000000000000000000000000000000..90b9b30dc4be6a83dbf63bf32f7d5118df7b5296 GIT binary patch literal 3575 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 xz_{!8n1FB>?K3m&dbV)^;Mqk)wl>P-x89rN