{"id":44821279,"url":"https://github.com/virtool/dev","last_synced_at":"2026-02-16T20:36:31.016Z","repository":{"id":104520536,"uuid":"586052656","full_name":"virtool/dev","owner":"virtool","description":"Developer tooling for Virtool.","archived":false,"fork":false,"pushed_at":"2025-12-17T22:03:10.000Z","size":164,"stargazers_count":2,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-21T07:34:27.215Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/virtool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-06T20:14:08.000Z","updated_at":"2025-12-17T22:03:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"cefff7eb-54ef-4c3e-a91e-4123aca05b56","html_url":"https://github.com/virtool/dev","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/virtool/dev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fdev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fdev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fdev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fdev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/virtool","download_url":"https://codeload.github.com/virtool/dev/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtool%2Fdev/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29517617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T18:37:19.720Z","status":"ssl_error","status_checked_at":"2026-02-16T18:36:46.920Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-02-16T20:36:30.327Z","updated_at":"2026-02-16T20:36:31.001Z","avatar_url":"https://github.com/virtool.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dev\n\n## Dependencies\n\n- Docker Engine\n- `git`\n- Helm\n- `kubectl`\n- Minikube\n- Tilt\n\n## Quick Start\n\n1. Clone the repository to your local machine\n\n   ```\n   git clone https://github.com/virtool/dev.git\n   ```\n\n2. Create a Cluster\n\n   ```shell\n   bash scripts/init.sh\n   ```\n\n   This:\n   - Deletes any existing cluster.\n   - Creates a cluster using preset resource limits.\n   - Enables the ingress and metrics addons for Minikube.\n\n   You can run commands from `init.sh` individually if you want to customize the\n   cluster.\n\n3. Add the cluster IP to `/etc/hosts`:\n\n   ```shell\n   bash scripts/hosts.sh\n   ```\n\n   This puts the IP for the Minikube cluster in `/etc/hosts` for `virtool.local`. This\n   will make requests to `virtool.local` on your machine route to the cluster.\n\n4. Set up HTTPS with mkcert:\n\n   ```shell\n   # Install mkcert if not already installed\n   mkcert -install\n\n   # Create certificate for virtool.local\n   mkcert virtool.local\n\n   # Create Kubernetes TLS secret\n   kubectl create secret tls mkcert --cert=virtool.local.pem --key=virtool.local-key.pem\n   ```\n\n   This enables HTTPS for `https://virtool.local` using a locally trusted certificate.\n\n5. Start Tilt\n\n   ```shell\n   tilt up\n   ```\n\n   Tilt manages the Kubernetes development environment. It starts all necessary services\n   (KEDA, MongoDB, PostgreSQL, Redis) and the Virtool workloads and services.\n\n## Tilt\n\n### Stopping\n\nYou can bring all resources down with `tilt down` and bring them back up with `tilt up`.\n\nWe find it is necessary to run `tilt down` before `minikube stop` for the cluster to\nstop cleanly.\n\n### Live Editing\n\nUse the `tilt up -- --to-edit \u003cresource\u003e` command to live edit a resource.\n\nThis substitutes the image with one built from a local Dockerfile.\n\nFor it to work, you must have the repository cloned as a sibling directory to the `dev`\nrepository. Your parent directory should look like this and include clones of any\nrepositories you want to live edit:\n\n```\n├── dev\n├── virtool\n├── virtool-ui\n├── workflow-create-sample\n├── workflow-iimi\n└── workflow-pathoscope\n```\n\n_Some repositories are not shown in this example._\n\n**`virtool/virtool`**\n\n```shell\ntilt up -- --to-edit backend\n```\n\nFor `virtool/virtool` resources, you have to manually update the resources in Tilt to\ntrigger an image build.\n\nResources affected by the image and `--to-edit backend` flag:\n\n- `api-jobs`\n- `api-web`\n- `migration`\n- `task-runner`\n\n**`virtool/virtool-ui`**\n\n```shell\ntilt up -- --to-edit ui\n```\n\nChanges to code in the `virtool/virtool-ui` repository will be immediately reflected\nin the running UI.\n\nOnly the `ui` resource is affected by the `--to-edit ui` flag.\n\n**Workflows**\n\nAny workflow repository can be live edited with the following command:\n\n```shell\ntilt up -- --to-edit \u003cworkflow\u003e\n```\n\nWhere `workflow` is one of:\n\n- `build-index`\n- `create-sample`\n- `create-subtraction`\n- `iimi`\n- `pathoscope`\n- `nuvs`\n\nEvery time the repository changes, the image will be rebuilt.\n\n````shell\n\n## Update images\n\nWe provide an easy way to update the Virtool container images in the cluster.\n\n### Tilt\n\nClick the 'Pull' button in the top-right of the navigation bar in the Tilt UI.\n\n### Bash\n\n```shell\nbash scripts/pull.sh\n````\n\n## Wiping the Cluster\n\nIf you need to start fresh, you can just run `init.sh` again:\n\n```shell\nbash scripts/init.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtool%2Fdev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirtool%2Fdev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtool%2Fdev/lists"}