Skip to main content
This page documents all environment variables supported by Zipline, organized by category.

Core Settings

Fundamental server and database configuration.
CORE_PORT
number
default:"3000"
Port number for the HTTP server.
CORE_PORT=3000
CORE_HOSTNAME
string
default:"0.0.0.0"
Hostname or IP address to bind the server to.
CORE_HOSTNAME=0.0.0.0
CORE_SECRET
string
required
Secret key for session encryption and security. Must be at least 32 characters long.
CORE_SECRET="your-secure-secret-key-min-32-chars"
Never use the default value changethis. Generate a secure random string:
openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32
CORE_TRUST_PROXY
boolean
default:"false"
Enable trust for proxy headers (X-Forwarded-For, X-Forwarded-Proto). Required when behind a reverse proxy.
CORE_TRUST_PROXY=true
CORE_RETURN_HTTPS_URLS
boolean
default:"false"
Return HTTPS URLs instead of HTTP when generating file links.
CORE_RETURN_HTTPS_URLS=true
CORE_DEFAULT_DOMAIN
string
default:"null"
Default domain to use for generating URLs. If not set, uses the request hostname.
CORE_DEFAULT_DOMAIN=files.example.com
CORE_TEMP_DIRECTORY
string
default:"/tmp/zipline"
Directory for temporary files during processing.
CORE_TEMP_DIRECTORY=/var/tmp/zipline

Database Configuration

DATABASE_URL
string
required
PostgreSQL connection string. Required unless using individual database variables.
DATABASE_URL=postgresql://user:password@localhost:5432/zipline
You can use either DATABASE_URL or the individual database variables below. If both are provided, DATABASE_URL takes precedence.
DATABASE_USERNAME
string
Database username (alternative to DATABASE_URL).
DATABASE_PASSWORD
string
Database password (alternative to DATABASE_URL).
DATABASE_HOST
string
Database host (alternative to DATABASE_URL).
DATABASE_PORT
number
Database port (alternative to DATABASE_URL).
DATABASE_NAME
string
Database name (alternative to DATABASE_URL).
When using individual database variables, ALL five must be provided (username, password, host, port, name).

Datasource Configuration

DATASOURCE_TYPE
string
default:"local"
Storage backend type. Options: local, s3.
DATASOURCE_TYPE=local

Local Datasource

DATASOURCE_LOCAL_DIRECTORY
string
default:"./uploads"
Directory path for storing uploaded files when using local datasource.
DATASOURCE_LOCAL_DIRECTORY=/var/lib/zipline/uploads

S3 Datasource

DATASOURCE_S3_ACCESS_KEY_ID
string
AWS access key ID or S3-compatible access key.
DATASOURCE_S3_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
DATASOURCE_S3_SECRET_ACCESS_KEY
string
AWS secret access key or S3-compatible secret key.
DATASOURCE_S3_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
DATASOURCE_S3_REGION
string
AWS region for S3 bucket.
DATASOURCE_S3_REGION=us-west-2
DATASOURCE_S3_BUCKET
string
S3 bucket name for file storage.
DATASOURCE_S3_BUCKET=my-zipline-files
DATASOURCE_S3_ENDPOINT
string
default:"null"
Custom S3 endpoint for S3-compatible services (MinIO, DigitalOcean Spaces, etc.).
DATASOURCE_S3_ENDPOINT=https://nyc3.digitaloceanspaces.com
DATASOURCE_S3_FORCE_PATH_STYLE
boolean
default:"false"
Use path-style URLs instead of virtual-hosted-style. Required for some S3-compatible services.
DATASOURCE_S3_FORCE_PATH_STYLE=true
DATASOURCE_S3_SUBDIRECTORY
string
default:"null"
Subdirectory within the bucket to store files.
DATASOURCE_S3_SUBDIRECTORY=zipline-uploads
When DATASOURCE_TYPE=s3, all required S3 credentials must be provided (access key, secret key, region, bucket).

Chunked Uploads

CHUNKS_ENABLED
boolean
default:"true"
Enable chunked/multipart uploads for large files.
CHUNKS_ENABLED=true
CHUNKS_MAX
string
default:"95mb"
Maximum size for chunked uploads.
CHUNKS_MAX=100mb
CHUNKS_SIZE
string
default:"25mb"
Size of each chunk in multipart uploads.
CHUNKS_SIZE=25mb

Background Tasks

Interval settings for background maintenance tasks.
All interval values use the ms format: 30s, 5m, 1h, 1d, etc. Maximum value is 2147483647ms (~24.8 days).
TASKS_DELETE_INTERVAL
string
default:"30m"
Interval for checking and deleting expired files.
TASKS_DELETE_INTERVAL=15m
TASKS_CLEAR_INVITES_INTERVAL
string
default:"30m"
Interval for clearing expired invites.
TASKS_CLEAR_INVITES_INTERVAL=1h
TASKS_MAX_VIEWS_INTERVAL
string
default:"30m"
Interval for checking files that have reached maximum view count.
TASKS_MAX_VIEWS_INTERVAL=10m
TASKS_THUMBNAILS_INTERVAL
string
default:"30m"
Interval for generating thumbnails for new uploads.
TASKS_THUMBNAILS_INTERVAL=5m
TASKS_METRICS_INTERVAL
string
default:"30m"
Interval for collecting and aggregating metrics.
TASKS_METRICS_INTERVAL=1h
TASKS_CLEAN_THUMBNAILS_INTERVAL
string
default:"1d"
Interval for cleaning up orphaned thumbnails.
TASKS_CLEAN_THUMBNAILS_INTERVAL=1d

