Skip to main content
Filament publishes a Railway template that deploys the server, control plane, worker, PostgreSQL, and NATS as one connected project: Deploy on Railway

What gets deployed

The template connects the services over Railway’s private network and supplies the shared PostgreSQL DSN, NATS URL, worker URL, and encryption key. Database migrations run before the server starts.

Deploy the template

1

Open the template

Click Deploy on Railway above, sign in, and choose the workspace where you want to create the project.
2

Review the project

Confirm that the server, control plane, worker, PostgreSQL, and NATS services are included. Review the resource plans and generated variables before deploying.
3

Wait for the services

Railway provisions the backing services, applies database migrations, and starts the server, control plane, and worker. Wait for every service to become healthy.
4

Open Filament

Open the public domain for the Filament server. If the template has not created one, select the server service and generate a domain under Settings → Networking.

Connectors and run execution

The worker is the only service that links connector drivers. It runs with -serve -execute. With -serve it answers connector calls from the server and control plane, which reach it through WORKER_URL on the private network. With -execute it consumes requested runs from NATS and executes them itself, since Railway has no Kubernetes Jobs API. The control plane sets DISPATCH_MODE=worker and dispatches nothing. Every pipeline run shares the worker service’s CPU and memory.
Keep the control plane at one replica. Multiple replicas may race while coordinating schedules and pipeline runs.
Increase the worker service’s CPU and memory for concurrent or resource-intensive pipelines. Use the Kubernetes deployment when runs need isolated containers or independent resource configuration.

Before production

  • Configure authentication before storing sensitive connector credentials on a public deployment. Authentication is disabled when AUTH_PROVIDER is unset.
  • Keep ENCRYPTION_KEY backed up and unchanged. Replacing it makes existing encrypted credentials unreadable.
  • Configure retention and backups for PostgreSQL and JetStream to match your recovery requirements.
  • The template tracks the latest image tag for the server, control plane, and worker. Pin all three to the same Filament release before relying on the deployment, and upgrade them together.
See Configuration for authentication, secrets, logging, and other runtime settings.