Skip to Content
InstallationQuickstart

Quickstart

Use the npm launcher for guided setup when Node.js/npm is already available. Before installing on a shared server, review the installation prerequisites, especially the PostgreSQL role/database requirement.

npm i -g seqdesk seqdesk

Under the hood, the launcher downloads https://seqdesk.com/install.sh over HTTPS and executes it with bash. The public command should still be the npm launcher; the direct shell script is an advanced fallback for environments where npm cannot be used. The launcher pins SEQDESK_VERSION to the npm package version (unless you set it yourself), so seqdesk@1.1.82 installs SeqDesk 1.1.82 — upgrade the launcher (npm i -g seqdesk@latest) before installing a newer release. The npm tarball also ships a manual install checklist  useful for end-to-end verification on a fresh host.

Installer output and behavior come from the deployed SeqDesk.com/public/install.sh file. Changes made in the SeqDesk app repository are not visible to the npm launcher or fallback curl command until that public installer file has been updated and SeqDesk.com has been deployed.

Install location depends on where you run the command. The default target is ./seqdesk relative to your current directory.

For predictable installs, set an explicit absolute path with --dir:

seqdesk -y --dir /opt/seqdesk

For local macOS installs, install the Homebrew prerequisites first and use the same launcher — see the macOS install guide.

Advanced fallback when npm is unavailable:

curl -fsSL https://seqdesk.com/install.sh | bash

What this gives you

  • Core SeqDesk platform on your own infrastructure
  • Interactive prompts for runtime and pipeline settings
  • A baseline setup you can later convert into unattended automation

Guided wizard (--interactive)

For a first install, add --interactive for a short setup wizard that walks you through the choices most people get wrong on the first try:

seqdesk --interactive

It asks:

  • Database — use a local PostgreSQL the installer sets up, or paste an existing/managed connection string. For a managed URL it runs a quick reachability check and tells you whether the host looks reachable before the install continues (full credentials are verified later, during migrations).
  • Accounts — the admin email/password and an optional researcher (non-admin) account. Emails are validated, passwords must be at least 8 characters and are confirmed, and you can leave a password blank to have a strong one generated and shown once.

The wizard only changes what you’re prompted for — it does not run under -y, --config, or --profile, so automated and unattended installs are unaffected.

PostgreSQL setup

SeqDesk needs a PostgreSQL database before migrations can complete. If the installer runs as a sudo-capable account, it can prepare local PostgreSQL automatically. On locked-down servers, ask the administrator to prepare the database first, then provide the resulting DATABASE_URL during install or in your config file.

On macOS, the installer uses Homebrew PostgreSQL when available. See the macOS install guide for the exact command and verification steps.

Verify the install

After the installer finishes, run seqdesk doctor against the install directory to confirm the layout is intact, the database is reachable, and (if the app is running) the HTTP probes pass:

seqdesk doctor --dir /opt/seqdesk

From source

For development checkouts or CI, use the source installer instead of the distribution one:

bash scripts/install.sh -y --dir ./seqdesk-source

The source installer accepts most of the same runtime, secret, and pipeline flags as the distribution installer, plus --branch <branch> to pin the Git ref (it has no --version). It does not support the distribution-only flags:

  • --reconfigure / --reseed-db
  • --prepare-postgres
  • --use-pm2 / --no-pm2
  • --run-doctor
  • --additional-setting / --additional-settings / --additional-settings-file
  • --pipeline-db-dir / --pipeline-database-dir

Override the upstream repository with SEQDESK_REPO, the branch with SEQDESK_BRANCH.