Whitelabeling Pro
Replace Coolify's brand identity with your own — name, logo, colors, URLs — so your customers see your brand, not Coolify's.
Whitelabeling requires a Pro license. Upgrade to unlock.
Overview
Whitelabeling lets you build a fully branded PaaS (Platform as a Service) on top of Coolify. Every instance of the Coolify name, logo, and URLs throughout the UI is replaced with your brand.
- Build-time branding — name, logo, favicon, and sponsorship removal baked into the Docker image
- Runtime overrides — URLs, colors, and metadata adjustable via Settings without rebuilding
- Complete coverage — all 300+ views are branded in a single build step
Quick Start
- Fork the repository
- Set GitHub Actions repository variables:
PAAS_BRAND_NAME=MyPaaSPAAS_DOCS_URL=https://docs.mypaas.ioPAAS_WHITELABEL=true
- (Optional) Add brand assets to
docker/brands/:logo.svg— main product logofavicon.svg— browser tab iconog-image.png— social media preview
- Push to
main— the CI workflow builds a fully branded image
Build-Time Configuration
These settings are baked into the Docker image and cannot be changed at runtime:
| Variable | Default | Description |
|---|---|---|
PAAS_WHITELABEL | false | Enable whitelabeling |
PAAS_BRAND_NAME | Coolify | Product name (replaced across all views) |
PAAS_BRAND_DESCRIPTION | An open-source... | Product tagline |
PAAS_HIDE_SPONSORSHIP | false | Remove sponsorship/donation UI elements |
PAAS_HIDE_VERSION_LINK | false | Remove GitHub release links |
PAAS_HIDE_ANALYTICS | true | Remove Coolify Cloud analytics code |
Runtime Configuration
These settings can be changed via Settings > Branding without rebuilding:
| Variable | Default | Description |
|---|---|---|
PAAS_DOCS_URL | https://coolify.io/docs | Documentation base URL |
PAAS_WEBSITE_URL | https://coolify.io | Main website URL |
PAAS_TWITTER_HANDLE | @coolifyio | Twitter/X handle |
PAAS_OG_IMAGE | (none) | OpenGraph preview image URL |
PAAS_BRAND_COLOR | (none) | Primary brand color (hex) |
Runtime settings are resolved in order: Database value > Environment variable > Config default. This means you can set a default in your Docker build and override per-instance via the Settings UI.
Settings > Branding
The Branding page (accessible to owners and admins) lets you adjust runtime settings:
- Navigate to Settings > Branding
- Update URLs, social handles, or brand color
- Click Save
- Changes take effect immediately for new page loads
Brand Assets
Place brand assets in docker/brands/ in your repository:
| File | Purpose |
|---|---|
logo.svg | Main product logo (appears in sidebar and login page) |
favicon.svg | Browser tab icon |
og-image.png | Social media preview image (1200x630 recommended) |
These files are copied into the Docker image during build and replace Coolify's default assets.
What Gets Branded
The branding process replaces:
- Product name — every mention of "Coolify" in the UI becomes your brand name
- Page titles — browser tab titles use your brand name
- Meta tags — OpenGraph and Twitter Card tags use your brand details
- Footer text — copyright and product mentions
- Documentation links — all "Docs" links point to your docs URL
- Website links — all product website links point to your URL
- Logo and favicon — replaced with your brand assets
- Sponsorship UI — optionally removed
- Analytics code — optionally removed
The string "Coolify Cloud" is intentionally preserved in functional checks (e.g., config('app.name') == 'Coolify Cloud') to prevent breaking cloud-specific features. Only display text is replaced.
Troubleshooting
Brand name not appearing
- Verify
PAAS_WHITELABEL=trueis set as a build argument - Rebuild the Docker image — build-time settings require a new image
- Check that the CI workflow completed successfully
Runtime settings not taking effect
- Hard-refresh the page (Ctrl+Shift+R) to clear browser cache
- Verify settings were saved in Settings > Branding
- Runtime settings apply to overlay views immediately; some views may require a page reload
Special characters in brand name
Brand names with special characters (e.g., Brand & Co) are handled automatically during the build process. No escaping is needed in the configuration variables.