Deploy Zipline

Self-hosted ShareX-compatible file, screenshot and link sharing

Deploy Zipline

Just deployed

/zipline/uploads

/var/lib/postgresql/data

Deploy and Host Zipline on Railway

Zipline is an open-source, self-hosted file and screenshot sharing server. You upload files, images and videos from the web dashboard, ShareX, Flameshot or any HTTP client and get short public links back. It also shortens URLs, and it has folders, expiring and password-protected files, invites, OAuth login and two-factor login.

About Hosting Zipline

Zipline is a Node.js server that stores its users, file records and settings in PostgreSQL and keeps uploaded files on disk or in S3-compatible storage. This template runs the official Zipline 4.8.3 image, pinned by digest, next to Railway's PostgreSQL 18. Uploads go to a Railway volume mounted at /zipline/uploads, so files survive redeploys. The template generates CORE_SECRET and the admin password for you. On its first start, the start script creates the super-admin from the deploy variables before the public port opens, so nobody else can claim the instance. Public sign-up stays off.

Common Use Cases

  • Private ShareX or Flameshot screenshot host with short links on your own domain
  • Sharing large files, recordings and logs with expiry dates, view limits or passwords
  • Personal URL shortener and pastebin for a person or a small team

Dependencies for Zipline Hosting

  • PostgreSQL (included: Railway's Postgres 18.6)
  • A volume for uploaded files (included)

Deployment Dependencies

Implementation Details

Signing in: open the Railway domain and sign in as admin (or the ADMIN_USERNAME you set) with the password in the Zipline service's ADMIN_PASSWORD variable. The admin is created only once, on the first start, so changing these variables later doesn't change the login. Change the password in Zipline's settings instead.

ShareX and other uploaders: in the dashboard, open the user menu, choose "Settings", then use "Generate Uploaders" to download a ShareX, Flameshot or shell-script config. They all send POST /api/upload with your API token in the Authorization header.

Settings: most options (file routes, size limits, invites, OAuth, webhooks) are in the dashboard under Administrator → Settings ("Server Settings" in the user menu). The template sets these defaults in its start command: HTTPS links, Railway's proxy range 100.64.0.0/10 as trusted (so logs and rate limits see real client IPs), and local storage on the volume. To change one, add the variable to the service, for example CORE_RETURN_HTTPS_URLS=false or DATASOURCE_TYPE=s3 with the DATASOURCE_S3_* variables.

Keep CORE_SECRET unchanged: Zipline uses it to sign sessions and encrypt API tokens. Changing it signs everyone out and breaks existing uploader configs.

Custom domain: add it to the Zipline service in Railway. Upload links use the domain the request came in on.

Why Deploy Zipline on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Zipline on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
RustFS | (Just Updated) S3 Object Store, Public URL and Keys Set
S3-compatible object store, keys and public URL preset, volume kept

SuperSlowSloth
0
View Template
TimescaleDB
A PostgreSQL-based time-series database for analytics on Railway.

Rakit
1
View Template
NEW
Neo4j 2026.10 Community
Neo4j graph database with APOC, Browser, Bolt TCP proxy and a volume

My Projects
0