{"id":23104781,"url":"https://github.com/mayniklas/eduroam-flake","last_synced_at":"2025-08-16T16:32:14.420Z","repository":{"id":190150408,"uuid":"682037116","full_name":"MayNiklas/eduroam-flake","owner":"MayNiklas","description":"install eduroam on Nix systems","archived":false,"fork":false,"pushed_at":"2024-05-14T07:34:03.000Z","size":14,"stargazers_count":8,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-14T08:41:01.586Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nix","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/MayNiklas.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}},"created_at":"2023-08-23T09:53:23.000Z","updated_at":"2024-05-14T07:34:08.000Z","dependencies_parsed_at":"2023-08-23T12:45:14.189Z","dependency_job_id":"ccf7c0fd-bef1-4d94-8a3a-1e3797b76051","html_url":"https://github.com/MayNiklas/eduroam-flake","commit_stats":null,"previous_names":["mayniklas/eduroam-flake"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayNiklas%2Feduroam-flake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayNiklas%2Feduroam-flake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayNiklas%2Feduroam-flake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MayNiklas%2Feduroam-flake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MayNiklas","download_url":"https://codeload.github.com/MayNiklas/eduroam-flake/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230044654,"owners_count":18164194,"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":[],"created_at":"2024-12-17T00:36:19.747Z","updated_at":"2025-08-16T16:32:14.339Z","avatar_url":"https://github.com/MayNiklas.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eduroam-flake\n\nInstall Eduroam on NixOS.\n\n## TDLR for helpdesk people\n\nInstalling Eduroam on NixOS is not much different from installing it on other Linux distributions.\nUsers need to use network-manager and execute the python script provided by the cat.eduroam.org.\nMain difference on NixOS: the way we manage dependencies is different.\n\nIn case you are not familiar with Nix, but you need to help a NixOS user to install Eduroam, here are two options:\n\n### Using this Nix Flake\n\nTake a look at the `flake.nix` file. All this flake does:\n\n1. fetch the python script\n2. Execute it with Python3 and the dependencies needed\n\nThe URLs are generated from the eduroam ID corresponding to your institution.\n\nExecute the script from GitHub directly:\n\n```sh\nnix run 'github:mayniklas/eduroam-flake'#install-eduroam-bonn\n```\n\nExecute the script from a local clone:\n\n```sh\ngit clone https://github.com/MayNiklas/eduroam-flake.git\ncd eduroam-flake\nnix run .#install-eduroam-bonn\n```\n\nor list all available scripts with `nix flake show`\n\n### Using a Nix Shell\n\n```sh\n# open a shell whith all the dependencies needed\nnix-shell -p \"python3.withPackages (ps: with ps; [ dbus-python ])\"\n\n# execute the script\npython3 \u003cyour-eduroam.py\u003e\n\n# one liner\nnix-shell -p \"python3.withPackages (ps: with ps; [ dbus-python ])\" --run python3 \u003cyour-eduroam.py\u003e\n```\n\n## Disclaimer\n\nThis is technically completely overkill and unnecessary.\nYou don't need to create a package to execute a python script when using Nix.\n\n```sh\nnix-shell -p \"python3.withPackages (ps: with ps; [ dbus-python ])\" --run python3 \u003cyour-eduroam.py\u003e\n```\n\nWould technically achieve the same result.\n\nNext month I'm giving a talk about Nix and since we need to login into Eduroam during a live demo, I thought it would be a great and simple example to talk about flakes.\n\nAlso: it took me some time to figure out, you need to use `dbus-python` instead of `pydbus`. This repository might save people time in case they find it by googling `NixOS Eduroam`. This repository might be helpful for documentation purposes.\n\n## Usage\n\n\u003e This script assumes you are using NetworkManager.\n\nFind your University's entityID:\n\n```sh\nnix run .#list-eduroam-entityIDs\n```\n\nThen add your university to the list using it's name and the id that is used to fetch the script.\n\nThen run the `nix run` command.\n\nThe first run will fail, because the hash of the python script is not known yet.\nThe error message will tell you the hash of the python script.\nAdd the hash to the university's entry.\n\nNice to know:\nTo build a Nix package, just run `nix build .#install-eduroam-bonn`.\nThe result will be in `result`. You can run it with `./result/bin/install-eduroam-bonn`.\nReviewing this file manually tells us a lot about how Nix works!\n\n## Supported Universities:\n\n| University                        | entityID | command                                |\n| --------------------------------- | -------- | -------------------------------------- |\n| Universität Bonn                  | 5138     | `nix run .#install-eduroam-bonn`       |\n| Hochschule Flensburg              | 5188     | `nix run .#install-eduroam-flensburg`  |\n| Universität Köln                  | 5133     | `nix run .#install-eduroam-koeln`      |\n| Lund University                   | 1338     | `nix run .#install-eduroam-lund` |\n| Universität Siegen                | 5356     | `nix run .#install-eduroam-siegen`     |\n| University Leipzig                | 5674     | `nix run .#install-eduroam-leipzig`    |\n| Virginia Community College System | 11835    | `nix run .#install-eduroam-vccs`       |\n| University of Strathclyde         | 2316     | `nix run .#install-eduroam-strathclyde`|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayniklas%2Feduroam-flake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmayniklas%2Feduroam-flake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayniklas%2Feduroam-flake/lists"}