---
title: "Deploy Workhorse PostgreSQL queue"
description: "PostgreSQL durable tasks with crash recovery and protected dashboard."
category: "Automation"
url: https://railway.com/deploy/workhorse-postgresql-queue
---

# Deploy Workhorse PostgreSQL queue

PostgreSQL durable tasks with crash recovery and protected dashboard.

**[Deploy Workhorse PostgreSQL queue on Railway](https://railway.com/template/workhorse-postgresql-queue)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/workhorse-postgresql-queue/manifest.json

- **Creator:** Anton Orel's Projects
- **Category:** Automation

## Template content

### Worker

- **Source:** tech-progress/workhorse-postgres-queue
- **Start command:** `node app/worker.mjs`
- **Health check:** /readyz

### Dashboard

- **Source:** tech-progress/workhorse-postgres-queue
- **Start command:** `node app/dashboard.mjs`
- **Health check:** /readyz
- **Public domain:** Yes

### Postgres

- **Image:** postgres:17.11-bookworm@sha256:639ab7ceb90e13123085b741fb31ef493fba25463002f6da665352e7b534b652

## Documentation

# Deploy and Host Workhorse PostgreSQL queue on Railway

PostgreSQL durable tasks with crash recovery and protected dashboard.

## About Hosting Workhorse PostgreSQL queue

Three independently deployed services: PostgreSQL 17.11, a Node.js 24 worker with Workhorse SDK 0.6.1, and the matching read-only dashboard. No Redis, broker, shared service disk, Docker socket, or public database. Workhorse is public beta; this is an evaluation/small-team queue recipe, not an exactly-once or HA guarantee.

The worker's pre-deploy command installs Workhorse's ordered schema plus the recipe effect table. Runtime worker/dashboard processes only assert schema compatibility. Dashboard startup waits for the schema gate. Run the pre-deploy installer once per release, not from each worker replica; migrations require the database to already be available.

The task `recipe.effect` validates bounded input, deliberately fails once, saves a named preparation checkpoint, performs a lease-releasing durable wait, and writes one uniquely keyed database effect. A checkpoint callback can execute again after a crash between its effect and checkpoint write: SQL's unique key makes this fixture safe. External providers still need stable idempotency keys.

## Why Deploy Workhorse PostgreSQL queue on Railway

Independent service lifecycles, explicit private networking, generated credentials and exclusive persistent volumes provide a reproducible low-volume evaluation. Authentication protects workload endpoints; this is not an HA production claim.

## Common Use Cases

- Evaluate the upstream product with a real authenticated workflow.
- Exercise persistence, retries/replay and operational recovery before adoption.
- Extend the included bounded fixture without exposing internal backends.

## Dependencies for Workhorse PostgreSQL queue

[Workhorse](https://workhorse.run/) · [PostgreSQL](https://www.postgresql.org/). Exact runtime/image pins live in Dockerfile, compose.yaml and the dependency locks.

### Deployment Dependencies

The template connects the published `tech-progress/workhorse-postgres-queue` source on `release-v1`, deploys private PostgreSQL 17.11 with a 5,000 MB persistent volume, and creates separate Worker and Dashboard services. PostgreSQL and dashboard passwords are generated by Railway; the Worker's pre-deploy command installs the schema. No provider API key, tenant token, Redis or public database endpoint is required.

Open the generated HTTPS dashboard at `/workhorse/` using the generated operator credentials. Submit tasks through a private application or Railway SSH; there is no public enqueue API. See the [release README](https://github.com/tech-progress/workhorse-postgres-queue/blob/v1.0.2/README.md), [upgrade and backup guide](https://github.com/tech-progress/workhorse-postgres-queue/blob/v1.0.2/UPGRADE.md), and [support boundaries](https://github.com/tech-progress/workhorse-postgres-queue/blob/v1.0.2/SUPPORT.md).


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

Open this page in a browser: https://railway.com/deploy/workhorse-postgresql-queue
