Download
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.
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
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.
seqdesk pipelines listseqdesk pipelines list --catalog orderseqdesk pipelines list --catalog studyThe 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.
seqdesk pipelines install simulate-readsInstallation 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.
seqdesk pipelines status simulate-readsseqdesk pipelines setup simulate-reads --runtimeA 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
The core application and the optional bioinformatics pipelines have different requirements. Pipelines are off by default and can be added later.
Install first
x64 or arm64>=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.curl, tar, and sha256sum or shasumProvisioned for you
~/.seqdesk/postgres — socket only, no TCP port, no system service, no sudo. You do not install a database by hand.--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 toolsstart.sh that brings the database up before the appOperator responsibility
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.
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 →
After installing
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.
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 →seqdesk storage configure "$HOME/seqdesk/data"seqdesk storage statusStorage 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.
Compatibility evidence
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
Weekly and on demand
fastq-checksum workflow with Conda, Java 17, and Nextflow on tiny synthetic readsNot currently claimed
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
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.
Run npx -y seqdesk@latest --interactive instead, or use a user-managed Node.js installation. Do not install or run SeqDesk as root.
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.
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.
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.
Run seqdesk doctor, inspect PM2 status and logs, and request /api/setup/status on localhost before touching the firewall.
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.
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 script piped into bash has no interactive input. Download it first, as the command above does, or pass -y together with every required value.
Support
Full installation guides with the fixes specific to each operating system.
Ubuntu, Debian, RHEL, AlmaLinux, and Rocky Linux, including when a distribution PostgreSQL is already running.
Linux guide →Homebrew Node.js, socket-versus-TCP PostgreSQL recovery, and the migration from the previous macOS command.
macOS guide →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.