Railway deployment & regions
★★★★★ 4.8 CE

Railway Deployment, Regions & Data Residency 2026

Railway runs four Metal regions plus a global CDN, and a service's region can change with no downtime unless a volume is attached. Amsterdam covers EU residency.

Railway Deployment & Regions verdict

Verified today·7 sources checked

Railway runs four Metal compute regions, in California, Virginia, Amsterdam, Singapore.

Plus a global Cloudflare and Fastly CDN edge that routes public traffic to the nearest region. Unusually, a service's region can change at any time with no downtime, unless a volume is attached.

How to pick your regions

Pick the nearest of the four regions, knowing you can move it later for free unless a volume is attached. Use EU West in Amsterdam for EU residency. For global reach, assign replicas across regions and let Railway route to the nearest. Keep those replicas stateless, since there are no sticky sessions and traffic is distributed randomly within a region.

Honest limits
  • There are only four compute regions, with a single EU option in Amsterdam and nothing in South America, the Middle East, Oceania or Africa.
  • Changing a region is downtime-free unless the service has a volume attached. Multi-region uses per-replica placement, routing to the nearest region then randomly within it.
  • Railway lists SOC 2 Type II, SOC 3, HIPAA, GDPR, but no ISO 27001.
Compute regions
4
EU region
Amsterdam
Region change
No downtime*
Multi-region
Per-replica
Routing
Nearest region
View sources

This page covers where Railway deploys and how residency works. Performance and pricing live on their own pages.

Pick your Railway region and deployment

Deploy Railway: railway.json, CLI and API

Commit railway.json to your repo. build.builder is RAILPACK (default) or DOCKERFILE; deploy.multiRegionConfig maps region identifiers to a replica count for native multi-region; restartPolicyType is ON_FAILURE, ALWAYS or NEVER; environment-specific overrides live under environments. Config in code always overrides the dashboard.

railway.jsonjson
{
  "$schema": "https://railway.com/railway.schema.json",
  "build": {
    "builder": "RAILPACK",
    "buildCommand": "yarn run build"
  },
  "deploy": {
    "startCommand": "node index.js",
    "preDeployCommand": ["npm run db:migrate"],
    "multiRegionConfig": {
      "us-east4-eqdc4a": { "numReplicas": 2 },
      "europe-west4-drams3a": { "numReplicas": 2 }
    },
    "healthcheckPath": "/health",
    "healthcheckTimeout": 300,
    "restartPolicyType": "ALWAYS",
    "restartPolicyMaxRetries": 5
  },
  "environments": {
    "staging": { "deploy": { "startCommand": "npm run staging" } }
  }
}

Install and authenticate the CLI, link the project, then deploy. railway up ships the current directory; --detach skips log streaming for CI. A RAILWAY_TOKEN project token lets CI deploy without an interactive login.

Railway CLIbash
# Install and authenticate
npm i -g @railway/cli
railway login

# Link the local directory to a Railway project
railway link

# Deploy the current directory
railway up
railway up --detach          # no log streaming (CI)

# CI: deploy with a project token
RAILWAY_TOKEN=xxx railway up

# Set a variable and view logs
railway variable set API_KEY=value
railway logs -n 100

Railway's public API is GraphQL at backboard.railway.com/graphql/v2, the same API that powers the dashboard. Account and workspace tokens use a Bearer header; project tokens use the Project-Access-Token header. Rate limits scale by plan (Free 100 RPH to Pro 10,000 RPH).

GraphQL API (cURL)bash
# Query the current account (account token)
curl --request POST \
  --url https://backboard.railway.com/graphql/v2 \
  --header 'Authorization: Bearer $RAILWAY_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"query":"query { me { name email } }"}'

# Project-scoped query (project token uses a different header)
curl --request POST \
  --url https://backboard.railway.com/graphql/v2 \
  --header 'Project-Access-Token: $RAILWAY_PROJECT_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"query":"query { projectToken { projectId environmentId } }"}'

Regions and network surfaces

