Go to file
Yadunand Prem 6929379072
feat: backup
2024-05-08 16:20:45 +08:00
internal feat: backup 2024-05-08 16:20:45 +08:00
flake.lock feat: add dev flake.nix and wrapper for context 2024-04-14 01:46:33 +08:00
flake.nix feat: add dev flake.nix and wrapper for context 2024-04-14 01:46:33 +08:00
go.mod feat: add DB and models 2024-04-07 21:03:24 +08:00
go.sum feat: add DB and models 2024-04-07 21:03:24 +08:00
Readme.md feat: readme! 2024-04-21 02:42:42 +08:00
roti.db feat: backup 2024-05-08 16:20:45 +08:00
roti.go feat: start the project 2024-03-16 00:44:04 +08:00

Roti, Yet another wireguard manager

Roti is yet another wireguard manager, built with the idea of replacing tailscale in my infrastructure.

How does authentication work?

A node will send a 1.authkey pertaining to a certain user to the server, 2. Nodekey. The server verifies that the authkey is legitmate, and then sends the device a 1 time-use nodeKey (For the node to send a Public Key back to the server)

sequenceDiagram
participant Node1
participant Server
participant Node2
Node1->>Server: Hostname, Authkey
Server-->>Node1: NodeID,  NodeIP, Server PublicKey, Server Private IP
Node1 ->>Server: Node Public Key, NodeID, Authkey
Node2->>Server: Hostname, Authkey
Server-->>Node2: NodeID, Server PublicKey
Node2 ->>Server: Node Public Key, NodeID, Authkey
Node1 ->> Server: Updates?
Server ->> Node1: Node2Hostname, Node2 IP, Node2 Public Key
Node2 ->> Server: Updates?
Server ->> Node2: Node1Hostname, Node1 IP, Node1 Public Key