Download

Install SeqDesk

One guided command. The installer checks every prerequisite first and stops without changing anything if something is missing. The default installed port is 8000, and you sign in with the administrator account created by the guided wizard.

Linux · macOS
curl -fsSLo /tmp/seqdesk-install.sh https://seqdesk.org/install.sh &&
bash /tmp/seqdesk-install.sh --interactive --dir "$HOME/seqdesk"

When to use: Almost everyone. Downloading first preserves the guided prompts, avoids a global npm install, and lets you inspect the script before running it.

Install Node.js and npm first — 22.13.0+ on the 22.x line, or 24.x. The shell installer needs both too, because it uses npm to install the application's runtime dependencies. No database preparation: SeqDesk reuses a PostgreSQL you already own, or creates its own. Core-only is the default; add --with-pipelines to provision Conda, Java 17, and Nextflow now, or choose pipelines later with seqdesk pipelines list and seqdesk pipelines install <name>.

Detailed guide →

Optional workflows

Add only the pipelines you need

The guided installer sets up the core application first. After that, the same local command shows every supported order- and study-level workflow, installs one package at a time, and keeps incomplete packages disabled until they are genuinely ready. You do not reinstall SeqDesk.

1

Discover

seqdesk pipelines list
seqdesk pipelines list --catalog order
seqdesk pipelines list --catalog study

The table shows each pipeline's target, package state, setup state, activation state, and next required action. It also marks packages already bundled with the app.

2

Install

seqdesk pipelines install simulate-reads

Installation is atomic and safe to repeat. SeqDesk validates the package, then checks Nextflow, Java, Conda and, when selected, SLURM, required configuration, reference databases, and local data and run paths.

3

Finish setup

seqdesk pipelines status simulate-reads
seqdesk pipelines setup simulate-reads --runtime

A ready pipeline is enabled automatically. If something is missing, it stays installed but disabled and tells you the next command or Admin screen. Reference databases are never downloaded without an operator choosing or linking them.

Safe first example: Simulate Reads is a small order-level test workflow with no reference database. Use it only on a dedicated demo order with no real files: its default configuration replaces reads already linked to the selected samples.

Full pipeline installation, setup, and Simulate Reads guide →

Before you start

What you provide, and what the installer provides

The core application and the optional bioinformatics pipelines have different requirements. Pipelines are off by default and can be added later.

Install first

Required on the host

  • Linux, or a local macOS application host on x64 or arm64
  • Node.js >=22.13.0 <23 or >=24 <25, plus npm. Both install methods need them: the shell installer uses npm to install the application's runtime dependencies.
  • Bash, curl, tar, and sha256sum or shasum
  • A new writable install directory with at least the larger of 2 GB or three times the release archive size free

Provisioned for you

The installer can set up

  • PostgreSQL. A healthy local server or socket it can administer is reused untouched. Otherwise SeqDesk creates its own cluster under ~/.seqdesk/postgres — socket only, no TCP port, no system service, no sudo. You do not install a database by hand.
  • Database migrations, the first administrator account, and an optional researcher account
  • With --with-pipelines: a working Conda base is reused, or a provisioned Miniconda gets Python 3.11, Java 17, Nextflow, nf-core, and supporting command-line tools
  • Optional PM2 process management, plus a start.sh that brings the database up before the app

Operator responsibility

You still need to plan

  • A PostgreSQL 14+ connection URL only when SeqDesk must use a database you already manage
  • Sequencing-data, pipeline-work, reference-database, and backup storage
  • CPU, RAM, and Slurm capacity for the workflows you intend to run
  • A trusted network, firewall or VPN, TLS or a reverse proxy, and monitoring
  • Tested PostgreSQL and file-backup restoration procedures

What the preflight checks

Preflight validates the operating system, Node.js and npm, the download and checksum tools, target-directory permissions, and free install space before anything is downloaded or moved. It then verifies the release checksum and tests database authentication and write access before applying migrations.

Stops the install

  • Unsupported Node.js, missing npm, or missing tools
  • Unwritable target, or less free space than the enforced floor
  • Checksum, database connection or write, or migration failure

Warned or left to you

  • Untested Linux distributions or CPU architectures
  • CPU, RAM, and sequencing or pipeline storage capacity
  • Firewall, TLS or reverse proxy, and Slurm sizing

PostgreSQL 14+ is the supported baseline, and it is enforced before the installer adopts a local server it discovered itself. A connection URL you supply is reported and write-tested, but its major version is not rejected. Read the exact check matrix →

Full prerequisites, capacity guidance, and PostgreSQL options →

After installing

Check it before adding real data

1

Save the credentials

