Railway
Deploy bisibility on Railway. The bundled template runs web, worker, PostgreSQL, Valkey, Temporal Server, and Temporal persistence in one project. It requires no Temporal Cloud account. The listing pins a tested bisibility release and uses private networking.Before you deploy
The template asks for two values:
Railway generates database passwords, the auth secret, the credential encryption
key, the internal probe token, and the deployment suffix. Reference variables
share values across required services. Do not replace them with separate values.
Web and worker must share
BISIBILITY_SECRETS_KEY, the Temporal namespace, and
both task queues.
Connect a SERP provider from Integrations after startup. The template includes
no provider subscription, usage, or credits.
What the template creates
Eight resources are expected. Six persistent roles stayRunning.
The two one-shot jobs finish as Completed.
A completed bootstrap job is not a crashed service.
Deleting or redeploying a completed job does not reduce the cost of the six
persistent services. See Railway pricing.
Only
web should receive a public domain. Do not add public domains or TCP
proxies to either PostgreSQL service, Redis, Temporal Server, the worker, or the
bootstrap jobs. They communicate through Railway private networking.
First deployment
- Open the public Railway template and review all eight resources. Check current Railway pricing and set the workspace usage controls appropriate for this six-service deployment.
- Enter
EMAIL_FROMandRESEND_API_KEY, then deploy the template. - Wait for the six persistent services to report healthy and both one-shot
jobs to report
Completed. - Open the generated domain on
web. An empty installation redirects to/setup, where you verify the first administrator by email. - Connect a SERP provider from Integrations and set its monthly budget before running a real rank check.
- Check
/api/v1/readinessfor traffic admission and/api/v1/healthfor the full database, Temporal, worker, migration, and release report. - Create a scheduled check and confirm that the worker heartbeat becomes fresh.
app-postgres and temporal-postgres independently. Application data
and Temporal workflow history have different restore paths, and a backup of one
does not protect the other. Work through the
production checklist before inviting users.
Upgrade a Railway template deployment
Railway templates do not update existing projects. Subscribe to Bisibility releases, read the release notes, and update pinned images manually. Keep Temporal Server at its existing version unless the notes specify a separately tested upgrade.- Back up the
app-postgresandtemporal-postgresRailway databases independently. - In the
webservice settings, change the image tocorgicorner/bisibility:X.Y.Z. Deploy it and wait for its pre-deploy migrations and/api/v1/readinesscheck to succeed. - Set
workertocorgicorner/bisibility-worker:X.Y.Z, deploy it, then require/api/v1/healthto report a fresh worker heartbeat and matching exact app and worker source revisions. - Leave
temporal,temporal-schema, andtemporal-namespacepinned at 1.31.2 unless the release notes explicitly say otherwise.