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 0000000..90b9b30 Binary files /dev/null and b/public/v2/logos/discourse.png differ