The project licence governs this repository's code and says nothing about the application a role installs, which is where a restriction on commercial use usually sits: a deployment cleared to use Infinito.Nexus commercially is still barred from NLLB-200's CC BY-NC weights. Each invokable role names its licence in meta/<role>/license.yml with the url it was read from. The rights of a named licence live once in meta/licenses.yml, fifteen fields following the taxonomy choosealicense publishes. AND folds to the strictest combination, OR keeps the most favourable whole licence, and the seven contexts are derived from the rights rather than declared, so a heading cannot contradict the matrix under it. The generated page renders one matrix per context, a lint refuses a role that declares nothing, and a Playwright spec asserts the page against the deployed docs. 21 of 22 deprecated SPDX ids were resolved against the upstream text; EPSON's remains unread because its AUR page blocks automated access. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Discourse
Description
Discourse is a popular open-source discussion platform designed to foster community engagement through modern, user-friendly features and robust moderation tools. It creates a dynamic space for discussions, offering seamless notifications and customizable interfaces to keep your community active and engaged.
Overview
This role deploys Discourse using Docker, automating tasks such as container orchestration, service configuration, and routine administrative operations. It integrates key components like Redis and PostgreSQL, sets up domain routing with NGINX, and ensures streamlined updates for a reliable forum experience.
Features
- Modern Forum Experience: Engage in interactive, real-time discussions with a responsive, mobile-friendly design.
- Robust Moderation Tools: Benefit from comprehensive tools for content management and community moderation.
- Customizable Layouts & Themes: Tailor your forum’s look and functionality to suit your community’s unique style.
- Scalable Architecture: Utilize a Docker-based deployment that adapts easily to increasing traffic and community size.
- Extensive Plugin Support: Enhance your forum with a wide range of plugins and integrations for additional functionality.
Addons
Addons are declared in meta/addons/ and read at deploy time via lookup('config', application_id, 'addons').
| Addon | Mechanism | Default state | Bridges |
|---|---|---|---|
docker_manager |
plugin | enabled | none |
discourse-activity-pub |
plugin | enabled | mastodon |
discourse-akismet |
plugin | enabled | none (API key is operator-supplied) |
discourse-ai |
plugin | follows services.litellm.enabled |
litellm |
discourse-bbb |
plugin | follows services.bigbluebutton.enabled |
bigbluebutton |
discourse-jitsi |
plugin | follows services.jitsi.enabled |
jitsi |
discourse-chat-integration |
plugin | follows services.matrix.enabled or services.mattermost.enabled |
matrix, mattermost |
discourse-openid-connect |
plugin | follows services.sso.enabled |
sso |
discourse-prometheus |
plugin | follows services.prometheus.enabled |
prometheus |
discourse-ldap-auth |
plugin | follows services.ldap.enabled (currently off) |
ldap |
The bridged partners are co-deployed by variant 1 of meta/variants.yml; variant 0 is the baseline round and keeps them off to stay within its host budget.
discourse-akismet ships the plugin but configures nothing: the role writes no akismet site setting, and akismet_api_key is a SaaS credential an operator enters in the admin UI. Its spec asserts only that the plugin's settings exist.
The ldap service block in meta/services.yml is intentionally pinned to literal false (see TODO.md): the jonmbake/discourse-ldap-auth plugin breaks Discourse bootstrap on recent versions. discourse-ldap-auth therefore resolves to disabled until that block is flipped back to the dynamic group-membership form.