https://github.com/hostinger/fireactions
BYOM (Bring Your Own Metal) and run self-hosted GitHub runners in ephemeral, fast and secure Firecracker based virtual machines.
https://github.com/hostinger/fireactions
fireactions github github-actions github-runners tools
Last synced: 1 day ago
JSON representation
BYOM (Bring Your Own Metal) and run self-hosted GitHub runners in ephemeral, fast and secure Firecracker based virtual machines.
- Host: GitHub
- URL: https://github.com/hostinger/fireactions
- Owner: hostinger
- License: apache-2.0
- Created: 2023-09-26T08:13:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-12-15T22:07:16.000Z (about 1 month ago)
- Last Synced: 2025-12-18T05:24:17.086Z (about 1 month ago)
- Topics: fireactions, github, github-actions, github-runners, tools
- Language: Go
- Homepage: https://fireactions.io
- Size: 21.3 MB
- Stars: 115
- Watchers: 4
- Forks: 10
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome-microvm - Fireactions - BYOM (Bring Your Own Metal) and run self-hosted GitHub runners in ephemeral, fast and secure Firecracker based virtual machines. (Projects / Security)
README
[](https://goreportcard.com/report/github.com/hostinger/fireactions)

Fireactions is an orchestrator for GitHub runners. BYOM (Bring Your Own Metal) and run self-hosted GitHub runners in ephemeral, fast and secure [Firecracker](https://firecracker-microvm.github.io/) based virtual machines.

Several key features:
- **Scalable**
Pool based scaling approach. Fireactions always ensures the minimum amount of GitHub runners in the pool.
- **Ephemeral**
Each virtual machine is created from scratch and destroyed after the job is finished, no state is preserved between jobs, just like with GitHub hosted runners.
- **Customizable**
Define job labels and customize virtual machine resources to fit Your needs.
## Quickstart
Create and install a GitHub App (see [Creating a GitHub App](https://docs.github.com/en/developers/apps/creating-a-github-app)) with the following permissions:
- Read access to metadata
- Read and write access to actions and organization self hosted runners
Note down the GitHub App ID and generate a private key, save it to a file on the host machine, e.g. `/root/private-key.pem`.
Download and run the installation script:
```bash
curl -sSL https://raw.githubusercontent.com/hostinger/fireactions/main/install.sh -o install.sh
chmod +x install.sh
./install.sh --help
This script installs Fireactions on a Linux machine.
Usage: ./install.sh [options]
Options:
--github-app-id Sepcify the ID of the GitHub App (required)
--github-app-key-file Specify the path to the GitHub App private key file (required)
--github-organization Specify the name of the GitHub organization (required)
--fireactions-version Specify the Fireactions version to install (default: 0.2.5)
--firecracker-version Specify the Firecracker version to install (default: 1.4.1)
--kernel-version Specify the kernel version to install (default: 5.10)
--containerd-snapshotter-device Specify the device to use for Containerd snapshot storage (required)
--containerd-version Specify the Containerd version to install (default: 1.7.0)
--cni-version Specify the CNI plugin version to install (default: 1.6.0)
-h, --help Show this help message
```
This creates a default configuration with a single pool named `default` with a single runner. See [Configuration](./docs/user-guide/configuration.md) for more information.
Test the installation by creating a new GitHub workflow in your repository:
```yaml
# .github/workflows/test.yaml
name: test
on:
workflow_dispatch:
pull_request:
branches:
- '*'
push:
branches:
- main
jobs:
test:
name: test
runs-on: # The label(s) of the Fireactions pool
- self-hosted
- fireactions
steps:
- name: Example
run: |
echo "Hello, Fireactions!"
```
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for more information on how to contribute to Fireactions.
## License
See [LICENSE](LICENSE)