Docs

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 Coolify

1. 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:

Bash
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:

SettingValue
Build PackDocker Compose
Base Directory/
Docker Compose Location/docker-compose.platform.yml
Raw Compose DeploymentEnabled
Automatic deploymentsDisabled; upgrade deliberately

Import the generated .env into the application's environment editor. Confirm:

  • GROVS_PROXY_NETWORK=coolify matches the actual Traefik Docker network.
  • GROVS_HTTP_ENTRYPOINT=http and GROVS_HTTPS_ENTRYPOINT=https match your proxy.
  • GROVS_CERT_RESOLVER=letsencrypt names the resolver you configured for DNS-01.
  • GROVS_VERSION selects the same numbered release or latest tag 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.

Edit this page on GitHubLast updated 2026-09-15