Skip to main content
50% off all plans, limited time. Starting at $2.48/mo
Zipline

Zipline

Zipline is a self-hosted file sharing and URL shortening platform: a ShareX-compatible upload server with a modern dashboard, themes, and PostgreSQL storage. MIT licensed with 3,200+ GitHub stars.

At a glance

3.3k

GitHub stars

148

Active installs

License MIT Version Latest OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4

Active installs is sample data (staging preview); real metric wires in before launch.

Access

  1. Open the Zipline URL: https://<SERVER-IP>
  2. You will be redirected to a setup page where you can configure the default super administrator username and password.

Important Files & Directories

  • Install Path: /root/zipline
  • Compose File: /root/zipline/docker-compose.yml
  • Environment File: /root/zipline/.env
  • Uploads Directory: /root/zipline/uploads
  • Public Files: /root/zipline/public
  • Themes Directory: /root/zipline/themes
  • PostgreSQL Volume: /var/lib/docker/volumes/zipline_pgdata/_data
  • Nginx Config: /etc/nginx/sites-available/zipline.conf
  • SSL Certificate: /etc/nginx/ssl/zipline.crt
  • SSL Private Key: /etc/nginx/ssl/zipline.key

Docker Management

View status:

cd /root/zipline
docker compose ps

View logs:

cd /root/zipline
docker compose logs -f

Restart services:

cd /root/zipline
docker compose restart

Stop services:

cd /root/zipline
docker compose down

Start services:

cd /root/zipline
docker compose up -d

NGINX Management

Test configuration:

nginx -t

Restart NGINX:

systemctl restart nginx

Reload NGINX:

systemctl reload nginx

Check NGINX status:

systemctl status nginx

Enabling SSL with a Domain

1. Point your domain to the server IP.

2. Install Certbot:

apt install -y certbot python3-certbot-nginx

3. Run the following command to generate a valid Let's Encrypt certificate:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

4. Replace SSL paths in Nginx config:

vim /etc/nginx/sites-available/zipline.conf
# Before:
    # ssl_certificate /etc/nginx/ssl/zipline.crt;
    # ssl_certificate_key /etc/nginx/ssl/zipline.key;
# After:
    # ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

5. Edit Nginx config and replace both server_name _; with your domain (server_name <yourdomain.com>) for both HTTP (port 80) and HTTPS (port 443) blocks:

vim /etc/nginx/sites-available/zipline.conf
# Before:
    server_name: _;
# After:
    server_name: yourdomain.com;

6. Reload Nginx to apply the changes:

systemctl reload nginx

7. Open your browser and visit: https://yourdomain.com

Updating Zipline

To update Zipline, simply run the following command:

docker compose pull
docker compose up -d

This will pull the latest Zipline image and restart the server.

Notes

  • Zipline runs behind Nginx with HTTPS enabled.
  • Uploaded files are stored in /root/zipline/uploads.
  • Public assets are stored in /root/zipline/public.
  • Custom themes are stored in /root/zipline/themes.
  • Database credentials and application secrets are stored in /root/zipline/.env.

More in File Hosting

Related apps.

Deploy Zipline now. From $2.48/mo.