discourse #26
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
- Tags:
- applications ›
- forum ›
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.1
- 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
- force_saml_login
- (boolean) Force saml login (full screen, no local database logins)
- image_pass
- (string) Private registry password
- image_user
- (string) Private registry username
- max_body_size
- (int) Max allowed body-size (for file uploads) in megabytes, set to 0 to disable limits
- 20
- redis_host
- (string) Redis host name / IP
- saml_target_url
- (string) SAML authentication target url
- 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
- throttle_level
- (string) Throttle level - blocks excessive usage by ip. Valid values: none, permissive, strict
- none
- tls_secret_name
- (string) The name of the K8s secret to be associated with the ingress resource.