{"id":15751456,"url":"https://github.com/remram44/drone-runner-qemu","last_synced_at":"2025-04-14T10:20:23.538Z","repository":{"id":235883125,"uuid":"791453472","full_name":"remram44/drone-runner-qemu","owner":"remram44","description":"A runner for Drone CI that runs jobs in Qemu virtual machines","archived":false,"fork":false,"pushed_at":"2024-12-18T16:57:13.000Z","size":80,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-04-06T08:16:08.305Z","etag":null,"topics":["continuous-integration","drone-ci","drone-plugin","drone-runner","gitea","qemu","virtual-machine"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/remram44.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-04-24T18:41:03.000Z","updated_at":"2025-01-15T07:45:06.000Z","dependencies_parsed_at":"2024-04-27T16:38:49.127Z","dependency_job_id":null,"html_url":"https://github.com/remram44/drone-runner-qemu","commit_stats":null,"previous_names":["remram44/drone-runner-qemu"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remram44%2Fdrone-runner-qemu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remram44%2Fdrone-runner-qemu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remram44%2Fdrone-runner-qemu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remram44%2Fdrone-runner-qemu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remram44","download_url":"https://codeload.github.com/remram44/drone-runner-qemu/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248860007,"owners_count":21173342,"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","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":["continuous-integration","drone-ci","drone-plugin","drone-runner","gitea","qemu","virtual-machine"],"created_at":"2024-10-04T07:01:46.177Z","updated_at":"2025-04-14T10:20:23.509Z","avatar_url":"https://github.com/remram44.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is this?\n\n**[Drone](https://www.drone.io/) is an opensource CI server**. It allows you to run commands when you push to a Git repository, for example to build a release, run your unit tests, or publish a website.\n\nDrone relies on **plugins called [\"runners\"](https://docs.drone.io/runner/overview/) to do the actual command execution**. It comes with runners for running on your machine (which is dangerous, commands in the repository could mess with your system) or on [cloud platforms](https://docs.drone.io/runner/vm/configuration/migration/) such as AWS and GCP.\n\nFor self-hosting purposes, being able to **run on virtual machines locally** is desirable for security, reproducibility, and cost. This is what this repository provides, using the [QEMU open-source emulator](https://www.qemu.org/).\n\n# Installation\n\nDownload some images:\n\n```console\n$ qemu-images/download.sh\n```\n\nYou can customize how images are run by editing the `.qemu.sh` scripts or making your own.\n\nDownload the qemu runner and configure to connect with your central Drone server using your server address and shared secret:\n\n```console\n$ DRONE_RPC_HOST=drone.example.com \\\n  DRONE_RPC_PROTO=https \\\n  DRONE_RPC_SECRET=${SECRET} \\\n  DRONE_QEMU_IMAGE_DIR=$(pwd)/qemu-images \\\n  DRONE_QEMU_DEFAULT_IMAGE=ubuntu-22.04 \\\n  ./drone-runner-qemu\n```\n\nOr with Docker:\n\n```console\n$ docker run -d \\\n  --device /dev/kvm \\\n  --env=DRONE_RPC_HOST=drone.example.com \\\n  --env=DRONE_RPC_PROTO=https \\\n  --env=DRONE_RPC_SECRET=${SECRET} \\\n  --env=DRONE_QEMU_IMAGE_DIR=/qemu-images \\\n  --env=DRONE_QEMU_DEFAULT_IMAGE=ubuntu-22.04 \\\n  --restart=always \\\n  --volume=$(pwd)/qemu-images:/qemu-images \\\n  --name=drone-runner-qemu ghcr.io/remram44/drone-runner-qemu\n```\n\nThat's it. Go make some pipelines with `type: qemu`, they will be run by this system in their own, self-contained, ephemeral virtual machines.\n\n# Usage\n\nUse `type: qemu` in your `.drone.yml`. You can set the top-level `image` key to the name of an image file. For example:\n\n```yaml\n---\nkind: pipeline\ntype: qemu\nname: default\n\nimage: ubuntu-22.04\n\nsteps:\n- name: greeting\n  commands:\n  - echo hello world\n```\n\n# License\n\nThis software is licensed under the [Blue Oak Model License 1.0.0](https://spdx.org/licenses/BlueOak-1.0.0.html).\n\n# Notice\n\u003c!-- do not remove notice --\u003e\n\nThis software relies on the [runner-go](https://github.com/drone/runner-go) module authored by [Drone.IO, Inc](https://github.com/drone) under a [Non-compete](https://github.com/drone/runner-go/blob/master/LICENSE.md) license. This module can be used in any software for free for any permitted purpose in accordance with the license. This module cannot be used in any software that competes with the licensor.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremram44%2Fdrone-runner-qemu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremram44%2Fdrone-runner-qemu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremram44%2Fdrone-runner-qemu/lists"}