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 22efb20604 Remove unused down.js, now db controlled 1 year ago
autorenew Hard fail auto renew on error and disable autorestart to manually investigate 1 year ago
components Styling improvements 1 year ago
controllers - Change certs to use DNS challenge always 1 year ago
healthcheck Define more errors that can be safely ignored in healthchecker, and improve the logs 1 year ago
img update README 2 years ago
loki Remove unused timers in loki pruner 1 year ago
pages - fix table nested textarea outlines 1 year ago
public Add sitemap and permissive robots.txt 1 year ago
stats Add "t" prop to templates 1 year ago
.dockerignore Allow ca cert and pinned fp/s to be separate, and ignore node_modules in dockerignore, vastly speeds up builds (duh) 2 years ago
.env.example Add loki pruner job to call to loki a delete query for any hh labels that dont match a domain in any existing users domains 1 year ago
.eslintrc.json eslint, fix some bigs 2 years ago
.gitignore Remove unused down.js, now db controlled 1 year ago
Dockerfile Start on DNS UI 1 year ago
LICENSE add AGPLv3 license 2 years ago
README.md Make all the tables aligned and not ugly as fuck 1 year ago
acme.js Update autorenew and acme handling to allow passing challenge priority, and use dns-01 for autorenewal 1 year ago
agent.js Allow ca cert and pinned fp/s to be separate, and ignore node_modules in dockerignore, vastly speeds up builds (duh) 2 years ago
api.js Add an onboarding check and redirect to lead people to onboarding after signing up 1 year ago
ca.js Testing backend of allowing wildcard certs with DNS challenge automated 1 year ago
db.js Fix some stupidity in DNS page loading and APIs, remove default db "test" collection name 1 year ago
docker-compose.yml Start on DNS UI 1 year ago
ecosystem.config.js Add new autorenew task that fetches expired certs and prints their expiry, subject, altnames. TODO actually renewing 1 year ago
gulpfile.js fix a few bugs in cert issuance and comment out a check in cluster deletion until they are converted to have an ID 2 years ago
next.config.js implement global toggle 2 years ago
package-lock.json - fix table nested textarea outlines 1 year ago
package.json - fix table nested textarea outlines 1 year ago
redis.js separate lock and queue redis to separate db keyspace 1 year ago
redlock.js separate lock and queue redis to separate db keyspace 1 year ago
router.js Allow /down API to append to set or set to empty list when passed no new IPs 1 year ago
server.js Make server send ready signal and gracefully handle SIGINT and shutdown messages for pm2 graceful reloads 1 year ago
specification_openapiv3.js Update openapi specification for dataplaneapi 1 year ago
templates.js Add an onboarding check and redirect to lead people to onboarding after signing up 1 year ago
update.js Fix update when run as main vs when used as module 1 year ago
util.js Refactor some wildcard and approxsubject code to single util 1 year 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

Oxen (OXEN): LBjExqjDKCFT6Tj198CfK8auAzBERJX1ogtcsjuKZ6AYWTFxwEADLgf2zZ8NHvWCa1UW7vrtY8DJmPYFpj3MEE69CryCvN6