Overview
Run Grovs Community locally, on your server, with Coolify, Dokploy, Easypanel or CapRover, or on a cloud platform.
Grovs is fully self-hostable. The grovs-io/self-host repository bundles the whole platform into a single Docker Compose stack — backend, dashboard, PostgreSQL, Redis, ClickHouse, background workers, and a reverse proxy with automatic TLS — that you bring up with one command on your own server.
The stack runs published images, ghcr.io/grovs-io/backend and ghcr.io/grovs-io/dashboard, released together under one version (GROVS_VERSION). The installation commands select the latest completed release when you run them. Both images also publish a :latest tag. See Images and releases for version selection and updates. Their source is open at grovs-io/backend and grovs-io/dashboard.
Run it yourself
Choose where to run the Community Edition. Setup creates your secrets and first administrator login; no application build or SMTP setup is required.
Import the preview service template.
Easypanel setup guide Get Easypanel template (opens in a new tab)Import the preview One Click App template.
CapRover setup guide Get CapRover template (opens in a new tab)Create a VM with guided Cloud Shell setup.
Deploy on Google Cloud Open in Cloud Shell (opens in a new tab)Create an Ubuntu VM from an ARM template.
Azure setup guide Deploy to Azure (opens in a new tab)Run the full stack on a Droplet.
DigitalOcean setup guide Open DigitalOcean Console (opens in a new tab)Provision Grovs on an Ubuntu Cloud server.
Hetzner setup guide Open Hetzner Console (opens in a new tab)Run Grovs on a Cloud Compute instance.
Vultr setup guide Open Vultr Console (opens in a new tab)Deploy the Compose stack on a Linode.
Akamai / Linode setup guide Open Akamai / Linode Console (opens in a new tab)Install Grovs on an Ubuntu Instance.
Scaleway setup guide Open Scaleway Console (opens in a new tab)Create the full stack from the Railway template.
Railway setup guide Deploy on Railway (opens in a new tab)Create the services from a Render Blueprint.
Deploy on Render Deploy on Render (opens in a new tab)Cloud deployments use paid resources in your own account. Railway, Render, Easypanel and CapRover use object storage for uploads shared by the API and workers. Public installations also need your domain and DNS configuration for project links.
What runs
| Service | Description |
|---|---|
proxy | Caddy reverse proxy + automatic TLS (Let's Encrypt). Only with the standalone profile; drop it behind your own proxy. |
postgres | PostgreSQL 16 — the system of record: projects, links, users, purchases |
redis | Redis 7 — queues, caches, dedup, fingerprints (AOF persistence, no eviction) |
clickhouse | ClickHouse 25.3 — the event and analytics store |
migrate | One-shot initialization: migrates PostgreSQL and ClickHouse, seeds the OAuth app and your admin |
web | Rails API (Puma) — API, link redirects, SDK endpoints |
worker-1 | Sidekiq: scheduler, events, batches — a singleton, never scaled |
worker-2 | Sidekiq: maintenance and device updates |
dashboard | Next.js web dashboard, configured at start from .env |
Uploaded images and exports live in the storage volume and are served through the API host. Set ACTIVE_STORAGE_SERVICE=amazon and the AWS_S3_* variables to use S3 or an S3-compatible store instead.
How requests are routed
The backend routes by hostname. The fixed hosts live under your app domain (SERVER_HOST); links live under your links domain (DOMAIN_LIVE) and test links domain (DOMAIN_TEST), which default to the app domain and test.<links domain>.
| Host | Purpose |
|---|---|
dashboard. | Dashboard UI |
api. | Dashboard API, uploaded assets, health check |
sdk. | Mobile, web, and server SDK endpoints — the SDK baseURL |
preview. | Link preview pages |
mcp. | MCP (AI tool) OAuth and API |
go. | Reserved for the quick-link helper, which is not enabled on self-hosted deployments |
*.<links domain> | Per-project production link subdomains, e.g. a1b2c3d4.acme.link |
*.<test links domain> | Per-project test link subdomains, e.g. a1b2c3d4.test.acme.link |
Capacity
Run Grovs Community for up to 100,000 users on a server with 4 vCPU / 8 GB RAM / 80 GB SSD.
Need more flexibility and performance? Purchase a self-hosted Enterprise plan tailored to your deployment.
Requirements
- A Linux server with Docker and Docker Compose v2, ports
80/443open. - One domain you control, with the records in Deployment → DNS pointing at the host. A separate branded domain for links is optional.
- About 4 vCPU / 8 GB RAM / 80 GB SSD as a comfortable floor.
Next step
Deployment — DNS, the one-command install, and your first login →