{"id":15527287,"url":"https://github.com/mbovo/pixiefairy","last_synced_at":"2026-01-08T03:15:09.011Z","repository":{"id":37953605,"uuid":"480092473","full_name":"mbovo/pixiefairy","owner":"mbovo","description":"a Pixiecore API Companion","archived":false,"fork":false,"pushed_at":"2023-05-29T20:05:50.000Z","size":119,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-03T20:16:31.464Z","etag":null,"topics":["api","api-rest","fastapi","pixiecore","pxe","pxe-boot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/mbovo.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-10T17:38:23.000Z","updated_at":"2023-07-25T14:56:18.000Z","dependencies_parsed_at":"2024-12-08T12:52:11.170Z","dependency_job_id":null,"html_url":"https://github.com/mbovo/pixiefairy","commit_stats":{"total_commits":33,"total_committers":1,"mean_commits":33.0,"dds":0.0,"last_synced_commit":"14268f5cfc12d4495fd3b250802f3ab22fb3fe68"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbovo%2Fpixiefairy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbovo%2Fpixiefairy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbovo%2Fpixiefairy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbovo%2Fpixiefairy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mbovo","download_url":"https://codeload.github.com/mbovo/pixiefairy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246100581,"owners_count":20723479,"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":["api","api-rest","fastapi","pixiecore","pxe","pxe-boot"],"created_at":"2024-10-02T11:05:23.565Z","updated_at":"2026-01-08T03:15:08.982Z","avatar_url":"https://github.com/mbovo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pixie Fairy - a Pixiecore API companion\n\n[![](https://img.shields.io/pypi/v/pixiecore.svg)](https://pypi.org/pypi/pixiefairy)\n[![Tag and build](https://github.com/mbovo/pixiefairy/actions/workflows/build-image.yml/badge.svg)](https://github.com/mbovo/pixiefairy/actions/workflows/build-image.yml)\n\n`Pixiefairy` is a companion for [pixiecore](https://github.com/danderson/netboot/tree/master/pixiecore) a tool to manage network booting of machines.\n`Pixiecore` in [API mode](https://github.com/danderson/netboot/tree/master/pixiecore#pixiecore-in-api-mode) send a request to an external service for each pxe booting event; *pixiefairy* is that service, answering to api calls and serving the configured info, like the kernel, the initrd and the command line to boot.\n\n`Pixiefairy` is higly configurable, you can decide which mac-address and which set of parameters to serve to each client.\n\n## Installation\n\nPixiefairy requires `python \u003e= 3.9`\nIt's as easy as\n\n```bash\npip3 install pixiefairy\n```\n\nThen you will have available the `pixiefairy` binary\n\n## Usage\n\nPixiefairy can be started using the `start` command. It requires a config.yaml file with a bunch of defaults in order to know how to serve the requests.\n\n```bash\npixiefairy start -c config.yaml\n```\n\n## Configuration\n\nAn example configuration can be found into [examples/config.yaml](./examples/config.yaml) like\n\n```yaml\ndefaults:\n  boot:\n                # the kernel to boot into\n    kernel: \"file:///root/vmlinuz-amd64\"\n    initrd:     # the list of initrd files to load at boot\n      - \"file:///root/initramfs-amd64.xz\"\n    message: \"\" # optional, a boot message\n    cmdline: \"\" # optional, the command line to boot\n  net:\n    dhcp: true                 # use dhcp or send n ip=.... kernel parameters to configure the network\n    gateway: \"192.168.1.0\"     # the default gateway to send to the requestor\n    netmask: \"255.255.255.0\"   # the netmask to send to requestor\n    dns: \"8.8.8.8\"         # default dns server\n    ntp: \"192.168.1.0\"         # default ntp server\n  deny_unknown_clients: false  # either boot unknown clients or boot only the mac address listed in mapping below\nmapping:  # optional\n  aa:bb:cc:dd:ee:ff:  # the matching mac address\n    net: null             # net block, optional, identical to the net block in defaults, override\n    boot: null            # boot block, optional, identical to the boot block in defaults, override\n```\n\n## Dev Requirements\n\nIn order to partecipate to the development you need the following requirements\n\n- [Taskfile](https://taskfile.dev)\n- Python \u003e=3.9\n\nAnd bootstrap the local dev environment with:\n\n```bash\ntask setup\n```\n\nThis will setup locally a python virtualenv with all the dependencies, ready to start coding\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbovo%2Fpixiefairy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmbovo%2Fpixiefairy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbovo%2Fpixiefairy/lists"}