Skip to content

Discourse (buildable)

The buildable Discourse stack runs Discourse with plugins that don't ship with it: your Git repository lists them or holds them, and Wodby builds Discourse with them. The stack has the same services as the Discourse stack: PostgreSQL, Redis and OpenSMTPD. Its composition is documented in wodby/stack-discourse-buildable.

Everything in the Discourse guide applies, from the administrator emails to mail, data and upgrades. This page covers what differs.

Repository

Start the repository from the Discourse boilerplate and connect it when you create the app.

Path Purpose
plugins.txt Plugins to clone, one Git repository URL per line, optionally followed by a branch or tag
plugins/ Plugins committed to the repository, one directory per plugin with its plugin.rb

For example:

https://github.com/discourse/discourse-bbcode.git
https://github.com/example/discourse-my-plugin.git v1.2.0

Build

Choose the Discourse release line when you create the app. The build starts from Wodby's Discourse image of that line, adds your plugins, installs their gems and compiles only their JavaScript: Discourse's own is reused from the image.

The build fails when a plugin has the name of a plugin that ships with Discourse, such as chat, solved or data explorer, when a directory has no plugin.rb, or when a repository can't be cloned. Turn the plugins that ship with Discourse on in its settings instead.

A plugin must support the release line you run. Pin a plugin to a branch or tag that does, for example the branch a plugin keeps for the extended support release.

Plugins and updates

Discourse migrates its database when it starts, plugins' migrations included. A plugin removed from the repository disappears from Discourse on the next deployment; its data stays in the database.

Discourse's version comes from the service version and its image, not from the repository. It moves forward with service updates, and the app's next build uses it.

To run Discourse with only the plugins it ships with, use the Discourse stack.