Twenty
About
Building a modern alternative to Salesforce, powered by the community.
- Questions? Ask in the Cloudron Forum - Twenty
- Twenty package
- Twenty repo
- Twenty issue tracker
Multiple workspaces
By default Twenty runs in single-workspace mode - one workspace served on the app's domain. Twenty can also run in multi-workspace mode, where the app hosts many workspaces and gives each its own subdomain.
How the domains work
In multi-workspace mode Twenty puts every workspace on a subdomain of the app's own
domain. If the app is installed on twenty.domain.local, then:
- sign in / sign up lives on
app.twenty.domain.local - a workspace is served on
<workspace>.twenty.domain.local, e.g.sales.twenty.domain.local
Because the workspace subdomains are created by Twenty on the fly, the app needs to
answer for any subdomain under its domain. That is what the wildcard domain
*.twenty.domain.local is for: it points every <something>.twenty.domain.local at
this app, and Cloudron issues a single wildcard certificate that covers all of them.
Enabling multi-workspace mode
Add the wildcard domain before enabling multi-workspace mode. Once enabled, sign in
moves to app.twenty.domain.local, so without the wildcard domain in place that address
does not resolve and you are locked out.
-
Add the wildcard domain first. In the Cloudron dashboard open the app's Location and add
*.twenty.domain.localas an additional domain next to the primarytwenty.domain.local. Wait until Cloudron shows the certificate as ready. -
Turn on multi-workspace mode. Edit
/app/data/env(via the File Manager or a Web Terminal) and set:IS_MULTIWORKSPACE_ENABLED=true
DEFAULT_SUBDOMAIN=appDEFAULT_SUBDOMAINis the subdomain used for sign in / sign up (appby default, givingapp.twenty.domain.local). It is independent of the per-workspace subdomains. -
Restart the app.
Renaming a workspace subdomain
Each workspace has an editable subdomain. Open Settings → General and edit the
Workspace Domain field. The new address stays under the app's wildcard domain, so
sales.twenty.domain.local can become crm.twenty.domain.local. There is no separate
"Domains" entry in the sidebar - this setting lives under General.
To change the address of the app itself (the part before the wildcard, e.g.
twenty.domain.local), open the app's Location in the Cloudron dashboard instead.
Twenty also has a per-workspace custom domain feature - a workspace served on its own
external domain such as crm.example.com. This is not supported on Cloudron. Twenty
provisions the TLS certificate for a custom domain through the Cloudflare API and refuses
to save the domain unless CLOUDFLARE_API_KEY is set
(twenty#17101). Cloudron issues its
certificates through Let's Encrypt, so this Cloudflare-only path does not apply. Use a
workspace subdomain (above) instead.