Skip to main content
Railway is the shortest Openinary deploy: one click, one required variable, and a managed S3 bucket already connected.

Deploy on Railway

One-click deploy, opens the pre-configured Openinary template
Light Railway Template

Deployment steps

1

Open the template

Click the Deploy on Railway card above. Sign in or create a Railway account if prompted.
2

Set BETTER_AUTH_SECRET

The template requires one variable. Generate a secure value:
Paste the output into the BETTER_AUTH_SECRET field in the template form. Keep it private, it signs all authentication sessions and tokens.
3

Deploy

Click Deploy Now. Railway provisions the app and the S3 bucket, then starts the container.Wait for both the Openinary App and Assets Storage services to show Deployed.
4

Set BETTER_AUTH_URL

Railway generates a public URL for your app, such as openinary-production.up.railway.app.Go to Openinary App → Settings → Variables and set:
Then redeploy the service. Auth callbacks do not work without it. If you add a custom domain later, update this to match.
5

Complete initial setup

Visit your Railway URL. You land on the setup page, create your administrator account there.
Complete setup immediately. The /setup route is publicly accessible until an admin account is created.

Optional configuration

The Railway bucket is pre-connected, so no storage variables are needed. Optional variables go under Openinary App → Settings → Variables:
See Server configuration and Storage configuration for the full variable reference.

Troubleshooting

Check the build logs under Openinary App → Deployments. Confirm BETTER_AUTH_SECRET is at least 32 characters, and that BETTER_AUTH_URL matches your Railway public URL exactly, with no trailing slash. If problems persist, open an issue on GitHub with your deployment logs.

Next steps

Image Transformations

Resize, crop, and convert images with URL parameters.

Video Transformations

Resize, trim, and extract thumbnails from videos.