---
title: "Deploy Windmill | (Just Updated) Scripts, Workflows & Internal Apps, Server + Worker + Postgres"
description: "Scripts, workflows & internal apps. Server, worker, Postgres, persistent"
category: "Automation"
url: https://railway.com/deploy/windmill-or-just-updated-scripts-workflo
---

# Deploy Windmill | (Just Updated) Scripts, Workflows & Internal Apps, Server + Worker + Postgres

Scripts, workflows & internal apps. Server, worker, Postgres, persistent

**[Deploy Windmill | (Just Updated) Scripts, Workflows & Internal Apps, Server + Worker + Postgres on Railway](https://railway.com/template/windmill-or-just-updated-scripts-workflo)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/windmill-or-just-updated-scripts-workflo/manifest.json

- **Creator:** SuperSlowSloth
- **Category:** Automation

## Template content

### postgres

- **Image:** postgres:18
- **Start command:** `/bin/sh -c 'export POSTGRES_DB=windmill; exec docker-entrypoint.sh postgres'`

### windmill

- **Image:** ghcr.io/windmill-labs/windmill:1.830.0@sha256:46016168ebe27f0916c4de5c5b174667ee01675169da999f10bc62cfd18fa1cd
- **Start command:** `/bin/sh -c 'export MODE=server DATABASE_URL="postgres://postgres:${POSTGRES_PASSWORD}@${PG_HOST}:5432/windmill?sslmode=disable"; exec windmill'`
- **Health check:** /api/version
- **Public domain:** Yes

### windmill-worker

- **Image:** ghcr.io/windmill-labs/windmill:1.830.0@sha256:46016168ebe27f0916c4de5c5b174667ee01675169da999f10bc62cfd18fa1cd
- **Start command:** `/bin/sh -c 'export MODE=worker WORKER_GROUP=default DATABASE_URL="postgres://postgres:${POSTGRES_PASSWORD}@${PG_HOST}:5432/windmill?sslmode=disable"; exec windmill'`

## Documentation

# Deploy and Host Windmill on Railway

Windmill is an open-source developer platform for turning scripts (Python, TypeScript, Go, Bash, SQL and more) into webhooks, workflows, cron jobs and internal apps with auto-generated UIs. This template runs the Windmill server, a default worker and a PostgreSQL database with a persistent volume, so your scripts, flows, schedules and run history survive redeploys.

## About Hosting Windmill

This template deploys three services from the official `ghcr.io/windmill-labs/windmill` image (pinned by digest) plus `postgres:18`. The server (`MODE=server`) serves the UI and API on the public domain. A separate worker service (`MODE=worker`, group `default`) executes jobs, so you can scale workers independently. Both connect to PostgreSQL over Railway's private network; the database password is generated at deploy as a random secret and shared with the app services by reference, so there is nothing to type. PostgreSQL stores its data on a volume mounted at `/var/lib/postgresql`. After deploy, open the public domain and sign in with the Windmill default account (`admin@windmill.dev` / `changeme`); Windmill asks you to set a new password and create your first workspace right away, so do this immediately after the first deploy.

## Why Deploy Windmill on Railway

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Windmill on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

- **Server, worker and database wired together** — no connection strings to assemble.
- **State survives redeploys** — Postgres sits on a volume, not on ephemeral disk.
- **Scale workers on their own** — add replicas of the worker service when job volume grows.
- **No per-execution SaaS fees** — run as many jobs as your instance handles.

## Common Use Cases

- **Internal tools** — build admin panels and approval apps on top of scripts.
- **Workflow automation** — chain scripts into flows with retries, branching and schedules.
- **Webhooks and cron** — expose any script as an endpoint or run it on a schedule.

## Dependencies for Windmill Hosting

### Deployment Dependencies

- PostgreSQL 18 with a volume mounted at `/var/lib/postgresql` (included in this template).
- Upstream docs: https://www.windmill.dev/docs/advanced/self_host


## 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/windmill-or-just-updated-scripts-workflo
