Zipline: A Feature-Rich ShareX and File Upload Server

Zipline: A Feature-Rich ShareX and File Upload Server

Summary

Zipline is a powerful and user-friendly ShareX and file upload server designed for easy setup and extensive functionality. It offers a wide array of features, including file management, URL shortening, and robust security options, making it an ideal solution for personal or team file sharing needs. Its Docker-based installation ensures a quick and efficient deployment process.

Repository Info

Updated on December 23, 2025
View on GitHub

Tags

Click on any tag to explore related repositories

Introduction

Zipline is presented as the next-generation ShareX and file upload server, built with TypeScript. It provides a comprehensive solution for managing and sharing files, screenshots, and more, with a strong emphasis on ease of use and a rich feature set. From simple file uploads to advanced features like URL shortening, custom themes, and robust security measures, Zipline aims to be a complete self-hosted file management platform. It supports various integrations, including Discord and HTTP webhooks, and offers flexible storage options, including local filesystem and S3 compatibility.

Installation

The recommended method for deploying Zipline is via Docker, which simplifies the setup process significantly. Below is a docker-compose.yml example to get started, including a PostgreSQL database service.

services:
  postgresql:
    image: postgres:16
    restart: unless-stopped
    env_file:
      - .env
    environment:
      POSTGRES_USER: ${POSTGRESQL_USER:-zipline}
      POSTGRES_PASSWORD: ${POSTGRESQL_PASSWORD:?POSTGRESSQL_PASSWORD is required}
      POSTGRES_DB: ${POSTGRESQL_DB:-zipline}
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ['CMD', 'pg_isready', '-U', 'zipline']
      interval: 10s
      timeout: 5s
      retries: 5

  zipline:
    image: ghcr.io/diced/zipline
    ports:
      - '3000:3000'
    env_file:
      - .env
    environment:
      - DATABASE_URL=postgres://${POSTGRESQL_USER:-zipline}:${POSTGRESQL_PASSWORD}@postgresql:5432/${POSTGRESQL_DB:-zipline}
    depends_on:
      postgresql:
        condition: service_healthy
    volumes:
      - './uploads:/zipline/uploads'
      - './public:/zipline/public'
      - './themes:/zipline/themes'
    healthcheck:
      test: ['CMD', 'wget', '-q', '--spider', 'http://localhost:3000/api/healthcheck']
      interval: 15s
      timeout: 2s
      retries: 2

volumes:
  pgdata:

Before running, you need to generate essential secrets and store them in a .env file:

echo "POSTGRESQL_PASSWORD=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" > .env
echo "CORE_SECRET=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" >> .env

Once the .env file is configured, start Zipline with:

docker compose up -d

For more detailed installation instructions, including manual setup and advanced configurations, refer to the official documentation.

Examples of Use

Zipline excels in various file management scenarios:

  • ShareX Integration: Seamlessly upload screenshots and files directly from ShareX, making it an ideal self-hosted alternative for quick content sharing.
  • File Hosting: Host any type of file, organizing them into folders and tagging them for easy retrieval.
  • URL Shortening: Beyond file uploads, Zipline can also function as a URL shortener, providing custom short links for any web address.
  • Media Management: Automatically generate video thumbnails and compress images, optimizing content for web delivery.
  • Secure Sharing: Protect sensitive uploads with password protection, ensuring only authorized users can access them.
  • Customization: Personalize your upload server's appearance with custom themes, aligning it with your brand or preferences.

Why Use Zipline?

Choosing Zipline offers several compelling advantages:

  • Feature-Rich: It comes packed with an extensive list of features, from basic file uploads to advanced security, customization, and API capabilities.
  • Easy Setup: The Docker-first approach ensures a quick and straightforward installation, getting your server up and running in minutes.
  • Self-Hosted Control: Gain full control over your data and infrastructure, avoiding reliance on third-party services.
  • Security: Implement robust security measures like 2FA, Passkeys, and password protection for your uploads.
  • Flexibility: Supports both local storage and S3-compatible object storage, allowing you to scale your storage solution as needed.
  • Active Development: The project is actively maintained and welcomes contributions, ensuring continuous improvement and new features.

Links