{"id":28569408,"url":"https://github.com/instantwebp2p/appnet.link-controller","last_synced_at":"2025-08-30T12:36:34.314Z","repository":{"id":43190802,"uuid":"127213368","full_name":"InstantWebP2P/appnet.link-controller","owner":"InstantWebP2P","description":"AppNet.Link Protocol Controller Services","archived":false,"fork":false,"pushed_at":"2025-05-14T02:23:08.000Z","size":883,"stargazers_count":9,"open_issues_count":2,"forks_count":4,"subscribers_count":5,"default_branch":"v4.1.x","last_synced_at":"2025-06-04T13:47:29.544Z","etag":null,"topics":["cryptocurrency","decentralized-applications","p2p","p2p-http","stun","turn","webservice"],"latest_commit_sha":null,"homepage":"https://instantwebp2p.github.io/appnet.link-controller/","language":"JavaScript","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/InstantWebP2P.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}},"created_at":"2018-03-29T00:10:31.000Z","updated_at":"2025-05-14T02:23:05.000Z","dependencies_parsed_at":"2024-01-16T12:47:29.912Z","dependency_job_id":"6b15f40d-47d0-4402-b0c2-a538fd77d3f2","html_url":"https://github.com/InstantWebP2P/appnet.link-controller","commit_stats":{"total_commits":266,"total_committers":4,"mean_commits":66.5,"dds":"0.30451127819548873","last_synced_commit":"0fd85c0c05f88ad57b903556c6b8bdf644604604"},"previous_names":["instantwebp2p/iwebpp.io-controller"],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InstantWebP2P%2Fappnet.link-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InstantWebP2P%2Fappnet.link-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InstantWebP2P%2Fappnet.link-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InstantWebP2P%2Fappnet.link-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InstantWebP2P","download_url":"https://codeload.github.com/InstantWebP2P/appnet.link-controller/tar.gz/refs/heads/v4.1.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InstantWebP2P%2Fappnet.link-controller/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259114721,"owners_count":22807255,"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":["cryptocurrency","decentralized-applications","p2p","p2p-http","stun","turn","webservice"],"created_at":"2025-06-10T17:14:48.694Z","updated_at":"2025-06-10T17:14:50.359Z","avatar_url":"https://github.com/InstantWebP2P.png","language":"JavaScript","readme":"# appnet.link-controller\nAppNet.Link controller services to support [AppNet.link](https://github.com/InstantWebP2P/appnet.link) protocol\n\n\n## 1. Prerequisites\n\n* Build Neo4j 2.1.8 on Linux with Docker, then start Neo4j services\n\n      ./neo4jpkg\n\n* Copy Neo4j packages out of Docker image to local\n\n      ./neo4jpkg cp -rf /tmp/*.tar* .\n\n\n## 2. Install\n \n### 2.1 Install stand-alone\n\n* appnet.link-controller depends on nodejs-httpp, please build it from [nodejs-httpp](https://github.com/InstantWebP2P/nodejs-httpp.git)\n\n* clone this repo and install dependency modules\n\n      npm i\n\n* generate SSL certs once for your own Domain Name, like\n\n    ` ./tools/genSrvKey.bash 51dese.com `\n\n* start controller services\n\n    ` ~/nodejs-httpp/node ./bin/srv.js `\n\n* now ready to serve [appnet.link](https://github.com/InstantWebP2P/appnet.link) client\n\n\n#### 2.2 Install on Linux with Docker\n\n* Build nodejs-httpp docker images, refer to [nodejs-httpp](https://github.com/InstantWebP2P/nodejs-httpp)\n\n* Clone this repo\n\n* Install dependency modules\n\n      ./appbld npm i\n      \n* Generate SSL certs once for your own Domain Name, like\n\n      ./appbld ./tools/genSrvKey.bash 51dese.com\n      \n* Packaging and start services\n      \n      ./apppkg \n\n      Start services ...\n      name-server-0 listen on udp port 51686\n      name-server-1 listen on udp port 51868\n      agent-server listen on udp port 51866\n      httpp proxy-server listen on udp port 51688\n      http proxy-server listen on tcp port 51688\n\n* Testing service if start successfully\n\n      ./apppkg node tests/connection.js \n  \n      node tests/connection.js ...\n      connecting to alternative name-server successfully\n      connecting to primary name-server successfully\n\n\n## Code structure\n\n```js\n\n* sdp.js                 - Session Desription implementation\n* stun.js                - STUN protcol implementation\n* turn.js                - TURN protocl implementation\n* db/sdp.js.             - Session data model persistent in GraphDB\n* vurl.js.               - Virtual URL implementation\n\n* appnet.link-server.js    - AppNet.link protocol controller implementation\n* appnet.link-server-v2.js - AppNet.link protocol controller V2 implementation using SecureWebsocket and NaclCert\n\n* ssl.js                 - SSL/RSA certs generate utils\n* demos/                 - demos\n* ca-certs               - your own Root CA certs\n* certs                  - dynamical generated SSL/RSA certs for connections\n* routepath.js           - pure JS tracerouter implementation using UDP/TTL probe. TBD\n\n```\n    \n## More demos:\n\n    Look on demos/\n\n\n## TODO:\n\n* User authentication\n* Domain authorization\n* Improve documents, Protocol Spec, RFC draft\n* Cluster implementation based on [Raft](https://raft.github.io/) consensus protocol\n\n\n## Support us\n\n* Welcome contributing on document, codes, tests and issues\n\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2012-present Tom Zhou(appnet.link@gmail.com)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finstantwebp2p%2Fappnet.link-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finstantwebp2p%2Fappnet.link-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finstantwebp2p%2Fappnet.link-controller/lists"}