Edit on GitHub

Environment variables

Fileship reads these variables when it starts. With Docker, set them in the x-fileship block of docker-compose.yml (see Setting variables with Docker Compose); without Docker, in apps/dashboard/.env. The full list with comments is in apps/dashboard/.env.example.

Variables marked instance setting only give the default of a field in Administration → Instance. Once a super admin saves that field, the saved value wins until it is reset with Reset to default. A value outside the field's allowed range falls back to the built-in default.

Server

VariableDefaultDescription
DATABASE_URLnone, requiredPostgreSQL connection string, for example postgres://user:password@host:5432/db.
NUXT_DATA_DIRECTORYdataUploads on the local storage, thumbnails, AI models, temporary files and secret.key. A relative path is resolved two folders above the folder Fileship starts in (apps/dashboard), which is the repository root; in Docker that is /fileship/data.
HOSTall addressesAddress the server listens on. Compose sets 0.0.0.0.
PORT3000Port the server listens on.
NITRO_SHUTDOWN_TIMEOUTNitro's defaultMilliseconds Fileship waits for running requests when it stops. Compose sets 25000.
CHECKPOINT_DISABLEset in the image1 stops the Prisma CLI from checking for updates when migrations run.

General

VariableDefaultInstance settingDescription
NUXT_PUBLIC_SITE_NAMEFileshipSite nameName shown in the browser title, link previews, emails and the dashboard.
NUXT_SITE_URLemptyDashboard addressPublic address, such as https://files.example.com. Emails and single sign-on need it.
NUXT_PUBLIC_RETURN_HTTPSautoLink protocolauto (same as the request), true (always HTTPS) or false (always HTTP) for generated links.

Uploads, trash and backups

VariableDefaultInstance settingDescription
NUXT_PUBLIC_FILE_CHUNK_SIZE25Chunk size (MB)Size of upload chunks, 5 to 100 MB.
NUXT_AVATAR_MAX_SIZE4Avatar size limit (MB)1 to 100 MB.
NUXT_REMOVE_EXIF_DATAtrueRemove EXIF dataStrip location and camera details from uploaded images.
NUXT_TRASH_RETENTION_DAYS30Trash retention (days)0 to 365. 0 deletes immediately.
NUXT_SCHEDULED_BACKUPS_ENABLEDtrueScheduled backupsWhether users can back up their account on a schedule.

Registration and single sign-on

VariableDefaultInstance settingDescription
NUXT_PUBLIC_REGISTRATION_ENABLEDfalseAllow registrationShow a sign up link on the login page.
NUXT_REGISTRATION_PERMISSIONSUploadFiles,TakeNotes,ShortenLinksPermissionsComma-separated. Only these three are honoured; admin rights are never granted.
NUXT_REGISTRATION_USABLE_SPACE-1Storage limit (MB)Storage limit of new accounts in MB, -1 for unlimited.
NUXT_PUBLIC_TURNSTILE_SITE_KEYemptySite keyCloudflare Turnstile. It only turns on when both keys are set.
NUXT_TURNSTILE_SECRET_KEYemptySecret key
NUXT_OIDC_ENABLEDfalseEnable single sign-onSee Single sign-on.
NUXT_OIDC_ISSUER_URLemptyIssuer URL
NUXT_OIDC_CLIENT_IDemptyClient ID
NUXT_OIDC_CLIENT_SECRETemptyClient secret
NUXT_OIDC_BUTTON_LABELemptyProvider nameShown on the login button.
NUXT_OIDC_AUTO_REGISTERfalseCreate accountsCreate accounts for people who log in without one.
NUXT_PASSWORD_LOGIN_ENABLEDtruePassword and passkey loginWhen false and single sign-on is set up, only super admins log in with a password or passkey.

Email

VariableDefaultInstance settingDescription
NUXT_SMTP_HOSTemptySMTP server
NUXT_SMTP_PORT587Port
NUXT_SMTP_SECURITYstarttlsEncryptionstarttls, tls or none.
NUXT_SMTP_USERemptyUsername
NUXT_SMTP_PASSWORDemptyPassword
NUXT_SMTP_FROMemptySender address

Email stays off until NUXT_SITE_URL, NUXT_SMTP_HOST and NUXT_SMTP_FROM are set. See Email.

AI

VariableDefaultInstance settingDescription
NUXT_PUBLIC_AI_ENABLEDtrueAI featuresAnalyze uploads with the local models.
NUXT_AI_PRESETmediumPresetlow, medium or high.
NUXT_AI_QUEUE_CONCURRENCY1Parallel jobs1 to 8 files analyzed at the same time.
NUXT_AI_INFERENCE_THREADS2Threads per job1 to 64 CPU threads per job.
NUXT_AI_JOB_LEASE_MS120000Job heartbeat timeout (ms)At least 60000.

Logs and telemetry

VariableDefaultInstance settingDescription
NUXT_LOG_LEVEL2Log level0 nothing, 1 important actions, 2 everything. See Logs.
NUXT_TELEMETRY_ENABLEDtrueAnonymous telemetrySee Telemetry.
NUXT_TELEMETRY_URLhttps://fileship-telemetry.hanzy.devnoneWhere reports go. Development builds only send reports when it is set.

Updater

VariableDefaultDescription
NUXT_UPDATER_URLhttp://updater-agent:3001How the dashboard reaches the updater agent. Compose sets it.
NUXT_UPDATER_SECRETdev-secret-tokenShared secret. Compose sets it to SECRET_TOKEN from .env.

Build time

These are read when Fileship is built, so they only matter when you build it yourself (without Docker, or with docker-compose.dev.yml). The published image uses the defaults.

VariableDefaultDescription
ENABLE_PWAtrueThe web app manifest, the service worker and the Android share target.
DELETE_EXPIRED_CRON*/5 * * * *When expired files, links and email tokens are deleted.
GENERATE_STATS_CRON*/30 * * * *When the statistics are refreshed.

Updater agent

The updater-agent service in docker-compose.yml reads its own variables:

VariableDefaultDescription
SECRET_TOKENnone, requiredThe secret from .env. The dashboard sends it with every request.
PORT3001Port the agent listens on inside the Docker network.
AUTOUPDATER_ENABLEDofftrue turns on scheduled updates. Compose sets true.
AUTOUPDATER_CRON0 3 * * *When scheduled updates run, in the agent's time zone.
TZUTCTime zone for AUTOUPDATER_CRON, for example Europe/Istanbul.
COMPOSE_FILEdocker-compose.ymlThe Compose file the agent runs, relative to the mounted project folder.
FILESHIP_URLhttp://proxy:3000Where the agent asks Fileship for its version.
DEV_MODEfalseDevelopment mode; never turn it on for a real installation.

See Updating.