{"id":41090087,"url":"https://github.com/simllll/node-radius-server","last_synced_at":"2026-01-22T14:28:06.204Z","repository":{"id":36977780,"uuid":"240614989","full_name":"simllll/node-radius-server","owner":"simllll","description":"Radius Server in node js optimized for google auth","archived":false,"fork":false,"pushed_at":"2023-02-27T04:57:19.000Z","size":6186,"stargazers_count":70,"open_issues_count":20,"forks_count":32,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-10-10T08:13:28.024Z","etag":null,"topics":["freeradius","imap","jumpcloud","ldap","ldap-service","pap","radius-server","ttls"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/radius-server","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simllll.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-14T23:17:04.000Z","updated_at":"2025-09-25T03:11:49.000Z","dependencies_parsed_at":"2023-02-16T15:46:32.569Z","dependency_job_id":null,"html_url":"https://github.com/simllll/node-radius-server","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/simllll/node-radius-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simllll%2Fnode-radius-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simllll%2Fnode-radius-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simllll%2Fnode-radius-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simllll%2Fnode-radius-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simllll","download_url":"https://codeload.github.com/simllll/node-radius-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simllll%2Fnode-radius-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28664655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T14:01:31.714Z","status":"ssl_error","status_checked_at":"2026-01-22T13:59:23.143Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["freeradius","imap","jumpcloud","ldap","ldap-service","pap","radius-server","ttls"],"created_at":"2026-01-22T14:28:04.580Z","updated_at":"2026-01-22T14:28:06.183Z","avatar_url":"https://github.com/simllll.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# easy extensible NodeJS RADIUS Server\n\n- supports different authentification backends\n    - LDAP (e.g. for Google LDAP Service, but also any other LDAP service)\n    - HTTP\n    - IMAP\n    - SMTP\n    - Predefined / Static username and password\n- supports WPA2 Enterprise\n    - TTLS\n    - PAP / GTC\n\nProtect your WIFI access with a username and password by a credential provider you already use!\n\nAuthentication tested with Windows, Linux, Android and Apple devices.\n\n## Introduction\n\nThis app provides a radius server to authenticate against an authentication service. To get this running\nyou need:\n\n1.  An running Auth Service (e.g. LDAP Service / Google Suite Enterprise / Gloud Identity Premium)\n2.  Optional: Create your own SSL certificate (e.g. self signed via npm run create-certificate)\n3.  Check config.js and adapt to your needs\n\n- configure authentication:\n  set authenticaiton to one of the [provided authenticators](src/auth/README.md), e.g.:\n\n```js\nvar config = {\n\t// ....\n\tauthentication: 'GoogleLDAPAuth',\n\tauthenticationOptions: {\n\t\tbase: 'dc=hokify,dc=com'\n\t}\n};\n```\n\n- set radius secret\n\n4.  Install und build server: npm install \u0026\u0026 npm run build\n5.  Start server \"npm run start\"\n\n## Quick start for using it with Google LDAP\n\n1. Install node js =\u003e 13.10.1\n    - easiest way is to install a node js version from nodejs.org or run \"npx n latest\" to install latest version.\n2. Check out the config options, e.g. for google ldap, download your certificates from http://admin.google.com/ -\u003e Apps -\u003e LDAP -\u003e Client\ndownload the files and name them \"ldap.gsuite.key\" and \"ldap.gsuite.crt\" accordingly (Ensure you have activated your newly created LDAP Client in Google Admin).\n3. Switch to this directory and run \"npx radius-server -s YourRadiusSecret\"\n4. Log into your WLAN Controller and configure the radius server to your newly running radius\n5. On your clients, just connect to the WLAN, the clients should figure out the correct method by their own,\nif they don't use: WPA2-Enterprise -\u003e EAP-TTLS -\u003e PAP / CHAP\n6. Log in with your google credentials (email + password, ... e.g. youremail@yourcompany.com)\n\n## Configuration\n\nFor authentication see [Authentication Details](src/auth/README.md).\nFor general config options run with --help or see see [config.js](config.js) in root.\n\n## Installation\n\n    npm install\n    npm run build\n\n## Usage\n\nEnsure you have installed latest node version (\u003e= 13.10.1) and run:\n\n    npm run start\n\n# Use as module\n\n```\nnpm install radius-server\n```\n\nThis allows this module to be used in other node projects:\n```ts\n  import { RadiusServer } from 'radius-server';\n\n  const radiusServer = new RadiusServer({\n      logger: this.logger,\n      secret: this.secret,\n      port: this.port,\n      address: this.hostname,\n      tlsOptions: this.tlsOptions,\n      authentication: this\n  });\n  await radiusServer.start();\n ```\n\n## Known Issues / Disclaimer\n\nSupport for this has landed in node 13.10.1, therefore ensure you have installed at least this node version.\n\n- Inner Tunnel does not act differently, even though spec says that EAP-message are not allowed to get fragmented,\nthis is not a problem right now, as the messages of the inner tunnel are small enough, but it could be a bug in the future.\nways to approach this: refactor that the inner tunnel can set max fragment size, or rebuild eap fragments in ttls after inner tunnel response\n- VLAN support is not fully configurable right now\n\nCONTRIBUTIONS WELCOME! If you are willing to help, just open a PR or contact me via bug system or simon.tretter@hokify.com.\n\n## Motivation\n\n### Why not Freeradius?\n\nThere are several reasons why I started implementing this radius server in node js. We are using\nfreeradius right now, but have several issues which are hard to tackle due to the reason that freeradius\nis a complex software and supports many uses cases. It is also written in C++ and uses threads behind the scene.\nTherefore it's not easy to extend or modify it, or even bring new feature in.\nThe idea of this project is to make a super simple node radius server, which is async by default. No complex\nthread handling, no other fancy thing. The basic goal is to make WPA2 authenticiation easy again.\n\n### 802.1x protocol in node\n\nAnother motivation is that it is very exciting to see how wireless protocols have evolved, and see\nhow a implementation like TTLS works.\n\n### Few alternatives (only non-free ones like Jumpcloud...)\n\nFurthermore there are few alternatives out there, e.g. jumpcloud is non-free and I couldn't find many others.\n\n### Vision\n\nAs soon as I understood the TTLS PAP Tunnel approach, I had this vision of making Wlan Authentification easy\nfor everyone. Why limit it to something \"complex\" like LDAP and co. This library aims to make it easy for everyone\nto implement either their own authentication mechanismus (e.g. against a database), or provides some mechansimns\nout of the box (e.g. imap, static, ldap,..).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimllll%2Fnode-radius-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimllll%2Fnode-radius-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimllll%2Fnode-radius-server/lists"}