Deploy Grovs Community
Self-host deep links, mobile attribution, referrals and analytics.
dashboard
Just deployed
redis
Just deployed
/data
worker-1
Just deployed
Just deployed
postgres
Just deployed
/var/lib/postgresql/data
clickhouse
Just deployed
/var/lib/clickhouse
worker-2
Just deployed
Deploy and Host Grovs Community on Railway
Self-host Grovs for deep links, mobile attribution, referrals and analytics using the official Community images. Your deployment includes the dashboard, API, two workers, PostgreSQL, Redis and ClickHouse with persistent database volumes.
About Hosting Grovs Community
The services run from versioned container images. PostgreSQL stores application data, ClickHouse stores analytics and Redis supports background jobs. The API initializes schemas before starting, and workers wait for its health endpoint.
Why Deploy Grovs Community on Railway
Railway brings the application and database services into one project with private networking, persistent volumes, deployment logs and HTTPS endpoints. This template wires the services together and generates their shared secrets.
Common Use Cases
- Deep links that open the right screen in an installed app.
- Attribution for mobile campaigns and referrals.
- Analytics for links and app events under your own account.
Dependencies for Grovs Community
- Use a Railway plan that supports seven services, sufficient RAM/storage and the custom domains below. Compute, volumes and network usage are billed by Railway.
- Bring a private S3-compatible bucket and bucket-scoped credentials for uploads.
- Choose an app base domain and production/test link base domains you control.
For example, set SERVER_HOST=grovs.example.com,
DOMAIN_LIVE=links.example.com and DOMAIN_TEST=test.links.example.com.
Enter these without a protocol, wildcard or path. Set your admin email and the
four required S3 variables on web. Railway generates separate secrets for each
deployment and shares them with the workers and dashboard through references.
Finish setup
- Keep all services in one Railway region. Size database volumes for your data and retention, especially ClickHouse. Keep both workers always running.
- The API pre-deploy command initializes the database schemas and admin login.
If databases are still starting, wait for them to be ready and redeploy
web. - In Railway Networking, add these custom domains, all targeting port 3000:
dashboard:dashboard.grovs.example.comweb:api.grovs.example.com,sdk.grovs.example.com,mcp.grovs.example.com,go.grovs.example.com,preview.grovs.example.com,*.links.example.comand*.test.links.example.com
- Add Railway's DNS and certificate-verification records at your DNS provider. The generated Railway domains are useful for health checks; use your custom domains for Grovs login and links.
- Sign in at
https://dashboard.grovs.example.comusingBOOTSTRAP_ADMIN_EMAILand the generatedBOOTSTRAP_ADMIN_PASSWORDinweb's variables. - Check the API
/upendpoint, create a project, open production and test links, verify analytics and upload an image.
Updates
Back up PostgreSQL, ClickHouse, uploads and configuration before upgrading. Stop
both workers, update the API image to the desired published version and let its
migrations finish. Update the dashboard and both workers to the same version,
then restart them. Keep worker-1 at one instance, including during rollouts,
because it owns the scheduler.
This template has configuration checks but has not yet been validated with a live Railway deployment.
Template Content
dashboard
ghcr.io/grovs-io/dashboard:2.3.1redis
redis:7-alpineworker-1
ghcr.io/grovs-io/backend:2.3.1DOMAIN_LIVE
Production links base domain, for example links.example.com.
DOMAIN_TEST
Test links base domain, for example test.links.example.com.
SERVER_HOST
App base domain, for example grovs.example.com; no https:// or path.
AWS_S3_BUCKET
Private bucket name shared by API and workers.
AWS_S3_KEY_ID
Access key for your private S3-compatible bucket.
AWS_S3_REGION
Bucket region, for example eu-north-1.
AWS_S3_ACCESS_KEY
Secret access key for your private bucket.
BOOTSTRAP_ADMIN_EMAIL
Email address for the first administrator.
postgres
postgres:16-alpineclickhouse
clickhouse/clickhouse-server:25.3worker-2
ghcr.io/grovs-io/backend:2.3.1