This guide covers deploying Permify on Railway, either via a one-click template or manual setup.
One-Click Deploy
The fastest way to get started:
This template automatically provisions:
- A Permify instance with API authentication enabled
- A PostgreSQL database for persistent storage
- Private networking between services
What Gets Deployed
Permify Service
The template deploys the latest Permify container image with the following default configuration:
PostgreSQL Database
A dedicated PostgreSQL instance is provisioned and connected to Permify over Railway’s private network. The database connection is configured automatically—no manual setup required.
Connecting Your Application
After deployment, add these environment variables to your application service to connect to Permify:
Available Endpoints
Permify exposes two ports:
Both ports are accessible over Railway’s private network by default. To expose them publicly, configure a public domain in your Railway service settings.
Verifying the Deployment
By default, Permify runs on Railway’s private network with no public access. To verify the deployment:
Option 1: Check Railway logs
View the deployment logs in Railway’s dashboard. A successful start shows:
Option 2: Expose a public domain
To test externally, add a public domain in Railway’s service settings (Settings → Networking → Public Networking). Then:
You should see:
Option 3: From another Railway service
Your application can reach Permify on the private network at:
Manual Deployment
If you prefer to deploy manually instead of using the template:
1. Create a New Project
Create a new project in Railway and add a PostgreSQL database.
2. Add the Permify Service
Add a new service and deploy from the Docker image:
Set the following environment variables on your Permify service:
4. Set the Start Command
Configure the start command:
5. Expose Ports
In the service settings, expose ports 3476 (REST) and/or 3478 (gRPC) as needed.