Bring your own pipeline
The pipeline launcher isn’t limited to nf-core — an org admin can add any public GitHub repo that follows the standard nf-core layout, and it gets the same point-and-click parameter form, revision picker, and test mode as the official pipelines.
What a repo needs
Section titled “What a repo needs”- A public GitHub repo —
owner/repo. That’s the only hosting we support today. - At least one GitHub Release (not a tag — an actual release, non-draft, non-prerelease). The launcher’s version dropdown lists your releases, newest first.
nextflow_schema.jsonat the repo root, in the nf-core schema format. This is what the parameter form is built from.main.nfat the repo root (or amanifest.mainScriptentry innextflow.configpointing at your entrypoint).
Optionally, a test profile in your nextflow.config — that’s what powers the Test mode toggle, so users can shake the pipeline down on a tiny dataset before committing real data.
If you already have a pipeline built from the nf-core template, you’re done — skip to Add it to your catalog.
Starting from scratch
Section titled “Starting from scratch”The nf-core template gives you all of the above for free, and it works for private organisations too — pick Custom as the pipeline type and it scaffolds under your own org prefix, skipping the nf-core-specific branding and CI.
uv init .uv add nf-coreuv run nf-core pipelines createPut your workflow logic in main.nf / workflows/ as usual.
Defining parameters
Section titled “Defining parameters”Don’t hand-edit nextflow_schema.json — build it:
uv run nf-core pipelines schema buildThis opens an interactive editor that writes the schema for you. Everything in it maps directly onto the launcher form:
- Required params become required fields — launch is blocked until they’re set.
- Grouped params (
$defssections) render as collapsible groups, inallOforder. type,enum,default, anddescriptiondrive the input widgets and help text.- Params with
format: file-pathordirectory-pathget a Browse… button into the user’s pipeline bucket, plus drag-and-drop upload. --outdiris handled by the launcher itself — leave it in the schema, users never fill it in manually.
Publish a release
Section titled “Publish a release”Push to GitHub and cut a release:
gh release create v1.0.0 --title "v1.0.0" --notes "First release"Each new release shows up in the launcher’s version dropdown automatically (allow up to a few hours for caching).
Add it to your catalog
Section titled “Add it to your catalog”In the console, open Pipelines → + New pipeline, paste owner/repo, and optionally give it a display name. The pipeline appears on your org’s catalog page immediately — visible to your org only.
- Configuration — per-process resources and
withName:overrides. - Storage & buckets — where inputs and results live.