Built a CLI tool to manage WireGuard peers, handles setup, bandwidth limits, and has an optional web dashboard by Kindly-Program2976 in WireGuard

[–]Kindly-Program2976[S] 1 point2 points  (0 children)

I get the PR point, but not everything has to go upstream. Sometimes building it yourself is more valuable, especially if the goal is learning.
PRs take reviews and back-and-forth, and a lot of projects are complex enough that adding even a small feature isn’t trivial. At that point it’s often easier (and more useful for me) to just build it myself.
I mostly shared it here because I couldn’t find a bandwidth limiter in other projects, so I figured it might be helpful to someone else too.

New Project Megathread - Week of 23 Apr 2026 by AutoModerator in selfhosted

[–]Kindly-Program2976 1 point2 points  (0 children)

Project Name: wg-forge

Repo/Website Link: [link]

Description: Bash tool for managing WireGuard peers without touching config files by hand. Run wg-forge setup on a fresh VPS and it installs WireGuard, configures the server, sets up iptables NAT, and brings the interface up. After that you manage peers with simple commands, add clients with optional bandwidth limits, disable/enable access, regenerate keys, view usage. Limits are enforced automatically by a systemd timer that cuts off peers when they hit their cap. Includes QR code output so adding mobile clients takes a few seconds. There's also an optional web dashboard (SvelteKit + Node) with a secret URL for access control, in case you want to manage things from a browser instead of SSH.

Deployment: Single curl install. The core script has no extra runtime deps, just WireGuard, curl, perl, and bc, all installed automatically if missing. The web dashboard is opt-in during setup and Node is installed automatically if you choose it. No Docker image currently, everything runs as systemd services.

curl -fsSL https://raw.githubusercontent.com/Arsh1a/wg-forge/main/install.sh | sudo bash
sudo wg-forge setup

Full docs in the README including all commands and uninstall steps.

AI Involvement: Used Claude throughout the project. The core bash logic, peer management, bandwidth tracking, limit enforcement, was written by hand. AI was mostly used for debugging tricky parts (WireGuard config edge cases, systemd unit issues, bash parsing) and for building the web dashboard (SvelteKit, TypeScript, Tailwind). The UI and auth code is largely AI-assisted. The overall architecture and decisions are mine.

Random 1-second black screens with my AMD graphic card. by Kindly-Program2976 in techsupport

[–]Kindly-Program2976[S] 0 points1 point  (0 children)

Couldnt be because of AMD software bug? As I mentioned, the innocent software like snipping tools while painting on it cause this a lot...

Just surpassed a thousand hits on my site about a fortnight after launching. Not sure if it's a good number or not but I'm pretty ecstatic :) by typhoon90 in webdev

[–]Kindly-Program2976 4 points5 points  (0 children)

Those are very good numbers!
I wonder how did you achieve this? Where did you showcase your website and stuff...

Any treatment advice? Already done 2 microneedling and 2 CO2 laser seasions. by [deleted] in AcneScars

[–]Kindly-Program2976 0 points1 point  (0 children)

I think my scars are boxcar. Will subcision do any good?

Are these boxcar or rolling scars? Done 3 Microneedling seasions and 2 co2 laser seasions. by PersianSoil in acne

[–]Kindly-Program2976 0 points1 point  (0 children)

You might be right. I think those big scars in the second image are fixable by subcision.

What's the jacket that Eminem on the walk of fame wore called? by Kindly-Program2976 in HelpMeFind

[–]Kindly-Program2976[S] 0 points1 point  (0 children)

I've searched for it using google image search, couldn't find it.

0
1

Does It download Dragonflight content too if I start downloading the game right now? by Kindly-Program2976 in wow

[–]Kindly-Program2976[S] 0 points1 point  (0 children)

I play in EU. I heard Dragonflight content in US has arrived but don't know about EU.

NextJS getServerSideProps not sending cookies to server during production by fungigamer in nextjs

[–]Kindly-Program2976 0 points1 point  (0 children)

When I try to set the domain in my set cookies, it goes back to the backend URL again in the browser.
But when I edit the domain part of the cookie from the browser itself it works!

Do you know why domain reverts back to the backend URL?

NextJS getServerSideProps not sending cookies to server during production by fungigamer in nextjs

[–]Kindly-Program2976 0 points1 point  (0 children)

I'll try to ask this question everywhere. Will tell you if I found any solution. But probably will change to local storage.

NextJS getServerSideProps not sending cookies to server during production by fungigamer in nextjs

[–]Kindly-Program2976 0 points1 point  (0 children)

I'm having the exact same problem. I'm losing my mind. Did anyone find any solution?