/api/server/settings
Get or update server-wide configuration settings.
This endpoint requires authentication.
This endpoint requires administrator privileges or higher.
Settings that change data on the dashboard (like websiteTitle
) may or may
not show up after updating them through this route. Unfortunately, there is
nothing you can do about this as the API acts separately from the dashboard,
while the built in settings page updates the dashboard through Next.js router
revalidation (which is not possible through an API). The only way to ensure
the dashboard reflects these new changes is to restart the server.
GET Request
Retrieve the current server settings.
Response
Status: 200 OK
Content-Type: application/json
Returns an object containing server settings. Refer to schema.prisma
for the full schema (Look for model Zipline
).
Example
{"coreReturnHttpsUrls": false,"coreDefaultDomain": null,"coreTempDirectory": "/var/folders/9g/fng4z2cd22b_cf99gtw8k73w0000gn/T/zipline","chunksEnabled": true,"chunksMax": "95mb","chunksSize": "25mb","tasksDeleteInterval": "30m","tasksClearInvitesInterval": "30m","tasksMaxViewsInterval": "30m","tasksThumbnailsInterval": "30m","tasksMetricsInterval": "30m","filesRoute": "/u","filesLength": 6,"filesDefaultFormat": "random","filesDisabledExtensions": [],"filesMaxFileSize": "100mb","filesDefaultExpiration": null,"filesAssumeMimetypes": false,"filesDefaultDateFormat": "YYYY-MM-DD_HH:mm:ss","filesRemoveGpsMetadata": false,"filesRandomWordsNumAdjectives": 2,"filesRandomWordsSeparator": "-","urlsRoute": "/go","urlsLength": 6,"featuresImageCompression": true,"featuresRobotsTxt": true,"featuresHealthcheck": true,"featuresUserRegistration": false,"featuresOauthRegistration": false,"featuresDeleteOnMaxViews": true,"featuresThumbnailsEnabled": true,"featuresThumbnailsNumberThreads": 4,"featuresMetricsEnabled": true,"featuresMetricsAdminOnly": false,"featuresMetricsShowUserSpecific": true,"featuresVersionChecking": true,"featuresVersionAPI": "https://zipline-version.diced.sh","invitesEnabled": true,"invitesLength": 6,"websiteTitle": "Zipline","websiteTitleLogo": null,"websiteExternalLinks": [{"url": "https://github.com/diced/zipline","name": "GitHub"},{"url": "https://zipline.diced.sh/","name": "Documentation"}],"websiteLoginBackground": null,"websiteLoginBackgroundBlur": true,"websiteDefaultAvatar": null,"websiteTos": null,"websiteThemeDefault": "system","websiteThemeDark": "builtin:dark_gray","websiteThemeLight": "builtin:light_gray","oauthBypassLocalLogin": false,"oauthLoginOnly": false,"oauthDiscordClientId": null,"oauthDiscordClientSecret": null,"oauthDiscordRedirectUri": null,"oauthGoogleClientId": null,"oauthGoogleClientSecret": null,"oauthGoogleRedirectUri": null,"oauthGithubClientId": null,"oauthGithubClientSecret": null,"oauthGithubRedirectUri": null,"oauthOidcClientId": null,"oauthOidcClientSecret": null,"oauthOidcAuthorizeUrl": null,"oauthOidcTokenUrl": null,"oauthOidcUserinfoUrl": null,"oauthOidcRedirectUri": null,"mfaTotpEnabled": false,"mfaTotpIssuer": "Zipline","mfaPasskeys": true,"ratelimitEnabled": true,"ratelimitMax": 10,"ratelimitWindow": null,"ratelimitAdminBypass": true,"ratelimitAllowList": [],"httpWebhookOnUpload": null,"httpWebhookOnShorten": null,"discordWebhookUrl": null,"discordUsername": null,"discordAvatarUrl": null,"discordOnUploadWebhookUrl": null,"discordOnUploadUsername": null,"discordOnUploadAvatarUrl": null,"discordOnUploadContent": null,"discordOnUploadEmbed": null,"discordOnShortenWebhookUrl": null,"discordOnShortenUsername": null,"discordOnShortenAvatarUrl": null,"discordOnShortenContent": null,"discordOnShortenEmbed": null,"pwaEnabled": false,"pwaTitle": "Zipline","pwaShortName": "Zipline","pwaDescription": "Zipline","pwaThemeColor": "#000000","pwaBackgroundColor": "#000000"}
PATCH Request
Update server settings. Some settings need a restart to take effect, which are noted on the settings page. Every setting is validated, and if any setting is invalid, the server will return with a 400 Bad Request
error with details and paths of the invalid settings.
Body
Content-Type: application/json
A partial object containing the settings to update. Refer to the example above, or the schema.prisma
file for the full schema (Look for model Zipline
).
Example
Change the website title:
{"websiteTitle": "My Zipline Server"}
Error Responses
-
400 Bad Request
If the request body is invalid or contains invalid settings. The response will include details about which settings are invalid.
{"statusCode": 400,"issues": [{"code": "custom","message": "Directory does not exist","path": ["coreTempDirectory"]}]}