Config as code options for Discourse?

So not talking about the instance deployment with db etc.

Is there a pattern out there for maintaining an instance using some declarative format? Categories, tags, policies, etc. Was thinking it would be nice for our technical users to recommend changes via PR vs topic threads and manual fulfillment, but didn’t see a plugin or other “as code” tool out there focused on the organizational config of Discourse.

1 Like

I think the expectation is that sites will use the pre-seeded site feedback category for this. Its description is: “Discussion about this site, its organization, how it works, and how we can improve it.”

That’s an interesting idea. What benefit would it have over just having users suggest changes in regular topics? Is the goal to have a way of keeping track of changes that have been made to the site’s configuration over time?

Site settings, categories, tags, policies etc, can be configured with the Discourse API. It might be possible to have a script that managed your site’s configuration via the API in a git repo. The script could be run when a PR on the repo is accepted. From my point of view this would be more difficult than manually making changes to the site’s config via the UI though.


10-4 on the Category. For now I was crowdsourcing a bit on an existing pattern. For me its getting that gitops style community engagement so landed with this one, but can punt it over to the other if it helps.

And yeah we use a bit of config as code for a lot of things so you get the clean revision control, deterministic roll back, clear change review, etc. GUI based changes are not bad (and what we do today via community feedback loops) but its a manual operation and the decision context can be lost to time. And the org constructs exist in the middle between the infra and the actual dialog so its not a deployment or rehydration thing.

And yeah PR based triggers (or even an Issue) can fire off a runbook that figures out the proposed change and does the operation. Doing the diff analysis and linting can be difficult which is why i was poking around to see if anyone had tried it yet. The ask is definitely square in the nice to have camp and only might resonate with a certain demographic.

1 Like