The wizard asks for the first administrator account. If you let it generate a password, save it when the summary prints it — it is not stored anywhere else.

2

Run the health check

npx -y seqdesk@latest doctor --dir "$HOME/seqdesk"

Fix every failure before exposing the service or storing facility data — with one known exception: on a default install the database runs on a Unix socket, which this release's health check cannot probe, so it always reports the PostgreSQL check as unreachable and exits non-zero.

Why the database check fails on a socket install →
3

Set Data Storage

seqdesk storage configure "$HOME/seqdesk/data"
seqdesk storage status

Storage is required before SeqDesk can discover sequencing files or run a pipeline against them. Use an existing absolute facility directory when appropriate. Once its status is ready, run seqdesk pipelines list to add only the workflows you need.

Data Storage setup and automation →

Compatibility evidence

What is tested, and what is not claimed

A platform counts as demonstrated only when its installation check is green. Installation evidence is not a performance or security audit.

Every change and release

Required clean installs

  • Ubuntu 22.04 · x64 · Node 22.13.0 · PostgreSQL 14
  • Ubuntu 24.04 · x64 · Node 24 · PostgreSQL 16
  • macOS 15 · ARM64 · Node 24 · PostgreSQL 16
  • Launcher, checksum, migration, boot, setup, and login checks

Weekly and on demand

Extended evidence

  • Ubuntu 24.04 on ARM64; macOS 15 on Intel x64
  • Debian 12 and Rocky Linux 9 userlands
  • PostgreSQL 15 through 18, and the packaged fastq-checksum workflow with Conda, Java 17, and Nextflow on tiny synthetic reads

Not currently claimed

Outside public coverage

  • Native Windows or a tested WSL installation
  • Production pipeline execution on macOS
  • Every distribution, hardening posture, or workload size
  • Every storage, network, or multi-node Slurm configuration

The required jobs use prepared PostgreSQL services and explicit connection URLs, so they do not prove operating-system package or service provisioning on a bare host. The Debian and Rocky Linux jobs exercise container userlands on the host kernel, not a distribution kernel or systemd. Native Windows is rejected with WSL guidance, which is not a test of WSL. Real Slurm execution is verified separately on private infrastructure, and the scheduled live-network install check is not a required pull-request gate. Full evidence and limitations →

Troubleshooting

Common installation problems

Every installer failure names the check that failed and prints a troubleshooting link and a protected log path. Diagnose the reported boundary before deleting a database, a lockfile, or an install directory.

A global npm install fails with EACCES

Run npx -y seqdesk@latest --interactive instead, or use a user-managed Node.js installation. Do not install or run SeqDesk as root.

Node.js is rejected

Use 22.13.0 or newer on the 22.x line, or a 24.x release. Node 23, 25, and future majors are refused until they are tested.

The target exists or is not writable

Choose a new directory owned by the account running the installer. Use --reconfigure only for a valid existing SeqDesk installation, never as a retry switch.

PostgreSQL cannot be reached

If you supplied no database URL, SeqDesk owns the cluster and it answers on a Unix socket only: point pg_isready at ~/.seqdesk/postgres/socket, not at 127.0.0.1, and read that cluster's server.log. With your own URL, check the service, credentials, SSL, and the direct migration URL. Never expose port 5432 to the network to make a check pass.

The install finished, but the app does not answer

Run seqdesk doctor, inspect PM2 status and logs, and request /api/setup/status on localhost before touching the firewall.

Miniconda or pipeline setup fails

A working Conda base is reused even when it is not on PATH. An unusable default prefix is left untouched and a separate fallback is used. The core application runs without pipelines, so re-run with --without-pipelines rather than deleting a healthy application or database.

Conda-prefix recovery →

Downloads fail behind a proxy or firewall

Allow outbound HTTPS to seqdesk.org, GitHub release assets, the npm registry, and — with pipelines enabled — the Conda channels. Set your standard proxy variables and trust your corporate CA; never disable certificate checks.

A piped shell install cannot ask questions

A script piped into bash has no interactive input. Download it first, as the command above does, or pass -y together with every required value.

Symptom-by-symptom troubleshooting →

Support

Platform walkthroughs

Full installation guides with the fixes specific to each operating system.

Linux

Ubuntu, Debian, RHEL, AlmaLinux, and Rocky Linux, including when a distribution PostgreSQL is already running.

Linux guide →

macOS

Homebrew Node.js, socket-versus-TCP PostgreSQL recovery, and the migration from the previous macOS command.

macOS guide →

Unattended and fleet

Drive the whole install from a JSON settings file, and reapply configuration on existing nodes.

settings.json reference →

Need something else? Open the installation documentation for AWS EC2, unattended deployment, and diagnostics.