@laduke/joiner

0.0.4 • Public • Published

configure zerotier nodes remotely

Node.js CI

Get a list of zerotier networks from remote urls, join them, and leave any other networks. Keep your device in sync without remembering all those network ids.

The only flags now are --file, --url, --tokenPath, --watch

You can use multiple --file and --url flags at once.

  • npx @laduke/joiner --url http://example.com/work-networks.json --file ./home-networks.json --file test-networks.json

You can provide networks on stdin

  • echo "[{\"id\": \"1234123412341234\" }]" | npx @laduke/joiner

See verbose more logs with env var

  • LOG_LEVEL=debug npx @laduke/joiner

  • --watch<=5000> will poll all files and urls every x ms for new config

json format for now:

example.com/work-networks.json

{
  "networks": [{ "id": "2222222222222222", "allowDNS": true }, { "id": "4444444444444444" }]
}

use cases

  • switching contexts on your workstation
    • join client A's networks, leave client B's
    • join test networks
    • leave all networks
  • remotely controlling nodes; migrate them to new or additional networks, without user interaction
  • boot strap new vms onto networks

todo

  • [x] github action tests
  • [x] linter,formatter
  • [x] refarcter
  • [x] local file config
  • [x] accept stdin
  • [x] publish
  • [ ] better error messages
  • [ ] handle changed settings like allowDNS, only works right on first join
  • [ ] logging
  • [ ] containerize
  • [ ] systemd timer service
  • [ ] macos service
  • [ ] figure out a better shape for the config data
  • [ ] generate config from terraform output
  • [ ] port to static language
  • [ ] build into zerotier-one

Readme

Keywords

none

Package Sidebar

Install

npm i @laduke/joiner

Weekly Downloads

0

Version

0.0.4

License

none

Unpacked Size

28.4 kB

Total Files

21

Last publish

Collaborators

  • laduke