discourse #15

Supports: kubernetes

Deploy this charm on Kubernetes with the CLI. Find out how by reading the docs.

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! https://www.discourse.org


Discourse Operator

A juju charm deploying and managing Discourse on Kubernetes, configurable to use a PostgreSQL backend.

Overview

Supported features include SAML authentication, scaling to multiple pods and the storage of files and images in S3. This charm also offers seamless Discourse version upgrades, initiated by switching to an image with a newer version of Discourse than the one currently deployed.

Usage

For details on using Kubernetes with Juju see here, and for details on using Juju with MicroK8s for easy local testing see here.

To get started with a test environment, first deploy Redis in an IaaS model:

juju deploy cs:~redis-charmers/redis  # Note the deployed IP as ${REDIS_IP}

Now deploy the Discourse and PostgreSQL charms within a Juju Kubernetes model as follows:

juju deploy cs:~postgresql-charmers/postgresql-k8s postgresql
juju deploy cs:~discourse-charmers/discourse-k8s discourse \
  --config redis_host=${REDIS_IP} \
  --config developer_emails="user@foo.internal" \
  --config external_hostname="foo.internal" \
  --config smtp_address="127.0.0.1" \
  --config smtp_domain="foo.internal"
juju add-relation discourse postgresql:db-admin
juju expose discourse

Once the deployment is completed and the "discourse" workload state in juju status has changed to "active" you can visit http://{$discourse_ip}:3000 in a browser and log in to your Discourse instance.

For further details, see here.


Configuration

cors_origin
(string) Cors origin string to use, defaults to '*'
*
db_name
(string) PostgreSQL database name. Defaults to Juju Application name.
developer_emails
(string) Comma delimited list of email addresses that should have developer level access
discourse_image
(string) Discourse image to use
discoursecharmers/discourse:v2.6.0
enable_cors
(boolean) Enable Cross-origin Resource Sharing (CORS) at the application level (required for SSO)
True
external_hostname
(string) External hostname this discourse instance should respond to
image_pass
(string) Private registry password
image_user
(string) Private registry username
redis_host
(string) Redis host name / IP
smtp_address
(string) Hostname / IP that should be used to send SMTP mail
smtp_authentication
(string) Type of smtp authentication to use
none
smtp_domain
(string) Hostname that email sent by this discourse should appear to come from
smtp_openssl_verify_mode
(string) Should discourse verify SSL certs
none
smtp_password
(string) Password to use when sending mail via SMTP
smtp_port
(int) Port to use when connecting to SMTP server
587
smtp_username
(string) Username to use when sending mail via SMTP
tls_secret_name
(string) The name of the K8s secret to be associated with the ingress resource.