{"id":15171394,"url":"https://github.com/frobware/nix-bpfman","last_synced_at":"2026-01-24T16:46:17.463Z","repository":{"id":249567360,"uuid":"831848587","full_name":"frobware/nix-bpfman","owner":"frobware","description":"A Nix flake \u0026 module packaging bpfman, an eBPF Manager for Linux and Kubernetes.","archived":false,"fork":false,"pushed_at":"2026-01-19T11:23:30.000Z","size":63,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-19T18:20:36.728Z","etag":null,"topics":["bpf","bpfman","nix","nix-flake","nixos","nixpkgs"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/frobware.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-21T19:34:09.000Z","updated_at":"2026-01-19T11:23:35.000Z","dependencies_parsed_at":"2024-11-06T21:02:44.168Z","dependency_job_id":"fa1da6c6-1382-4d4f-a7f4-9141dea2b134","html_url":"https://github.com/frobware/nix-bpfman","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"fd69a2f9f594906d39201f42d435fcea41b88773"},"previous_names":["frobware/nix-bpfman"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/frobware/nix-bpfman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fnix-bpfman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fnix-bpfman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fnix-bpfman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fnix-bpfman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frobware","download_url":"https://codeload.github.com/frobware/nix-bpfman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frobware%2Fnix-bpfman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28732096,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: 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":["bpf","bpfman","nix","nix-flake","nixos","nixpkgs"],"created_at":"2024-09-27T09:00:47.353Z","updated_at":"2026-01-24T16:46:17.448Z","avatar_url":"https://github.com/frobware.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Nix Flake that packages bpfman\n\nThis [Nix](https://nix.dev) [flake](https://nix.dev/concepts/flakes)\npackages [bpfman](https://bpfman.io) for [NixOS](https://nixos.org).\n\nWith this flake, you can:\n\n- Easily install the bpfman package on NixOS.\n\n- Use the provided [Nix module](https://nixos.wiki/wiki/NixOS_modules)\n  to customise the installation and configuration of bpfman and run it\n  as a systemd service.\n\n## Nix Module Details\n\nThe Nix module provides several configuration options for integrating\nbpfman into your NixOS system. The options available are:\n\n- **services.bpfman.package**: Specifies the bpfman package to use. Defaults to `pkgs.bpfman`.\n- **services.bpfman.service.enable**: Enables the bpfman-rpc service.\n- **services.bpfman.service.environmentVariables**: Sets environment variables for the bpfman-rpc service. Defaults to `[\"RUST_LOG=Info\"]`.\n- **services.bpfman.socket.enable**: Enables the bpfman socket.\n- **services.bpfman.socket.mode**: Sets the socket file mode. Defaults to `\"0660\"`.\n- **services.bpfman.socket.path**: Specifies the path to the bpfman socket. Defaults to `\"/run/bpfman-sock/bpfman.sock\"`.\n\nWhen `services.bpfman.service.enable` is set to `true`, the\n`bpfman-rpc` service will be configured to start with the specified\nenvironment variables, and it will restart automatically if it stops.\nAdditionally, enabling the socket with `services.bpfman.socket.enable`\nwill configure the socket with the provided path and mode.\n\n# Example NixOS Usage\n\nThis example demonstrates how to import the bpfman flake into a NixOS\nconfiguration. The example assumes that your NixOS configuration is\nbased on flakes.\n\n```nix\n{\n  description = \"NixOS configuration with bpfman\";\n\n  inputs = {\n    nixpkgs.url = \"github:NixOS/nixpkgs/nixos-unstable\";\n    bpfman.url = \"github:frobware/nix-bpfman\";\n  };\n\n  outputs = { self, bpfman, nixpkgs, ... }: let\n    system = \"x86_64-linux\";\n\n    pkgs = import nixpkgs {\n      inherit system;\n      overlays = [ bpfman.overlays.default ];\n    };\n  in {\n    nixosConfigurations.teapot = nixpkgs.lib.nixosSystem {\n      inherit system pkgs;\n\n      modules = [\n        bpfman.nixosModules.bpfman\n\n        ({ pkgs, ... }: {\n          services.bpfman.service.enable = true;\n          services.bpfman.socket.enable = true;\n\n          environment.systemPackages = [\n            pkgs.bpfman\n          ];\n        })\n      ];\n    };\n  };\n}\n```\n\n# Flake Outputs\n\nThis flake provides several outputs to facilitate the use of bpfman\nacross different architectures and configurations. Below is an\noverview of the available outputs:\n\n```sh\n% nix flake show --all-systems\ngit+file:///home/aim/src/github.com/frobware/nix-bpfman\n├───apps\n│   ├───aarch64-linux\n│   │   ├───bpfman: app\n│   │   └───default: app\n│   └───x86_64-linux\n│       ├───bpfman: app\n│       └───default: app\n├───checks\n│   ├───aarch64-linux\n│   │   └───build: derivation 'bpfman-0.5.0'\n│   └───x86_64-linux\n│       └───build: derivation 'bpfman-0.5.0'\n├───devShells\n│   ├───aarch64-linux\n│   │   └───default: development environment 'nix-shell'\n│   └───x86_64-linux\n│       └───default: development environment 'nix-shell'\n├───nixosModules\n│   ├───bpfman: NixOS module\n│   └───default: NixOS module\n├───overlays\n│   ├───bpfman: Nixpkgs overlay\n│   └───default: Nixpkgs overlay\n└───packages\n    ├───aarch64-linux\n    │   ├───bpfman: package 'bpfman-0.5.0'\n    │   └───default: package 'bpfman-0.5.0'\n    └───x86_64-linux\n        ├───bpfman: package 'bpfman-0.5.0'\n        └───default: package 'bpfman-0.5.0'\n```\n\n# A Runnable NixOS Configuration with bpfman\n\nThis repository provides an [example](example/README.md) NixOS\nconfiguration for the \"teapot\" host, integrating bpfman. The [example\nflake.nix](example/flake.nix) allows you to easily build and run a VM\nwith bpfman installed and running as a system service.\n\n```sh\n$ cd example\n$ nix run\n\u003c\u003c\u003c Welcome to NixOS 24.11.20240720.d43f063 (x86_64) - ttyS0 \u003e\u003e\u003e\n\nRun 'nixos-help' for the NixOS manual.\n\nteapot login: root (automatic login)\n\n[root@teapot:~]# systemctl status bpfman.service\n● bpfman.service - Run bpfman-rpc as a service\n     Loaded: loaded (/etc/systemd/system/bpfman.service; enabled; preset: enabled)\n     Active: active (running) since Sun 2024-07-21 19:51:57 UTC; 12s ago\nTriggeredBy: ● bpfman.socket\n   Main PID: 870 (bpfman-rpc)\n         IP: 0B in, 0B out\n         IO: 0B read, 0B written\n      Tasks: 2 (limit: 2346)\n     Memory: 2.3M (peak: 2.6M)\n        CPU: 5ms\n     CGroup: /system.slice/bpfman.service\n             └─870 /nix/store/1nj8hzhab455yb8q0rrpzr116mggz8iy-bpfman-0.5.0/bin/bpfman-rpc\n\nJul 21 19:51:57 teapot systemd[1]: bpfman.service: Scheduled restart job, restart counter is at 10.\nJul 21 19:51:57 teapot systemd[1]: Started Run bpfman-rpc as a service.\nJul 21 19:51:57 teapot bpfman-rpc[870]: Using a Unix socket from systemd\nJul 21 19:51:57 teapot bpfman-rpc[870]: Using inactivity timer of 15 seconds\nJul 21 19:51:57 teapot bpfman-rpc[870]: Listening on /run/bpfman-sock/bpfman.sock\n\n[root@teapot:~]# systemctl status bpfman.socket\n● bpfman.socket - bpfman API Socket\n     Loaded: loaded (/etc/systemd/system/bpfman.socket; enabled; preset: enabled)\n     Active: active (running) since Sun 2024-07-21 19:49:24 UTC; 3min 13s ago\n   Triggers: ● bpfman.service\n     Listen: /run/bpfman-sock/bpfman.sock (Stream)\n     CGroup: /system.slice/bpfman.socket\n\nJul 21 19:49:24 teapot systemd[1]: Listening on bpfman API Socket.\n\n[root@teapot:~]# bpfman list\n Program ID  Name  Type  Load Time\n```\n\n# Nix Substituters / pre-built bpfman Package\n\nTo use the pre-built bpfman package from\n[frobware.cachix.org](https://frobware.cachix.org), you can configure\nyour NixOS system to use this cache. This allows you to quickly\ninstall the bpfman package without having to build it locally.\n\n## Automatic Installation Using `cachix`\n\nIf you have the `cachix` package installed, you can run the following\ncommand to update your ~/.config/nix/nix.conf to include\n`frobware.cachix.org`:\n\n```sh\ncachix use frobware\n```\n\n## Manual Configuration\n\nAdd the following configuration to your nix.conf file:\n\n```\n{\n  nix.settings.substituters = [\n    \"https://cache.nixos.org\"\n    \"https://frobware.cachix.org\"\n  ];\n\n  nix.settings.trusted-public-keys = [\n    \"frobware.cachix.org-1:bXV5FjZTALVuEDBq8TXPPa+xWvmCeihDTltC9leK6FI=\"\n  ];\n}\n```\n\nYou can also add this configuration directly in your NixOS\nconfiguration file:\n\n```\n{\n  nix = {\n    settings.substituters = [\n      \"https://cache.nixos.org\"\n      \"https://frobware.cachix.org\"\n    ];\n\n    settings.trusted-public-keys = [\n      \"frobware.cachix.org-1:bXV5FjZTALVuEDBq8TXPPa+xWvmCeihDTltC9leK6FI=\"\n    ];\n  };\n}\n```\n\nBy adding these lines, your NixOS system will use\n[frobware.cachix.org](https://frobware.cachix.org) to fetch pre-built\nbinaries, reducing build times.\n\n# License\n\nThis project is licensed under the MIT License. See the\n[LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrobware%2Fnix-bpfman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrobware%2Fnix-bpfman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrobware%2Fnix-bpfman/lists"}