mirror of
https://github.com/gravitl/netmaker.git
synced 2025-02-25 08:34:47 +08:00
97 lines
2.9 KiB
Markdown
97 lines
2.9 KiB
Markdown
|
# FEATURE ROADMAP
|
||
|
|
||
|
### 0.1
|
||
|
**Server:**
|
||
|
- [x] Create Groups (virtual networks)
|
||
|
- [x] Allow default settings for nodes from groups
|
||
|
- [x] Admin/Superuser key
|
||
|
- [x] Create multiuse keys for node signup
|
||
|
- [x] JWT-based auth for post-signup
|
||
|
- [x] CRUD for groups
|
||
|
- [x] CRUD for nodes
|
||
|
- [x] Track all important info about node for networking (port, endpoints, pub key, etc)
|
||
|
- [x] Timestamps for determining if nodes need updates
|
||
|
|
||
|
**Agent:**
|
||
|
- [x] Self-installer
|
||
|
- [x] Determine default settings w/o user input
|
||
|
- [x] Systemd Service + timer
|
||
|
- [x] Check-in functionality to retrieve updates from server
|
||
|
- [x] Maintain list of up-to-date peers
|
||
|
- [x] Update WG interface
|
||
|
- [x] Config file for modifying node
|
||
|
|
||
|
### 0.2
|
||
|
- [ ] Separate out README into DOCS folder with the following:
|
||
|
- [ ] API Docs
|
||
|
- [ ] Getting Started
|
||
|
- [ ] Advanced Usage
|
||
|
- [ ] Contributing
|
||
|
- [ ] Roadmap
|
||
|
- [ ] Troubleshooting
|
||
|
|
||
|
**Server:**
|
||
|
- [ ] Allow tracking multiple groups 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 Group into Keys
|
||
|
- [ ] Switch to Unique ID for nodes instead of MacAddress
|
||
|
- [ ] Public Key refresh
|
||
|
- [ ] Enable ipv6 addresses
|
||
|
- [ ] Have a "default" group 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 Group 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
|
||
|
- [ ] Group/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 comma[this repo](https://github.com/falconcat-inc/WireCat-UI)nds
|
||
|
- [ ] 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
|
||
|
- [ ] Group/Node labels
|
||
|
|
||
|
**Agent:**
|
||
|
- [ ] userspace via Docker or Golang
|
||
|
- [ ] MacOS support
|
||
|
- [ ] Windows support
|
||
|
- [ ] Certificate-based authentication
|