{"id":23838355,"url":"https://github.com/gluonfield/nf-shard","last_synced_at":"2025-09-04T19:50:42.503Z","repository":{"id":192418547,"uuid":"686686328","full_name":"gluonfield/nf-shard","owner":"gluonfield","description":"Nextflow runs monitoring and organisation UI","archived":false,"fork":false,"pushed_at":"2024-09-20T03:46:20.000Z","size":2172,"stargazers_count":77,"open_issues_count":3,"forks_count":13,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-02T09:38:49.621Z","etag":null,"topics":["nextflow","nf-shard","nf-tower"],"latest_commit_sha":null,"homepage":"https://main.d29s1tosoaghp.amplifyapp.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gluonfield.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-03T16:08:21.000Z","updated_at":"2025-08-21T12:36:50.000Z","dependencies_parsed_at":"2024-03-20T00:24:10.448Z","dependency_job_id":"6f96542b-27a8-434a-bd0b-4c5b8ac29ff8","html_url":"https://github.com/gluonfield/nf-shard","commit_stats":null,"previous_names":["augustdev/nf-shard","gluonfield/nf-shard"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/gluonfield/nf-shard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluonfield%2Fnf-shard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluonfield%2Fnf-shard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluonfield%2Fnf-shard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluonfield%2Fnf-shard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gluonfield","download_url":"https://codeload.github.com/gluonfield/nf-shard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gluonfield%2Fnf-shard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273666013,"owners_count":25146275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextflow","nf-shard","nf-tower"],"created_at":"2025-01-02T16:57:19.425Z","updated_at":"2025-09-04T19:50:37.482Z","avatar_url":"https://github.com/gluonfield.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![build badge](https://github.com/AugustDev/nf-shard/actions/workflows/ci.yml/badge.svg)\n![version badge](https://ghcr-badge.deta.dev/augustdev/nf-shard/latest_tag?color=%236d52f4\u0026ignore=latest\u0026label=version\u0026trim=)\n![size badge](https://ghcr-badge.deta.dev/augustdev/nf-shard/size?color=%23fa0092\u0026tag=latest\u0026label=image+size\u0026trim=)\n\n![nf-shard Logo](./assets/logo.png)\n\n# nf-shard\n\nnf-shard is an open source user interface for monitoring Nextflow runs, searching historical runs and analysing metrics. It was designed as drop-in replacement for community [nf-tower](https://github.com/seqeralabs/nf-tower), however it does not aim to replace Enterprise nf-tower.\n\n[![Foo](./assets/play.png)](https://www.youtube.com/watch?v=Fzq9cqozwEU)\n\n## Usage in Nextflow\n\nOnce nf-shard is running to integrate it into your Nextflow project you should add similar snippet to your `nextflow.config`. The exact form of this snippet will be displayed once you start nf-shard.\n\n```nextflow\ntower {\n    enabled = true\n    accessToken = \"non-empty\"\n    endpoint = \"http://localhost:3000/api\"\n}\n```\n\n## Run\n\nFollowing instructions allows to run `nf-shard` locally. To run nf-shard you PostgreSQL database.\n\n### Method 1 - docker-compose\n\ndocker-compose will spin up PostgreSQL database and the server.\n\n```bash\ngit clone git@github.com:AugustDev/nf-shard.git\ncd nf-shard\ndocker-compose --profile all up\n```\n\nIf you have PostgreSQL running externally then you only need to launch the server. In this case update your `.env` with `POSTGRES_URI` and run\n\n```bash\ngit clone git@github.com:AugustDev/nf-shard.git\ncd nf-shard\ndocker-compose --profile server up\n```\n\nAdd tower server details in your Nextflow config.\n\n```nextflow\ntower {\n    enabled = true\n    accessToken = \"non-empty\"\n    endpoint = \"http://localhost:3000/api\"\n}\n```\n\nDone! If you navigate to `http://localhost:3000` and run Nextflow workflow you should be able to see progress in the UI.\n\nNote - `accessToken` can by any non-empty string.\n\n### Method 2 - yarn\n\nIf you already have running PostgreSQL database, you can run build the project using yarn package manager. To specify your database login edit `.env`. If you are developer you would prefer using this approach.\n\n```\nyarn\nyarn migrate\nyarn build\nyarn run\n```\n\nNot that `yarn migrate` requires connection to databse, so you should update `.env` file.\n\nTo run PostgreSQL for local development you can use\n\n```\ndocker-compose --profile db up\n```\n\nSince connection to PostgreSQL now happens outside of docker, you should update your `.env` to specify `localhost`\n\n```\nPOSTGRES_URI=postgresql://postgres:yourpassword@localhost:5432/postgres?schema=public\n```\n\n### Method 3 - Vercel\n\nOne click deployment using Vercel requires having PostgreSQL access. Video instructions below. In the video I use [Neon.tech](https://neon.tech/) free PostgreSQL version, but any provider works.\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FAugustDev%2Fnf-shard%2F\u0026env=POSTGRES_URI\u0026project-name=nf-shard\u0026repository-name=nf-shard\u0026demo-title=nf-shard\u0026demo-description=Monitor%20Nextlfow%20pipelines.%20Group%20runs%20into%20workspaces\u0026demo-url=https%3A%2F%2Fmain.d29s1tosoaghp.amplifyapp.com%2F\u0026build-command=yarn%20generate%20%26%26%20yarn%20build%20%26%26%20npx%20prisma%20migrate%20deploy\u0026output-directory=build)\n\n[![Foo](./assets/vercel-deployment.png)](https://www.youtube.com/watch?v=luqc2vmKvKY)\n\n## Stack\n\n- NextJS/React/Typescript\n- PostgreSQL\n- Prisma ORM\n\nI was picking the a stack with large communities to maximise open source contribution from the Nextflow community.\n\n## Features\n\n- [Slack integration](https://www.youtube.com/watch?v=8lWLgvROQ8Q)\n- Indexed search by workflow ID, run name, user name, tag, projeect name, before date, after date.\n- Search supports multiple `AND` conditions.\n- Ability to attach multiple tags for each workflow. Tags are visible in the UI and can be used in search.\n- Workspaces\n- List of historical runs\n- Run details\n- `nf-tower` plugin compatible API.\n- Store and submit pipeline jobs from Shard UI (beta requires deploying [shard-worker](https://github.com/AugustDev/shard-worker))\n\n![image](https://github.com/user-attachments/assets/1a2a0aea-2559-4c7a-b8bb-c033da4c2c9b)\n\n## Roadmap\n\n- Authentication\n- Dedicated plugin\n- Upload/view execution logs\n- Download reports\n- [tRPC](https://trpc.io/) client/server communication\n\n## Development\n\nUseful during development\n\n```\ndocker buildx build --platform linux/amd64 -t nf-shard:semver . --load\ndocker run -it nf-shard:semver /bin/sh\n```\n\n## Author\n\nAugustinas Malinauskas\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgluonfield%2Fnf-shard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgluonfield%2Fnf-shard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgluonfield%2Fnf-shard/lists"}