Zipline logo

Zipline

A ShareX/file upload server that is easy to use, packed with features, and with an easy setup!

Alternative to: imgur, cloudapp, sharex, gyazo


Zipline is a fast, self-hosted file, image, and media sharing server with a full web dashboard, built as a modern alternative to ShareX's default hosted upload targets. It supports chunked/partial uploads, folders, tags, URL shortening, image compression, and video thumbnails, and can store files on the local filesystem or S3-compatible storage. It also offers OAuth2, two-factor authentication, passkeys, password-protected links, and Discord/HTTP webhooks for automation.

Zipline Docker Compose example

Self-host Zipline on your own server, homelab, or VPS starting from this Docker Compose example. It runs Zipline in Docker containers using the official postgres:16, ghcr.io/diced/zipline:latest images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  postgresql:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: "zipline"
      POSTGRES_DB: "zipline"
      # Password for the PostgreSQL database user
      POSTGRES_PASSWORD: "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:latest
    restart: unless-stopped
    environment:
      # PostgreSQL connection string used by Zipline
      DATABASE_URL: "postgres://zipline:zipline@postgresql:5432/zipline"
      # Secret used to sign tokens and sessions. Must be at least 32 characters and different from the default.
      CORE_SECRET: "changemechangemechangemechangeme"
    depends_on:
      postgresql:
        condition: service_healthy
    volumes:
      - uploads:/zipline/uploads
      - public:/zipline/public
      - themes:/zipline/themes
    healthcheck:
      test: ["CMD", "wget", "-q", "--spider", "http://0.0.0.0:3000/api/healthcheck"]
      interval: 15s
      timeout: 2s
      retries: 2

volumes:
  pgdata:
  uploads:
  public:
  themes:

Values set to changeme are required — replace them with your own values before starting Zipline.

Prefer a managed setup? WinterFlow installs, configures, and updates Zipline for you using this same Docker Compose configuration.