Settings

As of Zipline v4, most configuration options can be managed through the settings dashboard. However, some settings require a server restart.

To access the settings dashboard, navigate to /dashboard/admin/settings on your Zipline instance. settings sidebar access

Each section here on the docs has a table of environment variables that can be used instead of the dashboard. These environment variables can be set in your .env file or in the docker-compose.yml file if you are using Docker. Note that environment variables will override and take precedence over the settings dashboard values (once the environment variables are set, you can't edit them through the dashboard).

Core

This section is for core configuration, like whether or not to return HTTPS urls. Some of these options may require a server restart after saving.

Variables

VariableTypeExample
CORE_RETURN_HTTPS_URLSbooleantrue
CORE_DEFAULT_DOMAINstringzipline.example.com
CORE_TEMP_DIRECTORYstring/var/tmp/zipline

Chunks

This section is for partial uploads. When uploading through the dashboard, if the file is too large (Max Chunk Size), it will be split into smaller chunks (size of Chunk Size). This is useful for large files that may be interrupted during upload due to file size limitations on the server or DNS.

Variables

VariableTypeExample
CHUNKS_MAXstring95mb
CHUNKS_SIZEstring25mb
CHUNKS_ENABLEDbooleantrue

Tasks

These are internal tasks that Zipline runs in the background on intervals. The default value for all of them is 30 minutes. All of settings require a server restart after saving.

Variables

VariableTypeExample
TASKS_DELETE_INTERVALstring30m
TASKS_CLEAR_INVITES_INTERVALstring30m
TASKS_MAX_VIEWS_INTERVALstring30m
TASKS_THUMBNAILS_INTERVALstring30m
TASKS_METRICS_INTERVALstring30m

Multi-Factor Authentication

These are settings to manage passkey and time-based one-time password (TOTP) authentication.

Passkeys are used as a method of passwordless authentication. They can be your phone or security key (whatever your OS supports!). When enabled, the login screen will include a "Login with Passkey" button below the login fields. Once clicked a dialog (varies by browser and OS, some may not support this feature) will appear with a passkey that can be used to login.

windows security dialog
A Windows security dialog showing a passkey.

Time-based one-time passwords are generated by an authenticator app like Google Authenticator, Authy, 2FAS Auth. When enabled, after logging in with a username and password, the user will be prompted to enter a code from their authenticator app.

Variables

VariableTypeExample
MFA_TOTP_ENABLEDbooleantrue
MFA_TOTP_ISSUERstringZipline
MFA_PASSKEYSbooleantrue

Features

These are various features that you can enable or disable. Some of these features may require a server restart after saving.

Thumbnails are generated with ffmpeg, some files may not be supported. If you are having issues with thumbnails, feel free to open an issue on GitHub with relevant info. The command used to generate thumbnails is ffmpeg -i tmpfile -y -vframes 1 -filter:v thumbnail -f mjpeg out.jpg. If you are using S3, the file is downloaded and saved to the temp directory.

Thumbnails Number Threads is the number of worker threads to spawn when generating thumbnails. It is recommended to set this to the number of CPU threads on your server. If you set this too high, it may cause performance issues. If you are noticing performance issues, try setting this value to 1, so that only one worker thread is spawned. If this value is low, thumbnails will be grouped to be processed by the same worker thread, which may cause a bottleneck.

Variables

VariableTypeExample
FEATURES_IMAGE_COMPRESSIONbooleantrue
FEATURES_ROBOTS_TXTbooleantrue
FEATURES_HEALTHCHECKbooleantrue
FEATURES_USER_REGISTRATIONbooleantrue
FEATURES_OAUTH_REGISTRATIONbooleantrue
FEATURES_DELETE_ON_MAX_VIEWSbooleantrue
FEATURES_THUMBNAILS_ENABLEDbooleantrue
FEATURES_THUMBNAILS_NUM_THREADSnumber4
FEATURES_METRICS_ENABLEDbooleantrue
FEATURES_METRICS_ADMIN_ONLYbooleanfalse
FEATURES_METRICS_SHOW_USER_SPECIFICbooleantrue
FEATURES_VERSION_CHECKINGbooleantrue
FEATURES_VERSION_APIstringhttps://zipline-version.diced.sh/

Files

These settings are for viewing and uploading files. The route can be anything, even / if you want to serve files from the root of your domain. Enabling Remove GPS Metadata will attempt to remove any exif GPS metadata from images uploaded to Zipline. The Assume Mimetypes can be enabled to assume the mimetype of a file based on the file extension. This is useful for files that may not have a mimetype set by the browser or uploader.

Variables

VariableTypeExample
FILES_ROUTEstring/u
FILES_LENGTHnumber6
FILES_DEFAULT_FORMATstringrandom
FILES_DISABLED_EXTENSIONSstring[]exe,bat,dmg
FILES_MAX_FILE_SIZEstring100mb
FILES_DEFAULT_EXPIRATIONstring30d
FILES_ASSUME_MIMETYPESbooleantrue
FILES_DEFAULT_DATE_FORMATstringYYYY-MM-DD_HH:mm:ss
FILES_REMOVE_GPS_METADATAbooleantrue
FILES_RANDOM_WORDS_NUM_ADJECTIVESnumber3
FILES_RANDOM_WORDS_SEPARATORstring-

URL Shortener

These settings are for the URL shortener feature. The route can be anything, even / if you want to serve shortened URLs from the root of your domain.

Variables

VariableTypeExample
URLS_ROUTEstring/go
URLS_LENGTHnumber4

Invites

Invites are used to invite users to your Zipline instance with the use of invite codes/links. When enabled, users will be able to send invites to other users.

Variables

VariableTypeExample
INVITES_ENABLEDbooleantrue
INVITES_LENGTHnumber6

Ratelimit

If enabled, the ratelimit will be enforced on the /api/upload and /api/shorten routes. If you set the Max Requests, you will have to also set the Window in seconds. The Max Requests is the number of requests allowed in the Window before the ratelimit is enforced.

The allow list is a comma-separated list of IP addresses that are allowed to bypass the ratelimit.

Variables

VariableTypeExample
RATELIMIT_ENABLEDbooleantrue
RATELIMIT_MAXnumber10
RATELIMIT_WINDOWstring2
RATELIMIT_ADMIN_BYPASSbooleantrue
RATELIMIT_ALLOW_LISTstring[]1.1.1.1,8.8.8.8

Website

These are settings for the dashboard, mostly user facing settings. The Default Avatar must be a path on the server to an image file. The default theme settings are used for the login and viewing image pages when not logged in.

The Terms of Service should be a path on the server to a .md (Markdown) file. Once set, when a user registers, they will be prompted to read and agree to the terms of service which will be rendered markdown.

External links can be configured through a JSON array. Each object in the array must have the name and url keys. The name is the name of the link, and the url is the URL to the link. Visit External Links Builder to help generate the JSON array.

Variables

VariableTypeExample
WEBSITE_TITLEstringZipline
WEBSITE_TITLE_LOGOstringhttps://example.com/logo.png
WEBSITE_EXTERNAL_LINKSjson"{\"name\":\"test\", \"url\": \"https://link\"}"
WEBSITE_LOGIN_BACKGROUNDstringhttps://example.com/bg.png
WEBSITE_LOGIN_BACKGROUND_BLURbooleantrue
WEBSITE_DEFAULT_AVATARstring/absolute/path/to/file
WEBSITE_TOSstring/absolute/path/to/markdown.md
WEBSITE_THEME_DEFAULTstringsystem
WEBSITE_THEME_DARKstringbuiltin:dark_blue
WEBSITE_THEME_LIGHTstringbuiltin:light_blue

OAuth

These settings enable the four OAuth providers that Zipline supports. The currently supported providers are Google, GitHub, Discord, and OIDC (like Okta, Authentik, Keycloak, etc.). Each provider requires a client ID and client secret. There are more detailed instructions on how to set up each provider below the settings.

Variables

VariableTypeExample
OAUTH_BYPASS_LOCAL_LOGINbooleantrue
OAUTH_LOGIN_ONLYbooleantrue
OAUTH_DISCORD_CLIENT_IDstringdiscord-client-id
OAUTH_DISCORD_CLIENT_SECRETstringdiscord-client-secret
OAUTH_DISCORD_REDIRECT_URIstringhttps://zipline/api/auth/oauth/discord
OAUTH_DISCORD_ALLOWED_IDSstring[]id1,id2
OAUTH_DISCORD_DENIED_IDSstring[]id3,id4
OAUTH_GOOGLE_CLIENT_IDstringgoogle-client-id
OAUTH_GOOGLE_CLIENT_SECRETstringgoogle-client-secret
OAUTH_GOOGLE_REDIRECT_URIstringhttps://zipline/api/auth/oauth/google
OAUTH_GITHUB_CLIENT_IDstringgithub-client-id
OAUTH_GITHUB_CLIENT_SECRETstringgithub-client-secret
OAUTH_GITHUB_REDIRECT_URIstringhttps://zipline/api/auth/oauth/github
OAUTH_OIDC_CLIENT_IDstringoidc-client-id
OAUTH_OIDC_CLIENT_SECRETstringoidc-client-secret
OAUTH_OIDC_AUTHORIZE_URLstringhttps://oidc.example.com/auth
OAUTH_OIDC_USERINFO_URLstringhttps://oidc.example.com/user
OAUTH_OIDC_TOKEN_URLstringhttps://oidc.example.com/token
OAUTH_OIDC_REDIRECT_URIstringhttps://zipline/api/auth/oauth/oidc

HTTP Webhooks

These settings are for HTTP webhooks. When enabled, Zipline will send a POST request to the URL with the file information. For more information on the payload, see the HTTP Webhooks guide.

Variables

VariableTypeExample
HTTP_WEBHOOK_ON_UPLOADstringhttps://example.com/upload
HTTP_WEBHOOK_ON_SHORTENstringhttps://example.com/shorten

Discord Webhook

These settings are for Discord webhook notifications. If the main Webhook URL, Username, and Avatar URL are set, the On Upload and On Shorten hook will use them unless, they have their own values set.

Content fields like Content, Embed Title, Embed Description can have variables in them for customization.

PWA

These settings are for the Progressive Web App (PWA) feature. While it doesn't fully function as a PWA, Zipline does provide a manifest file so that you can install Zipline as an app on your devices.

Variables

VariableTypeExample
PWA_ENABLEDbooleantrue
PWA_TITLEstringZipline PWA
PWA_SHORT_NAMEstringZipline
PWA_DESCRIPTIONstringFile & URL shortener
PWA_BACKGROUND_COLORstring#ffffff
PWA_THEME_COLORstring#000000


Last updated: 7/2/2025
Edit this page on GitHub