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 75e48a73a5 skip internal verification check in acme because it fails sometimes and doesnt bother trying to get a cert which would work normally 1 year ago
components Improved certs page and break it out into a separate page, hide internal backends map, setup button coming soon 1 year ago
controllers Improved certs page and break it out into a separate page, hide internal backends map, setup button coming soon 1 year ago
img readme image 1 year ago
pages Improved certs page and break it out into a separate page, hide internal backends map, setup button coming soon 1 year ago
public add new favicon 2 years ago
.env.example Put username+pass in cluster URLs, and fix buffer to use safer more modern Buffer.from 1 year ago
.eslintrc.json eslint, fix some bigs 2 years ago
.gitignore Initial commit 2 years ago
Dockerfile udpate dockerfile and binds for FormData, fetch, and challenge direcotyr webroot for nginx 1 year ago
LICENSE add AGPLv3 license 2 years ago
README.md readme image 1 year ago
acme.js skip internal verification check in acme because it fails sometimes and doesnt bother trying to get a cert which would work normally 1 year ago
api.js Improved certs page and break it out into a separate page, hide internal backends map, setup button coming soon 1 year ago
db.js Initial commit 2 years ago
docker-compose.yml udpate dockerfile and binds for FormData, fetch, and challenge direcotyr webroot for nginx 1 year ago
gulpfile.js Remove useHaproxy from middlewares where not needed 1 year ago
next.config.js implement global toggle 2 years ago
package-lock.json Sidebar and mobile menu with links, improved appearance and layout. 1 year ago
package.json Sidebar and mobile menu with links, improved appearance and layout. 1 year ago
router.js Improved certs page and break it out into a separate page, hide internal backends map, setup button coming soon 1 year ago
server.js Implement acme client, no writing to db/uploading with dataplane (YET) 1 year ago
util.js Improved certs page and break it out into a separate page, hide internal backends map, setup button coming soon 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.
  • Override to toggle proof-of-work for whole cluster.
  • IP or subnet blacklist. Supports ipv4 and ipv6.
  • IP or subnet whitelist. Supports ipv4 and ipv6.
  • Protection rules, choose bot protection mode "none" (whitelist), proof-of-work or hCaptcha. Can be domain-wide or a domain+path. Path overrides domain-wide.
  • Maintenance mode, disables proxying for selected domains and serves an "under maintenance" page from haproxy.
  • Get https certificate for domains automatically from letsencrypt and upload to haproxy cluster.
Todo:
  • Improved cert management
  • Better Multi-user support
    • allow domain/cluster editing (with user dupe check) for non-admins
    • problems w/ ip whitelist and blacklist
  • Some kind of payment system
  • More advanced rules and ability to allow/block/bot mode based on those rules

Screenshots

screenshot

For generous people

Bitcoin (BTC): bc1q4elrlz5puak4m9xy3hfvmpempnpqpu95v8s9m6

Monero (XMR): 89J9DXPLUBr5HjNDNZTEo4WYMFTouSsGjUjBnUCCUxJGUirthnii4naZ8JafdnmhPe4NP1nkWsgcK82Uga7X515nNR1isuh

Oxen (OXEN): LBjExqjDKCFT6Tj198CfK8auAzBERJX1ogtcsjuKZ6AYWTFxwEADLgf2zZ8NHvWCa1UW7vrtY8DJmPYFpj3MEE69CryCvN6