Using Environments
Railway supports complex development workflows through environments, giving you isolated instances of all services in a project.
Create an Environment
-
Select
+ New Environment
from the environment drop down in the top navigation. You can also go to Settings > Environments. -
Choose which type of environment to create -
-
Duplicate Environment creates a copy of the selected environment, including services, variables, and configuration.
When the duplicate environment is created, all services and their configuration will be staged for deployment. You must review and approve the staged changes before the services deploy.
-
Empty Environment creates an empty environment with no services.
-
Sync Environments
You can easily sync environments to import one or more services from one environment into another environment.
- Ensure your current environment is the one that should receive the synced service(s)
- Click
Sync
at the top of the canvas - Select the environment from which to sync changes
- Upon sync, each service card that has received a change will be tagged "New", "Edited", "Removed"
- Review the staged changes by clicking Details on the staged changes banner
- Click "Deploy" once you are ready to apply the changes and re-deploy
Enable PR Environments
Railway can spin up a temporary environment whenever you open a Pull Request. To enable PR environments, go to your Project Settings -> Environments tab.
When enabled, a temporary environment is spun up to support the Pull Request deploy. These environments are deleted as soon as these PRs are merged or closed.
How come my GitHub PR won't deploy?
Railway will not deploy a PR branch from a user who is not in your team or invited to your project without their associated GitHub account.
Bot PR Environments
You can enable automatic PR environment creation for PRs opened by GitHub bots (Dependabot, Renovatebot) using the Enable Bot PR Environments
toggle on the Environments tab in the Project Settings page.
Forked Environments
As of January 2024, forked environments have been deprecated in favor of Isolated Environments with the ability to Sync.
Any environments forked prior to this change will remain, however, you must adopt the Sync Environments flow, in order to merge changes into your base environment.
Edit this file on GitHub