Next.js+React web interface for controlling HAProxy clusters (groups of servers), in conjunction with with https://gitgud.io/fatchan/haproxy-protection.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Thomas Lynch 4665c63de0 Prevent hard navigating to the same URL with redirects in api responses. 4 days ago
autorenew Make wildcard certs handled properly during renewing/getting root domain of a wildcard for a cert 4 months ago
components Add basedflare.com footer link, make some names in code more generic 2 months ago
controllers Update openapi paths to v3 1 month ago
healthcheck increase timeout 3 months ago
img update README 1 year ago
loki ESM other processes (worker, stats, loki, autorenew, etc) 10 months ago
maps Add notes and ASN name display to asn blocking map 8 months ago
pages Fix render hydration mismatch on onboarding page 1 month ago
public Add sitemap and permissive robots.txt 1 year ago
stats Refactor autodiscover into a service 4 weeks ago
sync wip make the sync call take a url instead of hostname 3 weeks ago
.dockerignore Allow ca cert and pinned fp/s to be separate, and ignore node_modules in dockerignore, vastly speeds up builds (duh) 1 year ago
.env.example cc and ccn geo blocking 10 months ago
.eslintrc.json Next.js 13, new bootstrap, ESM everything 10 months ago
.gitignore Remove unused down.js, now db controlled 11 months ago
Dockerfile Start on DNS UI 1 year ago
LICENSE add AGPLv3 license 2 years ago
README.md ditto of jschan repo change 2 months ago
acme.js Update acme.js to create CAAs for letsencrypt 7 months ago
agent.js Switch stats worker to node-fetch 3 months ago
api.js Prevent hard navigating to the same URL with redirects in api responses. 4 days ago
autodiscover.js Refactor autodiscover into a service 4 weeks ago
ca.js Add basedflare.com footer link, make some names in code more generic 2 months ago
db.js Next.js 13, new bootstrap, ESM everything 10 months ago
docker-compose.yml Start on DNS UI 1 year ago
ecosystem.config.cjs Next.js 13, new bootstrap, ESM everything 10 months ago
next.config.js Next.js 13, new bootstrap, ESM everything 10 months ago
package-lock.json Add "sharp" for next.js auto image optimization 2 months ago
package.json Add "sharp" for next.js auto image optimization 2 months ago
redis.js Fix stats queue 10 months ago
redlock.js Next.js 13, new bootstrap, ESM everything 10 months ago
reset.js Remove the stupid concept of clusters being in the DB, purely read from .env for now 3 months ago
router.js Add debug logs in dataplaneretry 4 days ago
server.js make server use host and port vars in listen() 3 months ago
specification_openapiv3.js Update openapi paths to v3 1 month ago
templates.js Next.js 13, new bootstrap, ESM everything 10 months ago
update.js Next.js 13, new bootstrap, ESM everything 10 months ago
util.js Add notes to other maps and improve the display to use the "-" icon like other empty rows 8 months ago

README.md

BasedFlare Control Panel

Work in progress. Not recommended for production deployment. No instructions or help provided whatsoever.

Internally uses haproxy dataplaneapi. Intended for use with haproxy-protection.

Provides a control panel interface to conveniently manage clusters (groups of identically configured) HAProxy servers. Can be used with a single server cluster. Uses haproxy runtime apis to update maps, acls, etc.

Features:
  • List/add/remove clusters (server groups).
  • List/add/remove domains for your account.
  • Control allowed hosts for a cluster.
  • Custom backend server IP and port per-domain.
  • HTTPS certificate management. Automatically generate for domain(s) and upload to cluster servers.
  • Supports local private CA. Can install root cert on all your proxies and can sign CSR's for proper origin ssl validation.
  • IP or subnet blacklist. Supports ipv4 and ipv6.
  • IP or subnet whitelist. Supports ipv4 and ipv6.
  • Redirects, rewrites url to a different domain+path.
  • Protection rules, choose bot protection mode "none" (whitelist), proof-of-work or proof-of-work+captcha. Can be domain-wide or a domain+path. Path overrides domain-wide.
  • Global override for protection mode, to enable for all domains in a cluster.
  • Maintenance mode, disables proxying for selected domains and serves an "under maintenance" page from haproxy.
  • Statistics page with server and backend-level breakdowns based on haproxy stats socket data. Ability to export statistics to influxdb.

License

GNU AGPLv3, see LICENSE.

Screenshots

screenshot

For generous people

Bitcoin (BTC): bc1q4elrlz5puak4m9xy3hfvmpempnpqpu95v8s9m6

Monero (XMR): 89J9DXPLUBr5HjNDNZTEo4WYMFTouSsGjUjBnUCCUxJGUirthnii4naZ8JafdnmhPe4NP1nkWsgcK82Uga7X515nNR1isuh