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,cores,sessionTimeout - Arrays — comma-separated values, e.g.
".fastq.gz,.fq.gz,.fastq,.fq" - Strings — all other values
Site Settings
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_SITE_NAME | site.name | string | "SeqDesk" | Display name of the facility |
SEQDESK_DATA_PATH | site.dataBasePath | string | "./data" | Base path for sequencing data storage |
SEQDESK_CONTACT_EMAIL | site.contactEmail | string | — | Facility contact email address |
Pipeline Settings
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_PIPELINES_ENABLED | pipelines.enabled | boolean | false | Master switch for all pipeline features |
SEQDESK_PIPELINE_RUN_DIR | pipelines.execution.runDirectory | string | "./pipeline_runs" | Output directory for pipeline runs |
SEQDESK_PIPELINE_MODE | pipelines.execution.mode | enum | "local" | Execution mode: local, slurm, or kubernetes |
Conda
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_CONDA_ENABLED | pipelines.execution.conda.enabled | boolean | false | Use Conda for pipeline dependencies |
SEQDESK_CONDA_PATH | pipelines.execution.conda.path | string | "/opt/conda" | Path to Conda installation |
SEQDESK_CONDA_ENV | pipelines.execution.conda.environment | string | — | Conda environment name |
SLURM
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_SLURM_ENABLED | pipelines.execution.slurm.enabled | boolean | false | Enable SLURM job submission |
SEQDESK_SLURM_QUEUE | pipelines.execution.slurm.queue | string | "default" | SLURM partition/queue name |
SEQDESK_SLURM_CORES | pipelines.execution.slurm.cores | integer | 4 | CPU cores per job |
SEQDESK_SLURM_MEMORY | pipelines.execution.slurm.memory | string | "16GB" | Memory per job |
SEQDESK_SLURM_TIME | pipelines.execution.slurm.timeLimit | integer | 24 | Time limit in hours |
MAG Pipeline
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_MAG_ENABLED | pipelines.mag.enabled | boolean | true | Enable nf-core/mag pipeline |
SEQDESK_MAG_VERSION | pipelines.mag.version | string | "3.4.0" | nf-core/mag pipeline version |
SEQDESK_MAG_STUB | pipelines.mag.stubMode | boolean | false | Use stub mode (test mode, no real analysis) |
ENA Submission
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_ENA_TEST_MODE | ena.testMode | boolean | true | Use ENA test server instead of production |
SEQDESK_ENA_USERNAME | ena.username | string | — | Webin account username |
SEQDESK_ENA_PASSWORD | ena.password | string | — | Webin account password |
SEQDESK_ENA_CENTER | ena.centerName | string | "" | Submission center name |
SEQDESK_ENA_BROKER_ACCOUNT | ena.brokerAccount | boolean | false | Webin 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
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_FILES_EXTENSIONS | sequencingFiles.extensions | array | ".fastq.gz,.fq.gz,.fastq,.fq" | Allowed file extensions (comma-separated) |
SEQDESK_FILES_SCAN_DEPTH | sequencingFiles.scanDepth | integer | 2 | Directory scan depth (1–10) |
SEQDESK_FILES_SINGLE_END | sequencingFiles.allowSingleEnd | boolean | true | Allow single-end reads |
Authentication
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_AUTH_REGISTRATION | auth.allowRegistration | boolean | true | Allow public user registration |
SEQDESK_SESSION_TIMEOUT | auth.sessionTimeout | integer | 24 | Session timeout in hours |
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.
| Variable | Config Path | Description |
|---|---|---|
DATABASE_URL | runtime.databaseUrl | PostgreSQL runtime connection string |
DIRECT_URL | runtime.directUrl | Direct PostgreSQL connection for Prisma migrations |
NEXTAUTH_URL | runtime.nextAuthUrl | NextAuth.js callback URL (e.g. http://localhost:3000) |
NEXTAUTH_SECRET | runtime.nextAuthSecret | Session signing secret (generate with openssl rand -base64 32) |
SEQDESK_UPDATE_SERVER | runtime.updateServer | Update server URL (default: https://seqdesk.com) |
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.
| Variable | Required | Default | Description |
|---|---|---|---|
NEON_API_KEY | For hosted Neon provisioning | — | Neon API key used by the install-profile admin panel to create, test, and delete managed Neon projects |
NEON_ORG_ID | No | — | Optional Neon organization id passed when creating projects with a personal API key |
NEON_DEFAULT_REGION_ID | No | aws-eu-central-1 | Region id for newly provisioned hosted Neon databases |
INSTALL_PROFILE_STORAGE_SECRET | For hosted install profiles | — | Encryption secret for install-profile access codes and encrypted profile secrets |
Telemetry
These map to both the runtime config (telemetry.*) and the install-time
heartbeat configuration. See
Operational Telemetry for what
gets reported.
| Variable | Config Path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_TELEMETRY_ENABLED | telemetry.enabled | boolean | false | Opt-in anonymous heartbeats |
SEQDESK_TELEMETRY_ENDPOINT | telemetry.endpoint | string | https://www.seqdesk.com/api/telemetry/heartbeat | Heartbeat URL |
SEQDESK_TELEMETRY_INTERVAL_HOURS | telemetry.intervalHours | integer | 24 | Minimum hours between heartbeats |
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. Each one matches a CLI flag in the
Full installer flag reference.
Target and mode
| Variable | Type | Default | Description |
|---|---|---|---|
SEQDESK_DIR | path | ./seqdesk | Installation directory |
SEQDESK_VERSION | string | latest | Release version to install |
SEQDESK_YES | boolean | 0 | Non-interactive mode |
SEQDESK_LOG | path | — | Install log path |
SEQDESK_USE_PM2 | boolean | — | 1 to start under PM2; 0 to disable |
SEQDESK_API | string | https://www.seqdesk.com/api | Advanced: override release metadata endpoint |
Configuration source
| Variable | Type | Description |
|---|---|---|
SEQDESK_CONFIG | path or URL | Infrastructure JSON file (mutually exclusive with SEQDESK_PROFILE) |
SEQDESK_PROFILE | string | Hosted install profile id |
SEQDESK_PROFILE_CODE | string | Access code for the hosted install profile |
SEQDESK_PROFILE_REGISTRY_URL | string | Override the registry base URL |
SEQDESK_RECONFIGURE | boolean | Re-apply config to an existing install |
SEQDESK_RESEED_DB | boolean | Force DB push + seed during --reconfigure |
SEQDESK_PREPARE_POSTGRES | boolean | Prepare local PostgreSQL role/database, then exit |
Infrastructure overrides
| Variable | Type | Description |
|---|---|---|
SEQDESK_PORT | integer | App port (default 8000) |
SEQDESK_DATABASE_URL | string | DATABASE_URL |
SEQDESK_DATABASE_DIRECT_URL | string | DIRECT_URL for Prisma migrations |
SEQDESK_NEXTAUTH_URL | string | NEXTAUTH_URL |
SEQDESK_NEXTAUTH_SECRET | string | NEXTAUTH_SECRET |
SEQDESK_RUN_DIR | path | Pipeline run directory override |
Secrets
| Variable | Type | Description |
|---|---|---|
SEQDESK_ANTHROPIC_API_KEY | string | Anthropic API key for AI validation |
SEQDESK_ADMIN_SECRET | string | Release publishing admin secret |
SEQDESK_BLOB_READ_WRITE_TOKEN | string | Vercel Blob token |
Pipeline toggles
| Variable | Type | Description |
|---|---|---|
SEQDESK_WITH_PIPELINES | boolean | 1 to install Conda + Nextflow; 0 to skip |
SEQDESK_WITH_CONDA | boolean | Legacy alias for installing Miniconda |
SEQDESK_SKIP_DEPS | boolean | Deprecated; 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.
| Variable | Maps to | Description |
|---|---|---|
SEQDESK_EXEC_USE_SLURM | pipelines.execution.slurm.enabled | Enable SLURM submission |
SEQDESK_EXEC_SLURM_QUEUE | pipelines.execution.slurm.queue | Partition/queue name |
SEQDESK_EXEC_SLURM_CORES | pipelines.execution.slurm.cores | CPUs per job |
SEQDESK_EXEC_SLURM_MEMORY | pipelines.execution.slurm.memory | Memory per job |
SEQDESK_EXEC_SLURM_TIME_LIMIT | pipelines.execution.slurm.timeLimit | Hours per job |
SEQDESK_EXEC_SLURM_OPTIONS | pipelines.execution.slurm.options | Extra sbatch flags |
SEQDESK_EXEC_CONDA_PATH | pipelines.execution.conda.path | Conda installation path |
SEQDESK_EXEC_CONDA_ENV | pipelines.execution.conda.environment | Conda environment name |
SEQDESK_EXEC_NEXTFLOW_PROFILE | Pipeline runtime | Nextflow profile (conda, docker, singularity, standard) |
SEQDESK_EXEC_WEBLOG_URL | Pipeline runtime | Nextflow weblog endpoint |
SEQDESK_EXEC_WEBLOG_SECRET | Pipeline runtime | Shared secret for weblog requests |
Private pipeline package (MetaXpath)
| Variable | Alias | Description |
|---|---|---|
SEQDESK_METAXPATH_PACKAGE_URL | METAXPATH_PACKAGE_URL | Tarball URL for the private MetaXpath package |
SEQDESK_METAXPATH_KEY | METAXPATH_PACKAGE_TOKEN | Bearer token for the package URL |
SEQDESK_METAXPATH_SHA256 | METAXPATH_PACKAGE_SHA256 | Expected tarball checksum |
Form presets
| Variable | Type | Description |
|---|---|---|
SEQDESK_ORDER_FORM_SETTINGS | path | JSON exported from Admin > Order Form > Import / Export to apply after seed |
SEQDESK_STUDY_FORM_SETTINGS | path | JSON 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"