Coolify
Run and operate Grovs Community: coolify.
Use an existing Coolify server with a Traefik proxy. This guide uses the repository's Compose template in Raw Compose Deployment mode, because Grovs needs explicit routing for its dynamic project-link hostnames. It does not apply to a Coolify server using the Caddy proxy.
Set up Coolify1. Prepare your proxy and DNS
Point the Grovs DNS records at the deployment server. Configure a Traefik certificate resolver with DNS-01 validation for your app, production-links and test-links domains. Keep the DNS-provider token in the proxy's configuration, not in the Grovs environment.
Follow Coolify's DNS challenge and wildcard certificate instructions. A wildcard DNS record alone does not provide a wildcard certificate.
2. Generate your environment
On your workstation:
git clone https://github.com/grovs-io/self-host.git
cd self-host
GROVS_RELEASE_URL="$(curl -fsSL -o /dev/null -w '%{url_effective}' https://github.com/grovs-io/self-host/releases/latest)"
GROVS_VERSION="${GROVS_RELEASE_URL##*/}" \
GROVS_DOMAIN=example.com [email protected] \
./scripts/prepare-platform.sh coolify "$HOME/grovs-coolify"This writes $HOME/grovs-coolify/.env, generates credentials and prints your
admin login using the latest completed release. It keeps existing files. Set
GROVS_VERSION to select another published release, or GROVS_LINKS_DOMAIN for
a separate short-link domain. To follow moving image tags, change the generated
file to GROVS_VERSION=latest before importing it; see Images and releases.
3. Create the Compose application
In Coolify, select New → Public Repository, using
https://github.com/grovs-io/self-host:
| Setting | Value |
|---|---|
| Build Pack | Docker Compose |
| Base Directory | / |
| Docker Compose Location | /docker-compose.platform.yml |
| Raw Compose Deployment | Enabled |
| Automatic deployments | Disabled; upgrade deliberately |
Import the generated .env into the application's environment editor. Confirm:
GROVS_PROXY_NETWORK=coolifymatches the actual Traefik Docker network.GROVS_HTTP_ENTRYPOINT=httpandGROVS_HTTPS_ENTRYPOINT=httpsmatch your proxy.GROVS_CERT_RESOLVER=letsencryptnames the resolver you configured for DNS-01.GROVS_VERSIONselects the same numbered release orlatesttag for both public GHCR images.
Keep the generated GROVS_ROUTER_PREFIX unique per deployment. Leave the UI's
per-service Domains fields empty: this template supplies its own Traefik labels.
It does not start the standalone Caddy proxy or publish database ports.
4. Deploy and check
Select Deploy and watch the service logs. The migration container exits with
code 0, then the API, workers and dashboard start. If your Coolify version counts
one-shot services in aggregate health, exclude migrate from that health check.
Open https://dashboard.example.com. Then check https://api.example.com/up,
create a project and open its link. A working dashboard alone does not verify
the wildcard link route or certificate.
New custom customer-owned domains need corresponding proxy routes and certificates; this template automatically covers only the configured Grovs domains. Keep the platform environment and persistent volumes backed up. See troubleshooting and the upstream Compose guide.