Skip to Content
ConfigurationEnvironment Variables

Environment Variables

All SeqDesk environment variables use the SEQDESK_ prefix. They have the highest priority in the configuration resolution order, overriding config file and database values.

Value Parsing

Environment variables are parsed according to their target type:

  • Booleans"true" / "false" (case-insensitive)
  • Numbers — parsed as integers for fields like scanDepth and cores
  • Arrays — comma-separated values, e.g. ".fastq.gz,.fq.gz,.fastq,.fq"
  • Strings — all other values

Site Settings

VariableConfig PathTypeDefaultDescription
SEQDESK_SITE_NAMEsite.namestring"SeqDesk"Display name of the facility
SEQDESK_DATA_PATHsite.dataBasePathstring"./data"Base path for sequencing data storage
SEQDESK_CONTACT_EMAILsite.contactEmailstringFacility contact email address

Pipeline Settings

VariableConfig PathTypeDefaultDescription
SEQDESK_PIPELINES_ENABLEDpipelines.enabledbooleanfalseMaster switch for all pipeline features
SEQDESK_PIPELINE_DATABASE_DIRpipelines.databaseDirectorystring""Shared root directory for large pipeline database assets
SEQDESK_PIPELINE_RUN_DIRpipelines.execution.runDirectorystring"./pipeline_runs"Output directory for pipeline runs
SEQDESK_PIPELINE_MODEpipelines.execution.modeenum"local"Supported execution mode: local or slurm

kubernetes may still be accepted by the low-level configuration parser for compatibility with older files, but SeqDesk has no supported Kubernetes execution backend. Use local or slurm.

Conda

VariableConfig PathTypeDefaultDescription
SEQDESK_CONDA_PATHpipelines.execution.conda.pathstring"/opt/conda"Path to Conda installation
SEQDESK_CONDA_ENVpipelines.execution.conda.environmentstringConda environment name

Pipeline execution is Conda-only. SeqDesk always sets its pipeline runtime mode to Conda and adds the conda Nextflow profile when needed.

SLURM

VariableConfig PathTypeDefaultDescription
SEQDESK_SLURM_ENABLEDpipelines.execution.slurm.enabledbooleanfalseEnable SLURM job submission
SEQDESK_SLURM_QUEUEpipelines.execution.slurm.queuestring"cpu"SLURM partition/queue name
SEQDESK_SLURM_CORESpipelines.execution.slurm.coresinteger4CPU cores per job
SEQDESK_SLURM_MEMORYpipelines.execution.slurm.memorystring"64GB"Memory per job
SEQDESK_SLURM_TIMEpipelines.execution.slurm.timeLimitinteger12Time limit in hours

MAG Pipeline

VariableConfig PathTypeDefaultDescription
SEQDESK_MAG_ENABLEDpipelines.mag.enabledbooleantrueEnable nf-core/mag pipeline
SEQDESK_MAG_VERSIONpipelines.mag.versionstring"3.4.0"nf-core/mag pipeline version
SEQDESK_MAG_STUBpipelines.mag.stubModebooleanfalseUse stub mode (test mode, no real analysis)

ENA Submission

VariableConfig PathTypeDefaultDescription
SEQDESK_ENA_TEST_MODEena.testModebooleantrueUse ENA test server instead of production
SEQDESK_ENA_USERNAMEena.usernamestringWebin account username
SEQDESK_ENA_PASSWORDena.passwordstringWebin account password
SEQDESK_ENA_CENTERena.centerNamestring""Submission center name
SEQDESK_ENA_BROKER_ACCOUNTena.brokerAccountbooleanfalseWebin account has ENA broker permissions

Always set ENA credentials through environment variables or the Admin UI — never commit them to a config file.

Sequencing Files

VariableConfig PathTypeDefaultDescription
SEQDESK_FILES_EXTENSIONSsequencingFiles.extensionsarray".fastq.gz,.fq.gz,.fastq,.fq"Allowed file extensions (comma-separated)
SEQDESK_FILES_SCAN_DEPTHsequencingFiles.scanDepthinteger2Directory scan depth (1–10)

Authentication

VariableConfig PathTypeDefaultDescription
SEQDESK_AUTH_REGISTRATIONauth.allowRegistrationbooleantrueAllow public user registration

Accepted Compatibility Variables (Unsupported)

The configuration loader still recognizes these names so older configuration files and deployment manifests continue to parse. They are not functional controls in the current runtime:

VariableAccepted Config PathActual Runtime Behavior
SEQDESK_CONDA_ENABLEDpipelines.execution.conda.enabledIgnored. Pipeline runtime mode is always Conda.
SEQDESK_FILES_SINGLE_ENDsequencingFiles.allowSingleEndIgnored. allowSingleEnd is always forced to true.
SEQDESK_SESSION_TIMEOUTauth.sessionTimeoutParsed into resolved configuration, but the authentication runtime does not enforce this timeout.

