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:
seqdesk.config.json(recommended).seqdeskrc.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
| Key | Type | Default | Description |
|---|---|---|---|
name | string | "SeqDesk" | Display name shown in the UI |
dataBasePath | string | "./data" | Base directory for sequencing data |
contactEmail | string | — | Contact email shown to researchers |
pipelines — Pipeline Configuration
| Key | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Master switch for pipeline features |
pipelines.execution — Execution Settings
| Key | Type | Default | Description |
|---|---|---|---|
mode | "local" | "slurm" | "kubernetes" | "local" | Where pipelines run |
runDirectory | string | "./pipeline_runs" | Output directory |
pipelines.execution.conda — Conda Settings
| Key | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Use Conda for dependencies |
path | string | "/opt/conda" | Conda installation path |
environment | string | — | Environment name |
pipelines.execution.slurm — SLURM Settings
| Key | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Submit jobs to SLURM |
queue | string | "default" | Partition/queue name |
cores | integer | 4 | CPUs per job |
memory | string | "16GB" | Memory per job |
timeLimit | integer | 24 | Time limit (hours) |
options | string | "" | Additional SLURM options |
pipelines.mag — MAG Pipeline
| Key | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Enable nf-core/mag |
version | string | "3.4.0" | Pipeline version |
stubMode | boolean | false | Test mode (no real analysis) |
skipProkka | boolean | true | Skip Prokka annotation |
skipConcoct | boolean | true | Skip CONCOCT binning |
ena — ENA Submission
| Key | Type | Default | Description |
|---|---|---|---|
testMode | boolean | true | Use test server |
username | string | — | Webin username |
password | string | — | Webin password |
centerName | string | "" | 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
| Key | Type | Default | Description |
|---|---|---|---|
extensions | string[] | [".fastq.gz", ".fq.gz", ".fastq", ".fq"] | Allowed file extensions |
scanDepth | integer | 2 | Directory scan depth (1–10) |
allowSingleEnd | boolean | true | Allow single-end reads |
ignorePatterns | string[] | ["**/tmp/**", "**/undetermined/**"] | Glob patterns to skip |
auth — Authentication
| Key | Type | Default | Description |
|---|---|---|---|
allowRegistration | boolean | true | Public registration enabled |
requireEmailVerification | boolean | false | Require email verification |
sessionTimeout | integer | 24 | Session timeout (hours) |
runtime — Application Runtime
These values are applied to process.env at startup if the corresponding
environment variable is not already set.
| Key | Maps To | Description |
|---|---|---|
databaseUrl | DATABASE_URL | PostgreSQL runtime connection string |
directUrl | DIRECT_URL | Direct PostgreSQL connection for Prisma migrations |
nextAuthUrl | NEXTAUTH_URL | NextAuth.js callback URL |
nextAuthSecret | NEXTAUTH_SECRET | Session signing secret |
updateServer | SEQDESK_UPDATE_SERVER | Update server URL |
Validation
The config system validates:
- The file must be valid JSON
site.dataBasePathmust be a stringpipelines.execution.modemust belocal,slurm, orkubernetesena.testModemust be a booleansequencingFiles.scanDepthmust be an integer between 1 and 10
Invalid values are logged as warnings and the corresponding default is used instead.