SurfaceLocationTypeIdentifier
US West MetalCalifornia, USACompute regionus-west2
US East MetalVirginia, USACompute regionus-east4-eqdc4a
EU West MetalAmsterdam, NetherlandsCompute region (EU)europe-west4-drams3a
Southeast Asia MetalSingaporeCompute regionasia-southeast1-eqsg3a
CDN edgeGlobalCloudflare + Fastlymanaged
Private networkPer projectService-to-service meshinternal

Railway region selection and routing

AspectBehaviorNotes
Region choicePer service, changeableSet in service settings; default in Account Settings
Region changeAny time, no downtimeException: services with an attached volume incur downtime
Multi-region replicasPer-replica assignmentAssign replicas to different regions in service settings
Traffic routingNearest region, then randomPublic traffic routes to nearest region, distributes within it
Private networkingPer-project meshService-to-service traffic not shown in public metrics
CDN deliveryGlobal edgeCloudflare and Fastly serve cached content close to users

Railway data residency and compliance

ControlOptionNotes
EU data residencyEU West Metal (Amsterdam)europe-west4-drams3a
Core infrastructureGoogle CloudUS and selected Railway region
Compliance auditsSOC 2 Type II, SOC 3HIPAA via paid BAA add-on
Transfer frameworkEU-US DPF + Swiss-US DPFListed on the Trust Center
Data Processing AgreementSelf-serve GDPR DPASign through the self-service link

What to verify before you commit to Railway

  • Railway has only four compute regions, with one EU option (Amsterdam) and none in South America, the Middle East, Oceania or Africa
  • A service's region can be changed any time with no downtime, except when a volume is attached, in which case the move incurs downtime
  • Railway publishes no SLA percentage; contractual SLAs are an Enterprise-only feature
  • Railway lists SOC 2 Type II, SOC 3, HIPAA and GDPR but no ISO 27001 certification

Railway Deployment & Regions FAQ

Which regions does Railway support?

Four Metal compute regions: US West in California as us-west2, US East in Virginia as us-east4-eqdc4a, EU West in Amsterdam as europe-west4-drams3a, Southeast Asia in Singapore as asia-southeast1-eqsg3a. Static and cached content is served globally through Cloudflare and Fastly. Railway notes more regions may be added as it expands.

Can I change a Railway service's region after deploying?

Yes, at any time and with no downtime, with one exception. If the service has a volume attached, changing the region incurs downtime. The region is set per service, with a default in Account Settings, and there are no domain or private-networking changes when you move. That is more flexible than hosts that fix the region at creation.

How does multi-region work on Railway?

Railway supports native multi-region replicas. In service settings, or via multiRegionConfig in railway.json, you assign a replica count per region. Railway routes public traffic to the nearest region, then distributes requests randomly to replicas within it. There are no sticky sessions, so replicas should be stateless.

Does Railway support EU data residency?

Yes, via the EU West Metal region in Amsterdam, europe-west4-drams3a, where you can place services and replicas for EU residency. Railway is SOC 2 Type II, SOC 3, HIPAA compliant, with HIPAA through a paid BAA add-on, offers a self-serve GDPR DPA, and is EU-US and Swiss-US DPF certified. It does not list ISO 27001.

How do I deploy across regions on Railway?

Set deploy.multiRegionConfig in railway.json, mapping region identifier keys to numReplicas, then deploy with the CLI using railway up, or the public GraphQL API at backboard.railway.com/graphql/v2. Config in code overrides dashboard settings, and adding or moving replicas is a staged change that does not trigger a full redeploy.

Sources & verification

Verified by ComparEdgeMethod: Vendor docs, official pages, and selected independent sources
SourceWhat was checkedLast checked
Railway OfficialOfficial product pageJuly 10, 2026
Railway Developer docsConfig As CodeJuly 10, 2026
Railway Developer docsCLIJuly 10, 2026
Railway Developer docsAPI referenceJuly 10, 2026
Railway Developer docsRegions and residencyJuly 10, 2026
Railway Developer docsDeployments ServerlessJuly 10, 2026
Railway Developer docsScaling and concurrencyJuly 10, 2026

Every fact on this Railway page is tied to a named source and a verification date. Freshness-sensitive figures trace to the sources above; verify against the vendor before relying on them.