{"id":37570577,"url":"https://github.com/amphineko/yonagi","last_synced_at":"2026-01-16T09:23:28.279Z","repository":{"id":210498062,"uuid":"726711019","full_name":"amphineko/yonagi","owner":"amphineko","description":"Yet another Radius panel who dreamed MPSK and EAP-TLS","archived":false,"fork":false,"pushed_at":"2025-10-19T14:37:57.000Z","size":743,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T23:16:33.623Z","etag":null,"topics":["arubanetworks","fp-ts","freeradius","io-ts","nestjs","nextjs","pki","radius","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/amphineko.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":"2023-12-03T06:34:39.000Z","updated_at":"2025-10-19T14:37:55.000Z","dependencies_parsed_at":"2024-01-28T05:23:42.203Z","dependency_job_id":"70435883-0ab9-4427-b221-3744b2b994c0","html_url":"https://github.com/amphineko/yonagi","commit_stats":null,"previous_names":["amphineko/yonagi"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/amphineko/yonagi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amphineko%2Fyonagi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amphineko%2Fyonagi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amphineko%2Fyonagi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amphineko%2Fyonagi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amphineko","download_url":"https://codeload.github.com/amphineko/yonagi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amphineko%2Fyonagi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"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":["arubanetworks","fp-ts","freeradius","io-ts","nestjs","nextjs","pki","radius","typescript"],"created_at":"2026-01-16T09:23:27.616Z","updated_at":"2026-01-16T09:23:28.269Z","avatar_url":"https://github.com/amphineko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## TL;DR\n\n-   RADIUS server for small-scale wireless networks\n-   Based on [FreeRADIUS](https://github.com/FreeRADIUS/freeradius-server)\n-   Has a web dashboard for configs and PKI\n-   Supports Aruba/Cisco MPSK and EAP-TLS authentication methods\n-   Supports certificate-based **EAP-TLS** authentication\n-   Supports password-based **EAP-GTC** and **EAP-MSCHAPv2** authentication\n\n## Getting Started\n\n### Prepare\n\n-   Clone this repository (recommended), or download the `docker-compose.yml` and create `data` directory\n-   (Optional) Modify `docker-compose.yml` to use `master` branch instead of `latest` tag\n-   Run `docker compose up -d` (Docker and Docker Compose plugin required)\n\n### Configure\n\n-   Open `http://localhost:3000` on your browser\n\n    -   Configure your NAS clients (e.g. Aruba Mobility Controllers or Aruba Instant APs)\n    -   (Optional) Configure MPSKs for WPA-Personal SSID/devices\n    -   (Optional) Initialize PKI and generate certificates for EAP-TLS (WPA-Enterprise)\n    -   (Optional) Download client certificates from PKI dashboard to your devices\n\n-   Restart by using the reload button on the top-right corner, to apply changes of your PKI\n\n## Features \u0026 Roadmap\n\n-   Web Portal\n\n    -   MPSK Authentication Dashboard\n        -   CRUD: Name/Phy Address/PSK\n        -   Export/Import\n    -   PKI Dashboard\n        -   CA/Server/Client Certificate Issue and Delete\n        -   Client Certificate Export (PKCS#12 with trust chain)\n            -   User-defined PKCS#12 Export Password\n    -   Password-based Authentication Dashboard\n    -   NAS Client Dashboard\n        -   CRUD: Name/Allowed Subnet/Secret\n        -   Export/Import\n    -   Radiusd Dashboard\n        -   Log Inspection\n        -   Regenerate/Reload\n\n-   Supervisor (Backend Service and Radiusd Manager)\n\n    -   API Server\n        -   Client (NAS) CRUD/Bulk-Upsert\n        -   MPSK CRUD/Bulk-Upsert\n        -   PKI CA/Server/Client CRUD\n        -   Password-based User CRUD\n        -   Radiusd [rlm_rest](https://github.com/FreeRADIUS/freeradius-server/blob/v3.0.x/raddb/mods-available/rest) Interface\n        -   Radiusd Log/Status/Reload\n    -   PKI\n        -   Certificate Authority\n            -   Self-Signed CA and Certificate Issue\n            -   ~~Existing CA/Intermediate Importing~~ (WIP:hourglass:)\n        -   CA/Server Deployment to Radiusd\n        -   Client Certificate Export over API (PKCS#12 with trust chain)\n    -   Radiusd\n        -   Child Process Management\n        -   Configuration Rendering\n    -   Storage\n        -   File/JSON-based Storage\n            -   Clients, MPSKs\n            -   PKI\n        -   SQLite-backed Storage\n            -   Clients, MPSKs\n            -   PKI\n        -   ~~PostgreSQL-backed Storage~~ (WIP:hourglass:)\n\n## Project Structure\n\n-   `/common` - Shared Libraries: Serializers and Typings on [io-ts](https://github.com/gcanti/io-ts)\n    -   `/api` - specific for APIs between `@yonagi/supervisor` and `@yonagi/web`\n-   `/supervisor` - The Radiusd Supervisor/Daemon on [NestJS](https://github.com/nestjs/nest)\n    -   `/api` - API Controllers: Logic and Sanitization\n    -   `/pki` - PKI: CA and Certificate Management on _PKI.js_\n    -   `/configs` - Radiusd Config Generation\n    -   `/radiusd` - Radiusd Process Management\n-   `/web` - The Web Frontend on [next.js](https://github.com/vercel/next.js)\n    -   `/app` - React pages with some shiny server components\n    -   `/lib` - Shared libraries for all pages\n\n## Dependencies\n\n-   [fp-ts](https://github.com/gcanti/fp-ts/)/[io-ts](https://github.com/gcanti/io-ts/): Functional Programming and Type-Safe Serialization/Vaidation\n-   [NestJS](https://github.com/nestjs/nest): Dependency Injection and API Server\n-   [next.js](https://github.com/vercel/next.js): The React Frontend\n-   [PKI.js](https://github.com/PeculiarVentures/PKI.js): X.509 Certificate and PKCS #12 Support\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famphineko%2Fyonagi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famphineko%2Fyonagi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famphineko%2Fyonagi/lists"}