feat(orgs): white-label custom domain with org branding #564
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Allow organizations to CNAME a custom domain to the MokoGitea instance, which scopes the entire UI to that org and applies their custom branding - logo, favicon, menu icon, site title, and colors. Turns MokoGitea into a multi-tenant SaaS platform where each org gets a branded, isolated experience on shared infrastructure.
Motivation
Enterprise customers want their own branded git hosting URL without running a separate instance. This is the core differentiator for a SaaS/hosted MokoGitea offering - one instance, many branded tenants.
Feature Scope
Custom Domain Setup (Org Settings > Domains)
git.acme.com)_mokogitea-verify.git.acme.com -> org-id-token) to prove ownershipScoped UI
When a request arrives on a verified custom domain:
git.acme.com/:repo/releases/:tag/:filenameCustom Branding (Org Settings > Branding)
All branding fields apply when the instance is accessed via the org's custom domain:
<link rel="icon"><title>tag, browser tabDatabase
New tables:
org_custom_domain-id,org_id,domain,verified,tls_enabled,dns_txt_token,created_unix,updated_unixorg_branding-id,org_id,logo_url,menu_icon_url,favicon_url,site_title,brand_color,login_bg_url,created_unix,updated_unixHow It Works
git.acme.comgit.acme.comnow show MokoGitea scoped to that org with their brandingImplementation Notes
BeforeRoutingdetects custom domains, injects org contextCommercial Licensing
Related