Prerequisites
- Docker and Docker Compose installed on your system
- Basic understanding of Docker and environment variables
- At least 1GB of available disk space
Setup
Create docker-compose.yml
Create a
docker-compose.yml file with the following configuration:docker-compose.yml
Access Zipline
Once started, Zipline will be available at:You can now proceed to the first steps guide to create your admin account.
Understanding volumes
The Docker Compose configuration mounts three volumes:./uploads - User uploads
./uploads - User uploads
This folder stores all user-uploaded files when using local storage (the default).Mount point:
/zipline/uploadsIf you want to change the upload directory, set the DATASOURCE_LOCAL_DIRECTORY environment variable and update the volume mapping accordingly../public - Public assets
./public - Public assets
This folder contains public assets and static files.Mount point:
/zipline/public (must not be changed)./themes - Custom themes
./themes - Custom themes
This folder contains custom theme files for UI customization.Mount point:
/zipline/themes (must not be changed)Common configurations
Change port and hostname
By default, Zipline binds to0.0.0.0:3000. To change this, add to your .env file:
.env
If you change the port, update the
ports section in docker-compose.yml accordingly.Change upload directory
To store uploads in a different location:.env
docker-compose.yml:
Use S3 storage
To use S3-compatible storage instead of local files, add to your.env file:
.env
When using S3 storage, you can remove the
./uploads volume mount from the docker-compose.yml file. See the datasource configuration for more options.Updating Zipline
To update to the latest version:Troubleshooting
Container won’t start
- Check the logs:
docker compose logs zipline - Verify your
.envfile containsCORE_SECRET(at least 32 characters) - Ensure PostgreSQL is healthy:
docker compose ps
Cannot access Zipline
- Verify the container is running:
docker compose ps - Check if port 3000 is already in use:
netstat -tuln | grep 3000 - Review firewall settings if accessing from another machine
Database connection issues
- Ensure PostgreSQL container is healthy:
docker compose ps - Verify
DATABASE_URLin your environment matches PostgreSQL credentials - Check PostgreSQL logs:
docker compose logs postgresql
Next steps
First steps
Create your admin account and configure basic settings
Configuration
Explore all configuration options
ShareX setup
Configure ShareX to upload to your instance
API reference
Learn about the Zipline API