Unattended + Reconfigure
Install the launcher once, then use -y for non-interactive mode and pass your
JSON with --config.
npm i -g seqdesk
seqdesk -y --config ./infrastructure-setup.jsonThe seqdesk launcher is the supported entry point. It downloads and executes
the public installer script internally.
Confirm the host meets the installation prerequisites before running unattended installs. In particular, PostgreSQL must already be reachable unless the installer is allowed to bootstrap a local PostgreSQL service through sudo.
You can also download the template we host and point the installer at a remote URL directly:
wget https://seqdesk.com/infrastructure-setup.json -O infrastructure-setup.jsonseqdesk -y --config https://seqdesk.com/infrastructure-setup.jsonTo re-apply changed JSON values to an existing install in place:
seqdesk -y --reconfigure --config ./infrastructure-setup.jsonReconfigure updates keys present in your JSON. Omitted keys keep their current values.
Reconfigure skips DB push and seed by default to preserve existing data. If you explicitly want DB push and seed, use:
seqdesk -y --reconfigure --reseed-db --config ./infrastructure-setup.jsonPath reminder: local --config and default ./seqdesk are resolved from your current working directory. Use absolute paths in automation.
Installing over an existing directory
A fresh install refuses to overwrite an existing target directory. In
interactive mode it asks Backup and replace?; with -y it aborts instead, so
an automated run never clobbers a directory silently.
Pass --overwrite-existing (or set SEQDESK_OVERWRITE_EXISTING=1) to let an
unattended install replace an existing directory. The existing directory is
moved to <dir>.backup.<timestamp> and a fresh install proceeds:
seqdesk -y --dir /opt/seqdesk --overwrite-existingThis keeps the previous install as a timestamped backup rather than deleting
it. If the new install fails before it activates, the installer automatically
restores the backup (or prints the exact restore command), so a failed run
never leaves the host without a working install. To update an existing install
in place without re-extracting, use --reconfigure instead.
Preload form builders
Order and study form builders can be exported from an existing SeqDesk instance as JSON, then applied during install. This is useful when a facility wants a new instance to start with the approved order form and study metadata form already configured.
seqdesk -y \
--config ./infrastructure-setup.json \
--order-form-settings /absolute/path/order-form.json \
--study-form-settings /absolute/path/study-form.jsonThe same values can be passed with environment variables:
export SEQDESK_ORDER_FORM_SETTINGS="/absolute/path/order-form.json"
export SEQDESK_STUDY_FORM_SETTINGS="/absolute/path/study-form.json"
seqdesk -y --config ./infrastructure-setup.jsonThe installer applies these files after database migration and seed. The JSON files should be the exports from Admin > Order Form > Import / Export and Admin > Study Forms > Import / Export.
Full installer flag reference
Every flag accepted by the seqdesk npm launcher. Most flags have a matching
SEQDESK_* environment variable; see
Environment Variables for the
installer-only variables.
Mode and target
| Flag | Description |
|---|---|
-y, --yes | Non-interactive; accept defaults |
--dir <path> | Install directory (default ./seqdesk) |
--overwrite-existing | With -y, back up an existing install dir to <dir>.backup.<timestamp> and replace it |
--version <version> | Specific release version (default: latest) |
--reconfigure | Re-apply config to an existing install in place |
--reseed-db | Force DB push + seed (off by default during --reconfigure) |
--prepare-postgres | Prepare a local PostgreSQL role/database, then exit |
Configuration source
| Flag | Description |
|---|---|
--config <path-or-url> | Infrastructure JSON file or URL |
--additional-setting <path=value> | Repeatable local override applied after --config |
--additional-settings <path=value...> | One or more local overrides in a single flag |
--additional-settings-file <path> | JSON override file for Puppet or other deployment automation |
Infrastructure overrides
| Flag | Description |
|---|---|
--port <port> | App port (default 8000) |
--data-path <path> | Sequencing data directory |
--run-dir <path> | Pipeline run directory |
--pipeline-db-dir <path> | Pipeline database asset directory (alias --pipeline-database-dir; maps to pipelines.databaseDirectory) |
--database-url <url> | DATABASE_URL override |
--database-direct-url <url> | DIRECT_URL for Prisma migrations |
--nextauth-url <url> | NEXTAUTH_URL override |
--nextauth-secret <secret> | NEXTAUTH_SECRET override |
Secrets
| Flag | Description |
|---|---|
--anthropic-api-key <key> | Optional Anthropic API key |
--admin-secret <secret> | Release publishing admin secret |
--blob-read-write-token <token> | Vercel Blob token |
Pipelines
| Flag | Description |
|---|---|
--with-pipelines | Enable pipeline dependencies (Conda + Nextflow) |
--without-pipelines | Skip pipeline setup |
--skip-deps | Deprecated; ignored in the distribution installer |
Process management
| Flag | Description |
|---|---|
--use-pm2 | Start under PM2 with auto-restart |
--no-pm2 | Disable PM2; use systemd or manual start |
Diagnostics
| Flag | Description |
|---|---|
--run-doctor | Run seqdesk doctor after a successful install when the CLI is available |
Form presets
| Flag | Description |
|---|---|
--order-form-settings <path> | Order form JSON to apply after seed |
--study-form-settings <path> | Study form JSON to apply after seed |