mirror of
https://github.com/gravitl/netmaker.git
synced 2024-11-11 10:10:46 +08:00
2.9 KiB
2.9 KiB
FEATURE ROADMAP
0.1
Server:
- Create Networks (virtual networks)
- Allow default settings for nodes from networks
- Admin/Superuser key
- Create multiuse keys for node signup
- JWT-based auth for post-signup
- CRUD for networks
- CRUD for nodes
- Track all important info about node for networking (port, endpoints, pub key, etc)
- Timestamps for determining if nodes need updates
Agent:
- Self-installer
- Determine default settings w/o user input
- Systemd Service + timer
- Check-in functionality to retrieve updates from server
- Maintain list of up-to-date peers
- Update WG interface
- Config file for modifying node
0.2
- Separate out README into DOCS folder with the following:
- API Docs
- Usage
- Advanced Usage
- Contributing
- Roadmap
- Troubleshooting
Server:
- Allow tracking multiple networks per node
- Configure Check-in thresholds
- Separate sign-up endpoint to allow VPN-only comms after joining network
- Swagger Docs
- Build Out README
- Encode Server, Port, and Network into Keys
- Switch to Unique ID for nodes instead of MacAddress
- Public Key refresh
- Enable ipv6 addresses
- Have a "default" network created at startup
Agent:
- Test / get working on multiple linux platforms
- Set private DNS via etc hosts (node name + ip). Make it optional flag on agent.
- Decode Server, Port, and Network from Key
- Service ID / unit file for SystemD Service
- Allow multiple interfaces
- Use "Check in interval" from server
- Pre-req check on machine (wg, port forwarding)
- Enable ipv6 addresses
0.3
Server:
- Swagger Docs
- Network/Node labels
- "Read Only" mode for nodes (can't update their settings centrally, only read)
- "No-GUI mode:" Similar to existing, just do more e2e testing and make sure flow makes sense
- Let users set prefixes (node, interface)
Agent:
- Do system calls instead of direct commands
- Add a prompt for easy setup
0.4
Server:
- Private DNS
- UDP Hole-Punching (via WGSD: https://github.com/jwhited/wgsd )
- "Read Only" mode for nodes (can't update their settings centrally, only read)
Agent:
- Do system calls instead of direct commands this repo
- Add a prompt for easy setup
- Make it work as a sidecar container!!!
0.5
Server:
- Multi-user support
- Oauth
- public key cycling
Future Considerations
Server:
- Switch to distributed protocol (RAFT, Kademlia) instead of central server
- Load balance / fault tolerant server
- Change DB / make more scaleable (SQL?)
- Redis
- Network/Node labels
Agent:
- userspace via Docker or Golang
- MacOS support
- Windows support
- Certificate-based authentication