File Upload Settings

FILES_ROUTE
string
default:"/u"
URL route prefix for uploaded files.
FILES_ROUTE=/f
FILES_LENGTH
number
default:"6"
Length of randomly generated file names.
FILES_LENGTH=8
FILES_DEFAULT_FORMAT
string
default:"random"
Default naming format for uploaded files. Options: random, date, uuid, name, gfycat, random-words.
FILES_DEFAULT_FORMAT=random
FILES_DISABLED_EXTENSIONS
string[]
default:"[]"
Comma-separated list of file extensions to block.
FILES_DISABLED_EXTENSIONS=exe,bat,cmd
FILES_MAX_FILE_SIZE
string
default:"100mb"
Maximum file size for uploads.
FILES_MAX_FILE_SIZE=500mb
FILES_DEFAULT_EXPIRATION
string
default:"null"
Default expiration time for uploaded files.
FILES_DEFAULT_EXPIRATION=7d
FILES_MAX_EXPIRATION
string
default:"null"
Maximum allowed expiration time users can set.
FILES_MAX_EXPIRATION=30d
FILES_ASSUME_MIMETYPES
boolean
default:"false"
Assume MIME types from file extensions instead of detecting.
FILES_ASSUME_MIMETYPES=true
FILES_DEFAULT_DATE_FORMAT
string
default:"YYYY-MM-DD_HH:mm:ss"
Date format for date naming format.
FILES_DEFAULT_DATE_FORMAT=YYYY-MM-DD_HH-mm-ss
FILES_REMOVE_GPS_METADATA
boolean
default:"false"
Automatically strip GPS metadata from uploaded images.
FILES_REMOVE_GPS_METADATA=true
FILES_RANDOM_WORDS_NUM_ADJECTIVES
number
default:"2"
Number of adjectives in random-words naming format.
FILES_RANDOM_WORDS_NUM_ADJECTIVES=3
FILES_RANDOM_WORDS_SEPARATOR
string
default:"-"
Separator character for random-words naming format.
FILES_RANDOM_WORDS_SEPARATOR=_
FILES_DEFAULT_COMPRESSION_FORMAT
string
default:"jpg"
Default image format for compression. Options: jpg, png, webp.
FILES_DEFAULT_COMPRESSION_FORMAT=webp

URL Shortener Settings

URLS_ROUTE
string
default:"/go"
URL route prefix for shortened URLs.
URLS_ROUTE=/s
URLS_LENGTH
number
default:"6"
Length of randomly generated short URL codes.
URLS_LENGTH=5

Feature Toggles

FEATURES_IMAGE_COMPRESSION
boolean
default:"true"
Enable image compression features.
FEATURES_IMAGE_COMPRESSION=true
FEATURES_ROBOTS_TXT
boolean
default:"true"
Serve a robots.txt file.
FEATURES_ROBOTS_TXT=false
FEATURES_HEALTHCHECK
boolean
default:"true"
Enable the /api/healthcheck endpoint.
FEATURES_HEALTHCHECK=true
FEATURES_USER_REGISTRATION
boolean
default:"false"
Allow new user registration.
FEATURES_USER_REGISTRATION=true
FEATURES_OAUTH_REGISTRATION
boolean
default:"false"
Allow registration via OAuth providers.
FEATURES_OAUTH_REGISTRATION=true
FEATURES_DELETE_ON_MAX_VIEWS
boolean
default:"true"
Automatically delete files when they reach maximum view count.
FEATURES_DELETE_ON_MAX_VIEWS=true
FEATURES_VERSION_CHECKING
boolean
default:"true"
Check for new Zipline versions.
FEATURES_VERSION_CHECKING=false
FEATURES_VERSION_API
string
default:"https://zipline-version.diced.sh"
API endpoint for version checking.
FEATURES_VERSION_API=https://custom-version-api.example.com

Thumbnail Settings

FEATURES_THUMBNAILS_ENABLED
boolean
default:"true"
Enable automatic thumbnail generation.
FEATURES_THUMBNAILS_ENABLED=true
FEATURES_THUMBNAILS_NUM_THREADS
number
default:"4"
Number of worker threads for thumbnail generation.
FEATURES_THUMBNAILS_NUM_THREADS=8
FEATURES_THUMBNAILS_FORMAT
string
default:"jpg"
Output format for thumbnails. Options: jpg, png, webp.
FEATURES_THUMBNAILS_FORMAT=webp

Metrics Settings

FEATURES_METRICS_ENABLED
boolean
default:"true"
Enable metrics collection and analytics.
FEATURES_METRICS_ENABLED=true
FEATURES_METRICS_ADMIN_ONLY
boolean
default:"false"
Restrict metrics viewing to administrators only.
FEATURES_METRICS_ADMIN_ONLY=true
FEATURES_METRICS_SHOW_USER_SPECIFIC
boolean
default:"true"
Show user-specific metrics to individual users.
FEATURES_METRICS_SHOW_USER_SPECIFIC=true

Domain Configuration

DOMAINS
string[]
default:"[]"
Comma-separated list of additional domains for multi-domain support.
DOMAINS=files.example.com,uploads.example.com

Invite System

INVITES_ENABLED
boolean
default:"true"
Enable the invite system for user registration.
INVITES_ENABLED=true
INVITES_LENGTH
number
default:"6"
Length of generated invite codes.
INVITES_LENGTH=8

Next Steps

Datasource Configuration

Detailed S3 and local storage setup

Authentication

OAuth providers and MFA configuration

Build docs developers (and LLMs) love