{"id":31636430,"url":"https://github.com/netgoat-xyz/netgoat","last_synced_at":"2026-04-10T15:34:45.732Z","repository":{"id":302199194,"uuid":"1011549554","full_name":"netgoat-xyz/netgoat","owner":"netgoat-xyz","description":"A Cloudflare alternative for local and cloud use, can be used ontop of cloudflare for cloudflares paid features, but for free!","archived":false,"fork":false,"pushed_at":"2025-10-04T08:49:30.000Z","size":13165,"stargazers_count":492,"open_issues_count":1,"forks_count":20,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-10-04T10:32:57.117Z","etag":null,"topics":["cloudflare","dns","foss","hackclub","homelab","javascript","nameserver","nextjs","reverse-proxy","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://netgoat.xyz","language":"JavaScript","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/netgoat-xyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":null,"open_collective":"netgoat","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2025-07-01T02:02:32.000Z","updated_at":"2025-10-04T10:21:10.000Z","dependencies_parsed_at":"2025-07-09T09:35:40.218Z","dependency_job_id":"635c3fb3-2c40-4c4f-ba6e-1225b686a61e","html_url":"https://github.com/netgoat-xyz/netgoat","commit_stats":null,"previous_names":["cloudable-dev/netgoat","netgoat-xyz/netgoat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/netgoat-xyz/netgoat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgoat-xyz%2Fnetgoat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgoat-xyz%2Fnetgoat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgoat-xyz%2Fnetgoat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgoat-xyz%2Fnetgoat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netgoat-xyz","download_url":"https://codeload.github.com/netgoat-xyz/netgoat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netgoat-xyz%2Fnetgoat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278703741,"owners_count":26031246,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cloudflare","dns","foss","hackclub","homelab","javascript","nameserver","nextjs","reverse-proxy","tailwindcss","typescript"],"created_at":"2025-10-07T01:01:34.406Z","updated_at":"2025-10-07T01:05:52.107Z","avatar_url":"https://github.com/netgoat-xyz.png","language":"JavaScript","funding_links":["https://opencollective.com/netgoat","https://opencollective.com/cozy-critters-society"],"categories":["Go","JavaScript"],"sub_categories":[],"readme":"\u003cimg width=\"5658\" height=\"1600\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d30fb971-4b39-490c-ac08-0d688e8f9ada\" /\u003e\n\n# NetGoat — Self-Hostable Cloudflare Alternative (Reverse Proxy Engine)\n\n## 💖 Special Thanks\n\nA huge thank you to **Cozy Critters Society** and **Snow** for being our first donors! Their support means the world to us. Check out their nonprofit here: [Cozy Critters Society](https://opencollective.com/cozy-critters-society).\n\n\u003e *“The team at Cozy Critters Society is happy to support the development of NetGoat in hopes that we can help them succeed in making their self-hostable Cloudflare alternative.”*\n\n---\n\n\n## TLDR: Work In Progess\nHii! Its ducky the project is Work In Progress and will be publicly working beta at December\n\n**NetGoat** is a **blazing-fast, self-hostable reverse proxy and traffic manager** designed for developers, homelabbers, and teams who want **Cloudflare-like features** without the cost.\n\nKey Features:\n\n* **Zero Trust Networking** – secure your services without hassle.\n* **DDoS Protection** – keep your traffic safe from attacks.\n* **SSL Termination** – handle certificates automatically.\n* **Rate Limiting** – control traffic and prevent abuse.\n* **WebSocket Support** – real-time apps? No problem.\n\nBuilt with **modern tools** for maximum performance and developer experience:\n\n* **Bun** for super-fast runtime.\n* **Next.js** for robust front-end.\n* **Fastify** for high-performance backend.\n* **TailwindCSS** for sleek, responsive UI.\n\n**NetGoat** gives you full control over your traffic, security, and performance—**all self-hosted**.\n\n\n\n ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white) ![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white) ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E) ![Markdown](https://img.shields.io/badge/markdown-%23000000.svg?style=for-the-badge\u0026logo=markdown\u0026logoColor=white) ![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge\u0026logo=typescript\u0026logoColor=white) ![Shell Script](https://img.shields.io/badge/shell_script-%23121011.svg?style=for-the-badge\u0026logo=gnu-bash\u0026logoColor=white) ![Cloudflare](https://img.shields.io/badge/Cloudflare-F38020?style=for-the-badge\u0026logo=Cloudflare\u0026logoColor=white)  ![Express.js](https://img.shields.io/badge/express.js-%23404d59.svg?style=for-the-badge\u0026logo=express\u0026logoColor=%2361DAFB) ![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white) ![Next JS](https://img.shields.io/badge/Next-black?style=for-the-badge\u0026logo=next.js\u0026logoColor=white) ![NPM](https://img.shields.io/badge/NPM-%23000000.svg?style=for-the-badge\u0026logo=npm\u0026logoColor=white) ![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white)![Webpack](https://img.shields.io/badge/webpack-%238DD6F9.svg?style=for-the-badge\u0026logo=webpack\u0026logoColor=black)  ![MongoDB](https://img.shields.io/badge/MongoDB-%234ea94b.svg?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n ![ESLint](https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge\u0026logo=eslint\u0026logoColor=white) \n\n![Stats](https://hackatime-badge.hackclub.com/U082B71HP8B/NetGoat)\n\n\u003e Built for [HackClub Summer of Making](https://summer.hackclub.com)\n\n\u003e Join our discord for support, annoucements, updates \u0026 bugs!! [Click Me To Join!](https://discord.com/invite/3aJ7MdJsZV) ![Discord](https://img.shields.io/discord/1350110102337749062)\n\nNetGoat is an advanced reverse proxy engine designed to act as an **additional layer** on top of Cloudflare — enabling **premium-grade features**, **zero-cost scaling**, and **maximum control** for power users and homelabbers.\n\n---\n\n##  Screenshots\nSay cheese!\n\u003cimg width=\"1639\" height=\"1114\" alt=\"image\" src=\"https://github.com/user-attachments/assets/10590637-07b6-48c5-b083-1c13c69b9a67\" /\u003e\n\u003cimg width=\"1636\" height=\"1131\" alt=\"image\" src=\"https://github.com/user-attachments/assets/36381a53-b201-4961-ab39-3f583033d75a\" /\u003e\n\u003cimg width=\"1649\" height=\"1109\" alt=\"image\" src=\"https://github.com/user-attachments/assets/e5890bf2-769a-4487-8442-6a0ab0e17d3d\" /\u003e\n\u003cimg width=\"1630\" height=\"1120\" alt=\"image\" src=\"https://github.com/user-attachments/assets/a294d0c0-019e-4cac-904e-6f5a10b33b6a\" /\u003e\n\n\n##  Features\n\n- **Anti-DDoS \u0026 WAF** — Filters like a hawk. Blocks malicious requests, bots, and common exploits.\n- **Rate Limiting \u0026 Request Queuing** — Your API won’t get nuked.\n- **Auto SSL \u0026 TLS Termination** — Free SSL with auto-renew.\n- **Load Balancing \u0026 Failover** — Multinode routing with zero-downtime.\n- **Real-Time Metrics Dashboard** — Monitor traffic, bandwidth, errors, and hits.\n- **Dynamic Rules Engine** — Write custom rules in JS/TS to handle routing, caching, filtering, etc.\n- **WebSocket \u0026 HTTP/2 Ready** — Handles modern protocols like a beast.\n- **Per-Domain Configs** — Define behavior per site with regex/wildcard support.\n- **Plugin System** — Extend NetGoat with custom plugins or middlewares.\n- **Cloudflare Zero Trust Support** — Acts as a trusted upstream in Zero Trust setups.\n- **Smart Caching Layer** — Custom cache policies per route, endpoint, or asset.\n\n## Seamless intergration\n\n- **DNS Searching** — Automatically scans your domains to automatically create a suitable Proxy record\n- **Cloudflare** — Manage cloudflare tunnels and more with our UI\n- **Bandwidth Limits** — Limit or throttle specific domains or proxy's\n\n## Quick Start\nWe recommend [datalix](https://datalix.eu/a/netgoat) for cheap and highly avaliable vps'ses\n\nhttps://docs.netgoat.xyz (not published yet)\n\n## Running Services with systemd (Linux)\n\nPrefer systemd over PM2? You can automate unit creation with the included script.\n\nAutomated one-liner (installs units for core, LogDB, CTM and Frontend):\n\nNote: requires Bun installed and root privileges.\n\ncurl -fsSL https://raw.githubusercontent.com/cloudable-dev/NetGoat/main/scripts/install-systemd.sh | sudo bash -s -- --root-dir /opt/netgoat\n\nOr run locally from the repo:\n\nsudo bash scripts/install-systemd.sh --root-dir \"$(pwd)\" --build-frontend\n\nUseful flags:\n- --user \u003cuser\u003e / --group \u003cgroup\u003e: system user/group to run services (default: netgoat)\n- --no-netgoat, --no-logdb, --no-ctm, --no-frontend: skip specific services\n- --include-docs: also install the docs site service from ./docs\n- --dev-frontend / --dev-docs: run Next.js in dev mode instead of prod\n- --build-frontend / --build-docs: run bun run build before creating units\n- --no-start: write units but do not enable/start them\n\nServices created:\n- netgoat.service (root)\n- netgoat-logdb.service (./LogDB)\n- netgoat-ctm.service (./CentralMonServer)\n- netgoat-frontend.service (./reactbased)\n- netgoat-docs.service (./docs, optional)\n\nPorts to allow (typical): 80, 443, 1933, 3000, 3010, 2222.\n\n## Open Source Projects That Helped me Build\n* [Bun](https://bun.sh) - [Github](https://github.com/oven-sh/bun) - MIT License\n\n* [ShadCN](https://ui.shadcn.com) - [Github](https://github.com/shadcn-ui/ui) - MIT License\n\n* [NextJS](https://nextjs.org/) - [Github](https://github.com/vercel/next.js/) - MIT License\n\n* [Fastify](https://fastify.dev) - [Github](https://github.com/fastify/fastify) - MIT License\n\n* [TailwindCSS](https://tailwindcss.com) - [Github](https://github.com/tailwindlabs/tailwindcss) - MIT License\n\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/#cloudable-dev/netgoat\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=cloudable-dev/netgoat\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=cloudable-dev/netgoat\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=cloudable-dev/netgoat\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetgoat-xyz%2Fnetgoat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetgoat-xyz%2Fnetgoat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetgoat-xyz%2Fnetgoat/lists"}