---
title: "Deploy Zipline"
description: "Self-hosted ShareX-compatible file, screenshot and link sharing"
category: "Storage"
url: https://railway.com/deploy/zipline-2
---

# Deploy Zipline

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

**[Deploy Zipline on Railway](https://railway.com/template/zipline-2)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/zipline-2/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Storage

## Template content

### Zipline https://cdn.jsdelivr.net/gh/selfhst/icons/png/zipline.png

- **Image:** ghcr.io/diced/zipline:4.8.3@sha256:b51581d2834066a67050c08a7e54d5501f84082ac6f7a14a25a6df517a62765a
- **Start command:** `sh -c 'echo IyEvYmluL3NoCiMgUmFpbHdheSBzdGFydCBzY3JpcHQgZm9yIFppcGxpbmUgKGdoY3IuaW8vZGljZWQvemlwbGluZSkuIEZpeGVkIGRlZmF1bHRzLCBmaXJzdC1hZG1pbiBib290c3RyYXAsIHRoZW4gZXhlYy4Kc2V0IC1lCmV4cG9ydCBDT1JFX1BPUlQ9IiR7UE9SVDotMzAwMH0iCmV4cG9ydCBDT1JFX0hPU1ROQU1FPSIke0NPUkVfSE9TVE5BTUU6LTo6fSIKZXhwb3J0IERBVEFTT1VSQ0VfVFlQRT0iJHtEQVRBU09VUkNFX1RZUEU6LWxvY2FsfSIKZXhwb3J0IERBVEFTT1VSQ0VfTE9DQUxfRElSRUNUT1JZPSIke0RBVEFTT1VSQ0VfTE9DQUxfRElSRUNUT1JZOi0vemlwbGluZS91cGxvYWRzfSIKZXhwb3J0IENPUkVfVEVNUF9ESVJFQ1RPUlk9IiR7Q09SRV9URU1QX0RJUkVDVE9SWTotL3ppcGxpbmUvdXBsb2Fkcy8udG1wfSIKZXhwb3J0IENPUkVfVFJVU1RfUFJPWFk9IiR7Q09SRV9UUlVTVF9QUk9YWTotdHJ1ZX0iCmV4cG9ydCBDT1JFX1JFVFVSTl9IVFRQU19VUkxTPSIke0NPUkVfUkVUVVJOX0hUVFBTX1VSTFM6LXRydWV9IgpleHBvcnQgQ09SRV9UUlVTVEVEX1BST1hJRVM9IiR7Q09SRV9UUlVTVEVEX1BST1hJRVM6LTEwMC42NC4wLjAvMTB9IgppZiBbICIkREFUQVNPVVJDRV9UWVBFIiA9IGxvY2FsIF07IHRoZW4gbWtkaXIgLXAgIiREQVRBU09VUkNFX0xPQ0FMX0RJUkVDVE9SWSIgIiRDT1JFX1RFTVBfRElSRUNUT1JZIjsgZmkKY2QgL3ppcGxpbmUKaWYgWyAtbiAiJEFETUlOX1BBU1NXT1JEIiBdOyB0aGVuCiAgZWNobyAiW3JhaWx3YXldIGNoZWNraW5nIGZpcnN0LXRpbWUgc2V0dXAgb24gYSBwcml2YXRlIHBvcnQiCiAgQ09SRV9QT1JUPTM5OTkgQ09SRV9IT1NUTkFNRT0xMjcuMC4wLjEgbm9kZSBidWlsZC9zZXJ2ZXIvaW5kZXguanMgPiAvdG1wL3ppcGxpbmUtYm9vdC5sb2cgMj4mMSAmCiAgQk9PVD0kIQogIEFETUlOX1VTRVJOQU1FPSIke0FETUlOX1VTRVJOQU1FOi1hZG1pbn0iIG5vZGUgLWUgJwpjb25zdCBiYXNlID0gImh0dHA6Ly8xMjcuMC4wLjE6Mzk5OSI7CmNvbnN0IHNsZWVwID0gKG1zKSA9PiBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCBtcykpOwooYXN5bmMgKCkgPT4gewogIGZvciAobGV0IGkgPSAwOyBpIDwgMTgwOyBpKyspIHsKICAgIHRyeSB7IGNvbnN0IHIgPSBhd2FpdCBmZXRjaChiYXNlICsgIi9hcGkvaGVhbHRoY2hlY2siKTsgaWYgKHIub2spIGJyZWFrOyB9IGNhdGNoIHt9CiAgICBhd2FpdCBzbGVlcCgxMDAwKTsKICAgIGlmIChpID09PSAxNzkpIHsgY29uc29sZS5lcnJvcigiW3JhaWx3YXldIFppcGxpbmUgZGlkIG5vdCBzdGFydCBvbiB0aGUgcHJpdmF0ZSBwb3J0Iik7IHByb2Nlc3MuZXhpdCgxKTsgfQogIH0KICBjb25zdCBzID0gYXdhaXQgZmV0Y2goYmFzZSArICIvYXBpL3NldHVwIik7CiAgaWYgKCFzLm9rKSB7IGNvbnNvbGUubG9nKCJbcmFpbHdheV0gc2V0dXAgYWxyZWFkeSBkb25lLCBza2lwcGluZyBhZG1pbiBjcmVhdGlvbiIpOyByZXR1cm47IH0KICBjb25zdCByID0gYXdhaXQgZmV0Y2goYmFzZSArICIvYXBpL3NldHVwIiwgeyBtZXRob2Q6ICJQT1NUIiwgaGVhZGVyczogeyAiY29udGVudC10eXBlIjogImFwcGxpY2F0aW9uL2pzb24iIH0sCiAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHVzZXJuYW1lOiBwcm9jZXNzLmVudi5BRE1JTl9VU0VSTkFNRSwgcGFzc3dvcmQ6IHByb2Nlc3MuZW52LkFETUlOX1BBU1NXT1JEIH0pIH0pOwogIGlmICghci5vaykgeyBjb25zb2xlLmVycm9yKCJbcmFpbHdheV0gYWRtaW4gY3JlYXRpb24gZmFpbGVkOiBIVFRQICIgKyByLnN0YXR1cyArICIgIiArIChhd2FpdCByLnRleHQoKSkpOyBwcm9jZXNzLmV4aXQoMSk7IH0KICBjb25zb2xlLmxvZygiW3JhaWx3YXldIGNyZWF0ZWQgc3VwZXItYWRtaW4gXCIiICsgcHJvY2Vzcy5lbnYuQURNSU5fVVNFUk5BTUUgKyAiXCIgKHBhc3N3b3JkOiBBRE1JTl9QQVNTV09SRCB2YXJpYWJsZSkiKTsKfSkoKS5jYXRjaCgoZSkgPT4geyBjb25zb2xlLmVycm9yKGUpOyBwcm9jZXNzLmV4aXQoMSk7IH0pOwonIHx8IHsgY2F0IC90bXAvemlwbGluZS1ib290LmxvZzsga2lsbCAkQk9PVCAyPi9kZXYvbnVsbDsgZXhpdCAxOyB9CiAga2lsbCAkQk9PVDsgd2FpdCAkQk9PVCAyPi9kZXYvbnVsbCB8fCB0cnVlCmZpCmV4ZWMgbm9kZSAtLWVuYWJsZS1zb3VyY2UtbWFwcyBidWlsZC9zZXJ2ZXIvaW5kZXguanMK | base64 -d > /tmp/start.sh && exec sh /tmp/start.sh'`
- **Health check:** /api/healthcheck
- **Public domain:** Yes

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18.6@sha256:4fc833b43d2aaf6ecc9b18615f5533602b723a32d0e2efe2dae8ca0f7217c863

## Documentation

# 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

* Zipline on GitHub: https://github.com/diced/zipline
* Zipline 4.8.3 release notes: https://github.com/diced/zipline/releases/tag/v4.8.3
* Zipline Docker image: https://github.com/diced/zipline/pkgs/container/zipline
* Zipline Docker setup docs: https://zipline.diced.sh/docs/get-started/docker

### 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.



## Similar templates

- [RustFS | (Just Updated) S3 Object Store, Public URL and Keys Set](https://railway.com/deploy/rustfs-or-just-updated-s3-object-store-p) — S3-compatible object store, keys and public URL preset, volume kept
- [TimescaleDB](https://railway.com/deploy/timescaledb-railway-template) — A PostgreSQL-based time-series database for analytics on Railway.
- [Neo4j 2026.10 Community](https://railway.com/deploy/neo4j-202610-community) — Neo4j graph database with APOC, Browser, Bolt TCP proxy and a volume

Open this page in a browser: https://railway.com/deploy/zipline-2
