Self-hosted file uploader that returns shareable links, with user accounts, albums, snippets, a URL shortener and S3 storage support.
- Stars
- 3,467
- Forks
- 259
- Open issues
- 5
- Last commit
- 2 days ago
What is it?
Zipline is a self-hosted server for uploading and sharing files, screenshots and images, designed to work as a ShareX upload target. Users upload files through the web interface or the API, and Zipline returns shareable links.
It stores files on the local filesystem or in S3-compatible storage and runs on PostgreSQL, typically deployed with Docker Compose. Users can organize uploads into folders and tags, shorten URLs, set password protection, and get embeds for chat and social previews.
For administration, Zipline supports OAuth2, 2FA, passkeys, invites, and per-user quotas. It also offers custom themes and a PWA interface.
Key features
- 01Upload files and screenshots via the web UI, API, or ShareX
- 02Store files on local disk or S3-compatible storage
- 03Organize uploads with folders and tags
- 04Shorten URLs and set password protection on shares
- 05Sign-in with OAuth2, 2FA, and passkeys
- 06Manage users with invites and storage quotas
Use cases
- Hosting your own ShareX screenshot and file upload endpoint
- Sharing files with others through self-controlled links instead of a third-party host
- Running a small team or family image host with invites and quotas
Quick start
- 1
Create the .env file with generated PostgreSQL password
echo "POSTGRESQL_PASSWORD=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" > .env - 2
Add the CORE_SECRET to the .env file
echo "CORE_SECRET=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" >> .env - 3
Create docker-compose.yml from the README example, then start Zipline
docker compose up -d
Things to know
- Requires a CPU with AVX support; no binaries or images are provided for non-AVX CPUs.
- Upgrading from v3 requires exporting and importing data, since there is no direct upgrade path.
In collections
Topics
FAQ
- What is zipline?
- A self-hosted file upload server built for ShareX, with sharing, galleries and short links. Zipline is a self-hosted server for uploading and sharing files, screenshots and images, designed to work as a ShareX upload target. Users upload files through the web interface or the API, and Zipline returns shareable links.
- Is zipline free to use? What license does it have?
- zipline is open source under the MIT license. Check the license terms before using it in commercial products.
- Is zipline still maintained?
- Actively maintained. The last commit to zipline was on Oct 23, 2026.
- What can I use zipline for?
- Hosting your own ShareX screenshot and file upload endpoint Sharing files with others through self-controlled links instead of a third-party host Running a small team or family image host with invites and quotas
- How do I install zipline?
- Create the .env file with generated PostgreSQL password: echo "POSTGRESQL_PASSWORD=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" > .env Add the CORE_SECRET to the .env file: echo "CORE_SECRET=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" >> .env Create docker-compose.yml from the README example, then start Zipline: docker compose up -d
- Where can I get zipline?
- The source code and installation instructions are on GitHub: https://github.com/diced/zipline
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Kutt is a self-hostable URL shortener with custom domains, link statistics, an admin panel and a RESTful API.
A self-hosted URL shortener written in PHP that serves short links under your own domain, with a CLI and REST API.
A self-hosted platform for creating, organizing and sharing human-readable short links like s/shortcut.
A portable Python file server with resumable uploads and downloads, reachable from any web browser and over WebDAV, SFTP, FTP, TFTP and SMB.
A self-hosted, single-binary pastebin and file-sharing web app written in Rust, with optional encryption and URL shortening.