Do not use these variables to express an operational requirement. In particular, there is currently no supported switch to disable Conda execution, reject all single-end reads, or set the authentication session lifetime.

Runtime Variables

These standard environment variables are used by the application runtime. They can also be set in the runtime section of the config file — if not already present as environment variables, the config file values are applied to process.env at startup.

VariableConfig PathDescription
DATABASE_URLruntime.databaseUrlPostgreSQL runtime connection string
DIRECT_URLruntime.directUrlDirect PostgreSQL connection for Prisma migrations
NEXTAUTH_URLruntime.nextAuthUrlNextAuth.js callback URL (installed default: http://localhost:8000)
NEXTAUTH_SECRETruntime.nextAuthSecretSession signing secret (generate with openssl rand -base64 32)
SEQDESK_UPDATE_SERVERruntime.updateServerUpdate server URL (default: https://seqdesk.org)

SeqDesk.com Admin Variables

These variables are used by the hosted SeqDesk.com admin service, not by an installed SeqDesk runtime. Configure them on the SeqDesk.com deployment when using install-profile administration features.

VariableRequiredDefaultDescription
NEON_API_KEYFor hosted Neon provisioningNeon API key used by the install-profile admin panel to create, test, and delete managed Neon projects
NEON_ORG_IDNoOptional Neon organization id passed when creating projects with a personal API key
NEON_DEFAULT_REGION_IDNoaws-eu-central-1Region id for newly provisioned hosted Neon databases

Telemetry

These map to both the runtime config (telemetry.*) and the install-time heartbeat configuration. See Operational Telemetry for what gets reported.

VariableConfig PathTypeDefaultDescription
SEQDESK_TELEMETRY_ENABLEDtelemetry.enabledbooleanfalseOpt-in anonymous heartbeats
SEQDESK_TELEMETRY_ENDPOINTtelemetry.endpointstringhttps://seqdesk.org/api/telemetry/heartbeatHeartbeat URL
SEQDESK_TELEMETRY_INTERVAL_HOURStelemetry.intervalHoursinteger24Minimum hours between heartbeats

SEQDESK_TELEMETRY_DISABLED=true is a hard kill-switch — it forces telemetry off regardless of the database setting, config file, or SEQDESK_TELEMETRY_ENABLED. It is not part of the standard config resolution; it short-circuits before any other source is consulted.

Notifications

VariableConfig PathTypeDefaultDescription
SEQDESK_NOTIFICATIONS_ENABLEDnotifications.enabledbooleanfalseMaster switch for the hosted email notification relay
SEQDESK_IN_APP_NOTIFICATIONS_ENABLEDnotifications.inApp.enabledbooleantrueMaster switch for the in-app notification panel/channel
SEQDESK_NOTIFICATION_PROVIDERnotifications.providerstring"seqdesk-relay"Notification provider (only seqdesk-relay is supported)
SEQDESK_NOTIFICATION_RELAY_URLnotifications.relayUrlstringhttps://seqdesk.org/api/notifications/relayHosted relay endpoint
SEQDESK_NOTIFICATION_RELAY_TOKENnotifications.relayTokenstringScoped notification relay token (secret)

Set the relay token through this environment variable — never commit it to a config file. It is masked in /api/admin/config/status responses.

Important Installer-only Variables

These variables are consumed by install-dist.sh and the seqdesk launcher before the app starts. They have no effect on a running app — they configure the install flow itself. This is a practical subset, not a generated exhaustive list. See the installer input reference and seqdesk --help for the supported CLI surface.

Target and mode

VariableTypeDefaultDescription
SEQDESK_DIRpath./seqdeskInstallation directory
SEQDESK_VERSIONstringlatestRelease version to install
SEQDESK_YESboolean0Non-interactive mode
SEQDESK_OVERWRITE_EXISTINGboolean0With -y, back up an existing install dir to <dir>.backup.<timestamp> and replace it
SEQDESK_LOGpath/tmp/seqdesk-install-<timestamp>.logInstall log path
SEQDESK_USE_PM2boolean1 to start under PM2; 0 to disable
SEQDESK_APIstringhttps://seqdesk.org/apiAdvanced: override release metadata endpoint

Configuration source

VariableTypeDescription
SEQDESK_CONFIGpath or URLsettings.json file
SEQDESK_ADDITIONAL_SETTINGS_FILEpathLocal JSON overrides applied after SEQDESK_CONFIG
SEQDESK_RECONFIGUREbooleanRe-apply config to an existing install
SEQDESK_RESEED_DBbooleanRun pending Prisma migrations (migrate deploy) and then seed during --reconfigure
SEQDESK_PREPARE_POSTGRESbooleanPrepare local PostgreSQL role/database, then exit

Infrastructure overrides

VariableTypeDescription
SEQDESK_PORTintegerApp port (default 8000)
SEQDESK_DATABASE_URLstringDATABASE_URL
SEQDESK_DATABASE_DIRECT_URLstringDIRECT_URL for Prisma migrations
SEQDESK_NEXTAUTH_URLstringNEXTAUTH_URL
SEQDESK_NEXTAUTH_SECRETstringNEXTAUTH_SECRET
SEQDESK_RUN_DIRpathPipeline run directory override

Secrets

VariableTypeDescription
SEQDESK_ANTHROPIC_API_KEYstringAnthropic API key for AI validation
SEQDESK_ADMIN_SECRETstringRelease publishing admin secret
SEQDESK_BLOB_READ_WRITE_TOKENstringVercel Blob token

Pipeline toggles

VariableTypeDescription
SEQDESK_WITH_PIPELINESboolean1 to install Conda + Nextflow; 0 to skip
SEQDESK_WITH_CONDAbooleanLegacy alias for installing Miniconda
SEQDESK_SKIP_DEPSbooleanDeprecated; ignored in the distribution installer

Pipeline-execution overrides

These let you set runtime pipeline-execution settings at install time without editing a config file. They are written into SiteSettings.extraSettings.pipelineExecution during install.

VariableMaps toDescription
SEQDESK_EXEC_MODEpipelines.execution.modeSupported execution mode written into the config file (local or slurm)
SEQDESK_EXEC_USE_SLURMpipelines.execution.slurm.enabledEnable SLURM submission
SEQDESK_EXEC_SLURM_QUEUEpipelines.execution.slurm.queuePartition/queue name
SEQDESK_EXEC_SLURM_CORESpipelines.execution.slurm.coresCPUs per job
SEQDESK_EXEC_SLURM_MEMORYpipelines.execution.slurm.memoryMemory per job
SEQDESK_EXEC_SLURM_TIME_LIMITpipelines.execution.slurm.timeLimitHours per job
SEQDESK_EXEC_SLURM_OPTIONSpipelines.execution.slurm.optionsExtra sbatch flags
SEQDESK_EXEC_CONDA_PATHpipelines.execution.conda.pathAuthoritative Conda base containing condabin/conda or bin/conda, or a new/nonexistent base where Miniconda may be installed
SEQDESK_EXEC_CONDA_ENVpipelines.execution.conda.environmentConda environment name
SEQDESK_EXEC_NEXTFLOW_PROFILEPipeline runtimeOptional additional Nextflow profile; SeqDesk adds conda automatically
SEQDESK_EXEC_WEBLOG_URLPipeline runtimeNextflow weblog endpoint
SEQDESK_EXEC_WEBLOG_SECRETPipeline runtimeShared secret for weblog requests

When SEQDESK_EXEC_CONDA_PATH is set, it takes precedence over PATH and standard user-prefix discovery. A working existing base is reused. A path that does not exist may be created by the Miniconda installer. An existing path that does not contain a working Conda executable stops with recovery instructions; the installer does not delete it or silently select another location.

The installer may still accept SEQDESK_EXEC_MODE=kubernetes for compatibility, but Kubernetes execution is unsupported. Container profiles such as docker, singularity, apptainer, and podman are rejected when a pipeline starts. SeqDesk supports Conda-based local or SLURM execution.

Private pipeline package (MetaXpath)

VariableAliasDescription
SEQDESK_METAXPATH_PACKAGE_URLMETAXPATH_PACKAGE_URLOptional tarball URL override for the private MetaXpath package
SEQDESK_METAXPATH_KEYMETAXPATH_PACKAGE_TOKENGitHub/package bearer token used to resolve and download the private package
SEQDESK_METAXPATH_SHA256METAXPATH_PACKAGE_SHA256Optional expected tarball checksum override

SEQDESK_METAXPATH_PACKAGE_URL and SEQDESK_METAXPATH_SHA256 are normally left unset: when only a MetaXpath token is provided, the GitHub release asset URL and SHA256 digest are resolved automatically.

Form presets

VariableTypeDescription
SEQDESK_ORDER_FORM_SETTINGSpathJSON exported from Admin > Order Form > Import / Export to apply after seed
SEQDESK_STUDY_FORM_SETTINGSpathJSON exported from Admin > Study Forms > Import / Export to apply after seed

Examples

Set variables in your shell, .env file, or deployment system:

# Site export SEQDESK_SITE_NAME="My Sequencing Facility" export SEQDESK_DATA_PATH="/mnt/sequencing/data" # ENA (use env vars for secrets) export SEQDESK_ENA_USERNAME="Webin-12345" export SEQDESK_ENA_PASSWORD="your-password" export SEQDESK_ENA_TEST_MODE="false" # SLURM cluster export SEQDESK_PIPELINE_MODE="slurm" export SEQDESK_SLURM_ENABLED="true" export SEQDESK_SLURM_QUEUE="bioinformatics" export SEQDESK_SLURM_CORES="16" export SEQDESK_SLURM_MEMORY="64GB" # Install-time form presets export SEQDESK_ORDER_FORM_SETTINGS="/opt/seqdesk-presets/order-form.json" export SEQDESK_STUDY_FORM_SETTINGS="/opt/seqdesk-presets/study-form.json"