{"id":13509885,"url":"https://github.com/stellarproject/guard","last_synced_at":"2025-04-08T23:45:11.312Z","repository":{"id":52247818,"uuid":"196384008","full_name":"stellarproject/guard","owner":"stellarproject","description":"GRPC Wireguard Server to manage tunnels","archived":false,"fork":false,"pushed_at":"2021-05-03T16:51:22.000Z","size":2653,"stargazers_count":88,"open_issues_count":2,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T15:36:04.016Z","etag":null,"topics":["go","golang","grpc","vpn","wireguard"],"latest_commit_sha":null,"homepage":"","language":"Go","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/stellarproject.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}},"created_at":"2019-07-11T11:47:03.000Z","updated_at":"2024-07-28T20:32:10.000Z","dependencies_parsed_at":"2022-08-30T19:50:16.597Z","dependency_job_id":null,"html_url":"https://github.com/stellarproject/guard","commit_stats":null,"previous_names":["crosbymichael/guard"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellarproject%2Fguard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellarproject%2Fguard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellarproject%2Fguard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellarproject%2Fguard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stellarproject","download_url":"https://codeload.github.com/stellarproject/guard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247947821,"owners_count":21023058,"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":["go","golang","grpc","vpn","wireguard"],"created_at":"2024-08-01T02:01:16.000Z","updated_at":"2025-04-08T23:45:11.293Z","avatar_url":"https://github.com/stellarproject.png","language":"Go","funding_links":[],"categories":["Go","vpn","Projects"],"sub_categories":["User Interface"],"readme":"# guard\n\nA GRPC server for managing wireguard tunnels.\n\n## Status: alpha\n\n## Requirements\n\nWireguard and it's utilities, `wg`, `wg-quick`, and `wg-quick@.service` must be installed on the system hosting\nthe `guard` server.\n\n### Run the server\n\nWhen you run the wireguard server it will automatically create its own wireguard tunnel\nthat the server binds to.  This makes the server secure to manage across your network.\nUse the `--address` flag to manage this server.\n\n```bash\n\u003e sudo guard server\n\nINFO[0000] tunnel created                                tunnel=guard0\nINFO[0000] created guard0 tunnel\n{\n \"id\": \"guard0\",\n \"listen_port\": \"10100\",\n \"address\": \"10.199.199.1/32\",\n \"public_key\": \"37uzie/EZzzDpRbVTUOtuVXwhht/599pdhseh9MJ7QE=\",\n \"endpoint\": \"127.0.0.1\"\n}\n```\n\n```bash\n\u003e sudo wg\n\ninterface: guard0\n  public key: 37uzie/EZzzDpRbVTUOtuVXwhht/599pdhseh9MJ7QE=\n  private key: (hidden)\n  listening port: 10100\n```\n\n### Create a new tunnel\n\n\nTo create a new tunnel specify the address and the endpoint for the tunnel.\nThe last argument is used as the tunnel ID and interface name on the server.\n\n```bash\n\u003e guard create --address 192.168.5.1/32 --endpoint 127.0.0.1:31000 wg0\n\n{\n \"id\": \"wg0\",\n \"listen_port\": \"31000\",\n \"address\": \"192.168.5.1/32\",\n \"public_key\": \"irDV3wkkNe6f1GLAPFNGjj0xsQsoxPCNko4Lf3igcjM=\",\n \"endpoint\": \"127.0.0.1\"\n}\n```\n\n### Delete a tunnel\n\nDelete a tunnel using the tunnel ID\n\n```bash\n\u003e guard delete wg0\n```\n\n### Create a new peer\n\nTo create a new peer and have all the keys generated for you use the `peers new` command.\nThe peer configuration will be output to `stdout` that you can copy and paste into your client.\n\n```bash\n\u003e guard peers --tunnel wg0 new --ip 192.168.5.2/32 --dns 192.168.5.1 --ips 192.168.5.0/24 --ips 192.168.0.1/24 mypeer\n\n[Interface]\nPrivateKey = kFJ6VSq+l6sBPaI2DUbEWSVI83Kcfz/yo7WfVheT+FI=\nAddress = 192.168.5.2/32\nDNS = 192.168.5.1\n\n# wg0\n[Peer]\nPublicKey = irDV3wkkNe6f1GLAPFNGjj0xsQsoxPCNko4Lf3igcjM=\nAllowedIPs = 192.168.5.0/24, 192.168.0.1/24\nEndpoint = 127.0.0.1:31000\n```\n\n### List all tunnels\n\n```bash\n\u003e guard list\n\n[\n {\n  \"id\": \"wg0\",\n  \"listen_port\": \"31000\",\n  \"address\": \"192.168.5.1/32\",\n  \"peers\": [\n   {\n    \"id\": \"mypeer\",\n    \"public_key\": \"u/eGf6olYeFSH4XoPvOSZJb9swA/qWPAlfSxRBi6Uw8=\",\n    \"allowed_ips\": [\n     \"192.168.5.2/32\"\n    ],\n   }\n  ],\n  \"public_key\": \"irDV3wkkNe6f1GLAPFNGjj0xsQsoxPCNko4Lf3igcjM=\",\n  \"endpoint\": \"127.0.0.1\"\n }\n]\n```\n\n### Delete a peer by ID\n\nYou can remove and update peers using the `peers` commands.\n\n```bash\n\u003e guard peers --tunnel wg0 delete mypeer\n\n{\n \"id\": \"wg0\",\n \"listen_port\": \"31000\",\n \"address\": \"192.168.5.1/32\",\n \"public_key\": \"irDV3wkkNe6f1GLAPFNGjj0xsQsoxPCNko4Lf3igcjM=\",\n \"endpoint\": \"127.0.0.1\"\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstellarproject%2Fguard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstellarproject%2Fguard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstellarproject%2Fguard/lists"}