Skip to Content
ConfigurationConfig File Reference

Config File Reference

The config file provides project-level configuration in a single structured JSON file. It is the recommended way to manage non-secret settings.

File Discovery

SeqDesk searches for config files in the project root (same directory as package.json) in this order:

  1. seqdesk.config.json (recommended)
  2. .seqdeskrc
  3. .seqdeskrc.json

The first file found is used. If no config file exists, only environment variables, database settings, and built-in defaults apply.

Complete Structure

{ "site": { "name": "My Sequencing Facility", "dataBasePath": "/mnt/sequencing/data", "contactEmail": "facility@example.com" }, "pipelines": { "enabled": true, "execution": { "mode": "local", "runDirectory": "./pipeline_runs", "conda": { "enabled": true, "path": "/opt/conda", "environment": "seqdesk-pipelines" }, "slurm": { "enabled": false, "queue": "default", "cores": 4, "memory": "16GB", "timeLimit": 24, "options": "" } }, "mag": { "enabled": true, "version": "3.4.0", "stubMode": false, "skipProkka": true, "skipConcoct": true } }, "ena": { "testMode": true, "username": "", "password": "", "centerName": "" }, "sequencingFiles": { "extensions": [".fastq.gz", ".fq.gz", ".fastq", ".fq"], "scanDepth": 2, "allowSingleEnd": true, "ignorePatterns": ["**/tmp/**", "**/undetermined/**"] }, "auth": { "allowRegistration": true, "requireEmailVerification": false, "sessionTimeout": 24 }, "runtime": { "databaseUrl": "postgresql://seqdesk:replace-with-password@127.0.0.1:5432/seqdesk?schema=public", "directUrl": "postgresql://seqdesk:replace-with-password@127.0.0.1:5432/seqdesk?schema=public", "nextAuthUrl": "http://localhost:3000", "nextAuthSecret": "your-secret-here" } }

Section Reference

site — Facility Information

KeyTypeDefaultDescription
namestring"SeqDesk"Display name shown in the UI
dataBasePathstring"./data"Base directory for sequencing data
contactEmailstringContact email shown to researchers

pipelines — Pipeline Configuration

KeyTypeDefaultDescription
enabledbooleanfalseMaster switch for pipeline features

pipelines.execution — Execution Settings

KeyTypeDefaultDescription
mode"local" | "slurm" | "kubernetes""local"Where pipelines run
runDirectorystring"./pipeline_runs"Output directory

pipelines.execution.conda — Conda Settings

KeyTypeDefaultDescription
enabledbooleanfalseUse Conda for dependencies
pathstring"/opt/conda"Conda installation path
environmentstringEnvironment name

pipelines.execution.slurm — SLURM Settings

KeyTypeDefaultDescription
enabledbooleanfalseSubmit jobs to SLURM
queuestring"default"Partition/queue name
coresinteger4CPUs per job
memorystring"16GB"Memory per job
timeLimitinteger24Time limit (hours)
optionsstring""Additional SLURM options

pipelines.mag — MAG Pipeline

KeyTypeDefaultDescription
enabledbooleantrueEnable nf-core/mag
versionstring"3.4.0"Pipeline version
stubModebooleanfalseTest mode (no real analysis)
skipProkkabooleantrueSkip Prokka annotation
skipConcoctbooleantrueSkip CONCOCT binning

ena — ENA Submission

KeyTypeDefaultDescription
testModebooleantrueUse test server
usernamestringWebin username
passwordstringWebin password
centerNamestring""Submission center name

Avoid storing ENA credentials in the config file. Use environment variables (SEQDESK_ENA_USERNAME, SEQDESK_ENA_PASSWORD) or the Admin UI instead.

sequencingFiles — File Discovery

KeyTypeDefaultDescription
extensionsstring[][".fastq.gz", ".fq.gz", ".fastq", ".fq"]Allowed file extensions
scanDepthinteger2Directory scan depth (1–10)
allowSingleEndbooleantrueAllow single-end reads
ignorePatternsstring[]["**/tmp/**", "**/undetermined/**"]Glob patterns to skip

auth — Authentication

KeyTypeDefaultDescription
allowRegistrationbooleantruePublic registration enabled
requireEmailVerificationbooleanfalseRequire email verification
sessionTimeoutinteger24Session timeout (hours)

runtime — Application Runtime

These values are applied to process.env at startup if the corresponding environment variable is not already set.

KeyMaps ToDescription
databaseUrlDATABASE_URLPostgreSQL runtime connection string
directUrlDIRECT_URLDirect PostgreSQL connection for Prisma migrations
nextAuthUrlNEXTAUTH_URLNextAuth.js callback URL
nextAuthSecretNEXTAUTH_SECRETSession signing secret
updateServerSEQDESK_UPDATE_SERVERUpdate server URL

Validation

The config system validates:

  • The file must be valid JSON
  • site.dataBasePath must be a string
  • pipelines.execution.mode must be local, slurm, or kubernetes
  • ena.testMode must be a boolean
  • sequencingFiles.scanDepth must be an integer between 1 and 10

Invalid values are logged as warnings and the corresponding default is used instead.