Environment Variables
Environment variables come in three quite different families, and confusing them is the most common source of “I set the variable and nothing happened”:
- Configuration mappings — recognised by the configuration loader and merged into the resolved configuration at the highest priority. Whether that changes behaviour depends on whether the feature reads the resolved configuration; see Configuration Sources & Priority.
- Application runtime switches — read directly by feature code with
process.env. These always take effect, and none of them appear in/api/admin/config/status. - Installer inputs — consumed by
install-dist.shand theseqdesklauncher before the app starts. They have no effect on a running app.
Value parsing (family 1 only)
Variables in the configuration-mapping family are parsed by target type:
- Booleans — the literal strings
"true"/"false", case-insensitive. Any other value is kept verbatim as a string, so writeSEQDESK_SLURM_ENABLED=true, neverSEQDESK_SLURM_ENABLED=1. - Numbers — parsed as integers for paths containing
slurm.cores,slurm.timeLimit,scanDepth,sessionTimeout, orintervalHours. - Arrays — comma-separated and trimmed, e.g.
".fastq.gz,.fq.gz,.fastq,.fq". This applies toextensionsandignorePatterns. - Strings — everything else.
1. Configuration mappings
Site
| Variable | Config path | Type | Default | Effect |
|---|---|---|---|---|
SEQDESK_SITE_NAME | site.name | string | "SeqDesk" | Reported in config status; the UI reads SiteSettings.siteName |
SEQDESK_DATA_PATH | site.dataBasePath | string | "./data" | Live — overrides the admin-set data base path |
SEQDESK_CONTACT_EMAIL | site.contactEmail | string | — | Reported in config status; the UI reads SiteSettings.contactEmail |
Pipelines
Pipeline execution reads the resolved configuration and lets env/file values
override the admin-saved settings, so the execution variables are live.
| Variable | Config path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_PIPELINE_DATABASE_DIR | pipelines.databaseDirectory | string | "" | Live. Shared root directory for large pipeline database assets |
SEQDESK_PIPELINE_RUN_DIR | pipelines.execution.runDirectory | string | "./pipeline_runs" | Live. Output directory for pipeline runs |
SEQDESK_PIPELINE_MODE | pipelines.execution.mode | enum | "local" | Live. Execution mode: local or slurm |
SEQDESK_PIPELINES_ENABLED | pipelines.enabled | boolean | false | Install-time input. Which pipelines a running app offers comes from the PipelineConfig rows under Settings → Pipelines, not from this value. |
kubernetes is still accepted by the low-level configuration parser
for compatibility with older files, but SeqDesk has no Kubernetes execution
backend, and the executor treats it exactly like local. Use
local or slurm.
Conda
| Variable | Config path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_CONDA_PATH | pipelines.execution.conda.path | string | "/opt/conda" | Path to the Conda installation |
SEQDESK_CONDA_ENV | pipelines.execution.conda.environment | string | "seqdesk-pipelines" | Environment name, or an absolute environment prefix |
SEQDESK_CONDA_CACHE_DIR | pipelines.execution.conda.cacheDir | string | "" | Shared Nextflow conda cache directory; per-process environments are built once and reused across runs |
Pipeline execution is Conda-only. SeqDesk always sets its pipeline runtime mode
to Conda and adds the conda Nextflow profile when needed.
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 | "cpu" | 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 | "64GB" | Memory per job |
SEQDESK_SLURM_TIME | pipelines.execution.slurm.timeLimit | integer | 12 | Time limit in hours |
There is no SEQDESK_SLURM_OPTIONS variable, and
pipelines.execution.slurm.options in a config file is discarded by
the executor. Set extra sbatch flags in
Settings → Infrastructure → Pipeline Runtime, or at install
time with SEQDESK_EXEC_SLURM_OPTIONS.
MAG pipeline
Install-time inputs. On a running install these live in the PipelineConfig row
for mag and are edited under Settings → Pipelines or per run.
| Variable | Config path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_MAG_ENABLED | pipelines.mag.enabled | boolean | true | Enable nf-core/mag |
SEQDESK_MAG_VERSION | pipelines.mag.version | string | "3.4.0" | nf-core/mag pipeline version |
SEQDESK_MAG_STUB | pipelines.mag.stubMode | boolean | false | Stub mode (fast, no real analysis) |
Telemetry
| Variable | Config path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_TELEMETRY_ENABLED | telemetry.enabled | boolean | false | Opt-in anonymous heartbeats |
SEQDESK_TELEMETRY_ENDPOINT | telemetry.endpoint | string | https://seqdesk.org/api/telemetry/heartbeat | Heartbeat URL |
SEQDESK_TELEMETRY_INTERVAL_HOURS | telemetry.intervalHours | integer | 24 | Minimum hours between heartbeats |
Telemetry inverts the usual priority: a value saved in the Admin UI wins over
SEQDESK_TELEMETRY_ENABLED and over the config file, so an admin can
always switch the heartbeat off from the UI. Above everything sits
SEQDESK_TELEMETRY_DISABLED=true, a hard kill switch that
short-circuits before any source is consulted.
Notifications
| Variable | Config path | Type | Default | Description |
|---|---|---|---|---|
SEQDESK_NOTIFICATIONS_ENABLED | notifications.enabled | boolean | false | Master switch for the hosted email notification relay |
SEQDESK_IN_APP_NOTIFICATIONS_ENABLED | notifications.inApp.enabled | boolean | true | Master switch for the in-app notification panel/channel |
SEQDESK_NOTIFICATION_PROVIDER | notifications.provider | string | "seqdesk-relay" | Notification provider (only seqdesk-relay is supported) |
SEQDESK_NOTIFICATION_RELAY_URL | notifications.relayUrl | string | https://seqdesk.org/api/notifications/relay | Hosted relay endpoint |
SEQDESK_NOTIFICATION_RELAY_TOKEN | notifications.relayToken | string | — | Scoped notification relay token (secret) |
Email notifications additionally require the Email Notifications module to be
enabled under Settings → Modules. Set the relay token through this variable —
it is masked in /api/admin/config/status, and the Admin UI deliberately refuses
to write it to the database.
Mapped, but the feature reads the database
These variables are recognised by the configuration loader and will show up in
/api/admin/config/status with source env — but the corresponding feature
reads the SiteSettings row, so setting them on a running server does not change
behaviour. They are useful as install-time inputs (the installer and hosted
profiles write them into the database) and as a way to see what a config file
would produce.
| Variable | Config path | What the feature actually reads |
|---|---|---|
SEQDESK_ENA_TEST_MODE | ena.testMode | SiteSettings.enaTestMode |
SEQDESK_ENA_USERNAME | ena.username | SiteSettings.enaUsername |
SEQDESK_ENA_PASSWORD | ena.password | SiteSettings.enaPassword (encrypted) |
SEQDESK_ENA_CENTER | ena.centerName | SiteSettings.extraSettings.ena.centerName |
SEQDESK_ENA_BROKER_ACCOUNT | ena.brokerAccount | SiteSettings.extraSettings.ena.brokerAccount |
SEQDESK_FILES_EXTENSIONS | sequencingFiles.extensions | SiteSettings.extraSettings.sequencingFiles.allowedExtensions |
SEQDESK_FILES_SCAN_DEPTH | sequencingFiles.scanDepth | SiteSettings.extraSettings.sequencingFiles.scanDepth |
SEQDESK_AUTH_REGISTRATION | auth.allowRegistration | SiteSettings.extraSettings.auth.allowRegistration |
To change any of these on a running install, use the Admin UI — see ENA Credentials, Data Storage, and Runtime Settings.
Accepted compatibility variables (unsupported)
The configuration loader still recognises these names so older configuration files and deployment manifests continue to parse. They are not functional controls:
| Variable | Accepted config path | Actual runtime behaviour |
|---|---|---|
SEQDESK_CONDA_ENABLED | pipelines.execution.conda.enabled | Ignored. Pipeline runtime mode is always Conda. |
SEQDESK_FILES_SINGLE_END | sequencingFiles.allowSingleEnd | Ignored. allowSingleEnd is always forced to true. |
SEQDESK_SESSION_TIMEOUT | auth.sessionTimeout | Parsed into the resolved configuration, but the authentication runtime does not enforce a timeout. |
There is currently no supported switch to disable Conda execution, reject all single-end reads, or set the authentication session lifetime. Do not use these variables to express an operational requirement.
2. Application runtime variables
These are read directly by feature code. They are not part of the configuration
merge and do not appear in /api/admin/config/status.
Process environment
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL runtime connection string. Required. |
DIRECT_URL | Direct PostgreSQL connection for Prisma migrations. If DATABASE_URL is set from the environment and this is not, it is derived from DATABASE_URL. |
NEXTAUTH_URL | NextAuth.js callback URL (installed default: http://localhost:8000) |
NEXTAUTH_SECRET | Session signing secret. Generate with openssl rand -base64 32. |
ANTHROPIC_API_KEY | API key for the optional field-validation routes |
ADMIN_SECRET | Release publishing admin secret used by scripts |
BLOB_READ_WRITE_TOKEN | Blob token used by release publishing scripts |
Each of these can also be supplied from the runtime section of settings.json.
Those values are applied to process.env at startup only if the variable is
not already set, so the environment always wins, and any change needs a
restart.
Secrets at rest
| Variable | Default | Description |
|---|---|---|
SEQDESK_ENCRYPTION_KEY | falls back to NEXTAUTH_SECRET, then AUTH_SECRET | Key material for encrypting sensitive settings stored in the database (currently the ENA Webin password). |
Values are stored as enc:v1:<base64> with AES-256-GCM and an HKDF-derived key.
Anything without that prefix is treated as legacy plaintext and re-encrypted the
next time it is saved. Set SEQDESK_ENCRYPTION_KEY explicitly if you ever expect
to rotate NEXTAUTH_SECRET: rotating the auth secret without a dedicated
encryption key makes previously encrypted values undecryptable.
Updates
| Variable | Default | Description |
|---|---|---|
SEQDESK_UPDATE_SERVER | https://seqdesk.org | Update server used by the check and install flow |
SEQDESK_ALLOW_INSECURE_UPDATE | unset | true permits an http:// release download URL. Downloads are otherwise https-only so a release cannot be substituted in transit. Use only for an internal mirror on a trusted link. |
See Automatic Updates.
Pipelines and execution
| Variable | Description |
|---|---|
SEQDESK_PIPELINES_DIR | Absolute path to the pipeline packages directory. Point it at shared storage when SLURM compute nodes do not share the app’s filesystem; otherwise SeqDesk looks for pipelines/ beside the app. |
SEQDESK_SLURM_INLINE_EXECUTOR | 1 or true wraps a whole run in a single sbatch allocation and runs its processes with Nextflow’s local executor inside it, instead of submitting one job per process. Useful when compute nodes cannot reach the app for weblog callbacks. |
SEQDESK_DISABLE_WORKER_AUTOSTART | 1 stops the background workers from starting with the server. |
Registries and integrations
| Variable | Default | Description |
|---|---|---|
SEQDESK_MIXS_SYNC_URL | https://seqdesk.org/api/registry/mixs | Remote MIxS checklist registry |
SEQDESK_API_URL | https://seqdesk.org/api/registry/sequencing-tech | Remote sequencing-technology registry endpoint |
SEQDESK_USE_LOCAL_TECH_DEFAULTS | unset | true uses the bundled sequencing-technology defaults instead of the remote registry |
SEQDESK_PROFILE_REGISTRY_URL | https://seqdesk.org/api/install-profiles | Hosted install-profile registry used by in-app profile reload |
SEQDESK_PROFILE_REGISTRY_ALLOWLIST | unset | Comma-separated allowlist of registry origins accepted for profile reload |
Surface and development
| Variable | Description |
|---|---|
SEQDESK_APP_SURFACE / NEXT_PUBLIC_SEQDESK_APP_SURFACE | lab (default) or workbench — selects which application surface is served |
SEQDESK_ENABLE_PUBLIC_DEMO / NEXT_PUBLIC_SEQDESK_ENABLE_PUBLIC_DEMO | true enables public demo mode. See Demo Mode. |
SEQDESK_LOCAL_TESTDATA_PATH | Development only (macOS, NODE_ENV=development): a directory used as an implicit data base path when nothing else is configured |
3. Installer variables
These 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 an exhaustive list; see the
unattended installation guide and
seqdesk --help for the supported CLI surface.
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_INTERACTIVE | boolean | 0 | Guided setup wizard (database choice, then admin/researcher accounts). Ignored when -y, --config, or --profile is used |
SEQDESK_OVERWRITE_EXISTING | boolean | 0 | With -y, back up an existing install dir to <dir>.backup.<timestamp> and replace it |
SEQDESK_LOG | path | an unpredictable mktemp name under $TMPDIR | Install log path — see below |
SEQDESK_VERBOSE | boolean | 0 | Promote the diagnostic detail that normally goes only to the install log onto the terminal (same as --verbose) |
SEQDESK_USE_PM2 | boolean | — | 1 to start under PM2; 0 to disable |
SEQDESK_RUN_DOCTOR | boolean | 0 | Run seqdesk doctor after the install when the CLI is available |
SEQDESK_API | string | https://seqdesk.org/api | Advanced: override the release metadata endpoint |
The default install log is created with mktemp under
$TMPDIR (usually /tmp) as
seqdesk-install-<YYYYMMDD-HHMMSS>-XXXXXX.log, under
umask 077 and then chmod 600. The name is
deliberately unpredictable and the file is private from the moment it exists,
which matters on a shared login node. An explicit SEQDESK_LOG is
honoured verbatim and created under the same restrictive umask; if permissions
cannot be secured, logging is disabled rather than left world-readable. The
final path is printed as Log: in the install summary.
Generated bootstrap passwords are printed only to the terminal, never to the install log. Redirecting the installer’s output to a file does not capture them.
Download integrity and network
Added so a slow or hostile network fails loudly instead of hanging, and so a regulated site can refuse an unverified package.
| Variable | Type | Default | Description |
|---|---|---|---|
SEQDESK_REQUIRE_CHECKSUM | boolean | unset | Refuse to install a release whose metadata publishes no checksum. Without it the installer warns loudly, reports RELEASE_INTEGRITY as NOT VERIFIED, and continues. |
SEQDESK_CURL_CONNECT_TIMEOUT | seconds | 10 | Per-attempt connect timeout for every download |
SEQDESK_CURL_MAX_TIME | seconds | 120 | Per-attempt ceiling for small fetches (release metadata, hosted profiles, config files) |
SEQDESK_CURL_DOWNLOAD_MAX_TIME | seconds | 1800 | Per-attempt ceiling for the release tarball. At the default this aborts a ~100 MB download below roughly 85 KB/s. |
SEQDESK_CURL_RETRIES | integer | 2 | Retries for transient download failures |
A checksum mismatch is always fatal and is never overridable. The Miniconda installer is fetched with no time ceiling, because it is large and often slow from institutional networks.
Miniconda source
| Variable | Default | Description |
|---|---|---|
SEQDESK_MINICONDA_BASE_URL | https://repo.anaconda.com/miniconda | Base URL the Miniconda installer is fetched from — point it at an internal mirror |
SEQDESK_MINICONDA_INSTALLER | unset | Exact installer filename, e.g. Miniconda3-py312_24.9.2-0-Linux-x86_64.sh. Wins over platform detection. |
The default is the rolling -latest- build, so two installs a month apart can
get different Conda versions. Pin both variables when you need a reproducible
environment for a methods section or a validated deployment.
Configuration source
| Variable | Type | Description |
|---|---|---|
SEQDESK_CONFIG | path or URL | settings.json file to apply |
SEQDESK_PROFILE | string | Hosted install-profile id to fetch and apply (legacy alias: SEQDESK_SETTING) |
SEQDESK_PROFILE_CODE | string | Access code for a protected hosted install profile (legacy alias: SEQDESK_KEY) |
SEQDESK_PROFILE_REGISTRY_URL | URL | Registry the profile is fetched from (default https://seqdesk.org/api/install-profiles) |
SEQDESK_ADDITIONAL_SETTINGS_FILE | path | Local JSON overrides applied after SEQDESK_CONFIG |
SEQDESK_RECONFIGURE | boolean | Re-apply configuration to an existing install. Skips the release download entirely — it is not an update. |
SEQDESK_RESEED_DB | boolean | During --reconfigure, run prisma migrate deploy and then the seed. Without it, reconfigure leaves the database untouched. |
SEQDESK_PREPARE_POSTGRES | boolean | Prepare a local PostgreSQL role/database, then exit |
Infrastructure overrides
| Variable | Type | Description |
|---|---|---|
SEQDESK_PORT | integer | App port (default 8000) |
SEQDESK_BIND_HOST | string | Interface the standalone server binds to. Default 0.0.0.0 — every interface. Set 127.0.0.1 for a local-only evaluation. The value is persisted in <dir>/.seqdesk-bind-host (mode 600) and reapplied by <dir>/start.sh. |
SEQDESK_DATABASE_URL | string | DATABASE_URL |
SEQDESK_DATABASE_DIRECT_URL | string | DIRECT_URL for Prisma migrations |
SEQDESK_NEXTAUTH_URL | string | NEXTAUTH_URL; also the Browser URL the installer prints at the end |
SEQDESK_NEXTAUTH_SECRET | string | NEXTAUTH_SECRET |
SEQDESK_PG_HOME | path | Root of the PostgreSQL cluster SeqDesk creates when no reusable server exists (default ~/.seqdesk/postgres). Its socket/ subdirectory must stay within 85 characters, so keep this path short. |
SEQDESK_DATA_PATH | path | Sequencing data base path override |
SEQDESK_RUN_DIR | path | Pipeline run directory override |
SEQDESK_PIPELINE_DATABASE_DIR | path | Shared directory for large pipeline database assets |
Secrets
| Variable | Type | Description |
|---|---|---|
SEQDESK_ANTHROPIC_API_KEY | string | Anthropic API key for the optional field-validation routes |
SEQDESK_ADMIN_SECRET | string | Release publishing admin secret |
SEQDESK_BLOB_READ_WRITE_TOKEN | string | Blob token for release publishing |
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 set runtime pipeline-execution settings at install time without editing a
config file. They are written into
SiteSettings.extraSettings.pipelineExecution during install, which is the same
place Settings → Infrastructure → Pipeline Runtime writes.
| Variable | Maps to | Description |
|---|---|---|
SEQDESK_EXEC_USE_SLURM | pipelineExecution.useSlurm | Enable SLURM submission |
SEQDESK_EXEC_SLURM_QUEUE | pipelineExecution.slurmQueue | Partition/queue name |
SEQDESK_EXEC_SLURM_CORES | pipelineExecution.slurmCores | CPUs per job |
SEQDESK_EXEC_SLURM_MEMORY | pipelineExecution.slurmMemory | Memory per job |
SEQDESK_EXEC_SLURM_TIME_LIMIT | pipelineExecution.slurmTimeLimit | Hours per job |
SEQDESK_EXEC_SLURM_OPTIONS | pipelineExecution.slurmOptions | Extra sbatch flags — the only supported way to set these |
SEQDESK_EXEC_CONDA_PATH | pipelineExecution.condaPath | Authoritative Conda base containing condabin/conda or bin/conda, or a new/nonexistent base where Miniconda may be installed |
SEQDESK_EXEC_CONDA_ENV | pipelineExecution.condaEnv | Conda environment name |
SEQDESK_EXEC_NEXTFLOW_PROFILE | pipelineExecution.nextflowProfile | Optional additional Nextflow profile; SeqDesk adds conda automatically |
SEQDESK_EXEC_WEBLOG_URL | pipelineExecution.weblogUrl | Nextflow weblog endpoint |
SEQDESK_EXEC_WEBLOG_SECRET | pipelineExecution.weblogSecret | Shared 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 the install with recovery
instructions; the installer does not delete it or silently select another
location.
There is no SEQDESK_EXEC_MODE variable in the distribution
installer. Choose the execution target with
SEQDESK_EXEC_USE_SLURM at install time, or
SEQDESK_PIPELINE_MODE / pipelines.execution.mode for
the running application. 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)
| Variable | Alias | Description |
|---|---|---|
SEQDESK_METAXPATH_PACKAGE_URL | METAXPATH_PACKAGE_URL | Optional tarball URL override for the private MetaXpath package |
SEQDESK_METAXPATH_KEY | METAXPATH_PACKAGE_TOKEN | GitHub/package bearer token used to resolve and download the private package |
SEQDESK_METAXPATH_SHA256 | METAXPATH_PACKAGE_SHA256 | Optional expected tarball checksum override |
SEQDESK_METAXPATH_OPTIONAL | — | 1 or true downgrades a failed MetaXpath install from fatal to a warning; the rest of the profile still applies |
SEQDESK_METAXPATH_PACKAGE_URL and SEQDESK_METAXPATH_SHA256 are normally left
unset: when only a MetaXpath token is provided, the release asset URL and SHA-256
digest are resolved automatically.
Form presets
| Variable | Type | Description |
|---|---|---|
SEQDESK_ORDER_FORM_SETTINGS | path | JSON exported from Settings → Sequencing Order Form → Import / Export, applied after the seed |
SEQDESK_STUDY_FORM_SETTINGS | path | JSON exported from Settings → Study Forms → Import / Export, applied after the seed |
These are installer inputs only. Settings → Infrastructure → Import settings.json deliberately ignores them and points you at the form import screens instead.
SeqDesk.com admin variables
These 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 |
Examples
A SLURM facility, secrets in the unit file
# Site
export SEQDESK_SITE_NAME="My Sequencing Facility"
export SEQDESK_DATA_PATH="/mnt/sequencing/data"
# Pipeline execution on SLURM (enable the pipelines themselves under
# Settings -> Pipelines; this only pins where they run)
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"
export SEQDESK_SLURM_TIME="24" # hours
# Shared conda cache so isolated compute nodes never fetch packages
export SEQDESK_CONDA_PATH="/net/software/conda"
export SEQDESK_CONDA_CACHE_DIR="/net/software/conda-cache"
# Secrets
export DATABASE_URL="postgresql://seqdesk:...@db.internal:5432/seqdesk?schema=public"
export NEXTAUTH_SECRET="$(openssl rand -base64 32)"
export SEQDESK_ENCRYPTION_KEY="$(openssl rand -base64 32)"A reproducible, offline-friendly install
SEQDESK_REQUIRE_CHECKSUM=1 \
SEQDESK_MINICONDA_BASE_URL="https://mirror.internal/miniconda" \
SEQDESK_MINICONDA_INSTALLER="Miniconda3-py312_24.9.2-0-Linux-x86_64.sh" \
SEQDESK_CURL_DOWNLOAD_MAX_TIME=3600 \
SEQDESK_LOG=/var/log/seqdesk-install.log \
npx -y seqdesk@latest -y --with-pipelines --dir /opt/seqdeskRelated
- Configuration Sources & Priority — why an
envvariable may still not change behaviour - Config File Reference — the
settings.jsonequivalents - Unattended installation — the full installer flag reference