One-click deploy¶
Each of these runs the all-in-one image (the collector serving the dashboard) next to TimescaleDB, with generated keys and an admin password. Sign in as admin with that password, then instrument an app with the generated ingest key.
Render¶
The Blueprint (render.yaml) creates two services: reqly (web) and reqly-db (TimescaleDB as a private service with a 10 GB disk). Render generates REQLY_INGEST_KEY, REQLY_READ_KEY, REQLY_ADMIN_PASSWORD and the database password; find them in each service's Environment tab. Both need paid instances, since a private service with a disk isn't on Render's free plan. Fill in GROQ_API_KEY and alert webhooks when asked, or later.
Coolify¶
New resource → Docker Compose, and use deploy/coolify/docker-compose.yml (paste it, or point Coolify at the repository with that path). Coolify gives the app a domain and generates SERVICE_PASSWORD_POSTGRES, SERVICE_PASSWORD_64_INGEST (the ingest key), SERVICE_PASSWORD_64_READ and SERVICE_PASSWORD_ADMIN (the admin password), shown under the resource's environment variables.
Railway¶
- New project → Deploy a template → TimescaleDB (or any TimescaleDB with the Toolkit, e.g. the
timescale/timescaledb-ha:pg16image with a volume on/home/postgres/pgdata). - New → GitHub repo →
tanisheesh/reqly:railway.jsonbuilds the all-in-one image and health-checks/v1/ready. Or New → Docker image →ghcr.io/tanisheesh/reqly. - On that service set
DATABASE_URLto the database's (Railway's variable reference, e.g.${{TimescaleDB.DATABASE_URL}}),REQLY_INGEST_KEY,REQLY_READ_KEYandREQLY_ADMIN_PASSWORD(${{secret(48)}}generates one), and generate a domain.
To share it as a button, publish the project as a template from Railway's dashboard; Railway gives you its deploy URL.
Without a template¶
The collector also takes the database as PGHOST, PGPORT, PGUSER, PGPASSWORD and PGDATABASE (and PGSSLMODE) when DATABASE_URL isn't set, which is what most platforms hand out. Everything else is in Configuration.