Letsproxy

UI for nginx proxy with letsencrypt SSL termination support

Visit Website
January 4, 2021 Pushed the code to GitHub

Got approved for github sponsors so I decided to finally push the code I made so far to github and make it available to public.

There are still a couple of things I want to implement before I would consider this remotely production ready. First is to use background tasks so that UI is not blocking. And second implement node-red style UX with drag & drop type configuration, which should make it much easier for people to use.

Comment

April 27, 2020 Applied for OS grant

I decided to apply for an opensource grant which should push things along and help getting to v1.0.0 faster. I set v1.0.0 as a milestone and organised all the open issues that need to be completed in order to be production ready.

After that I can focus on growing community of users. Hopping this will be well accepted in the rPi community as I plan to wrap everything inside raspbian image for simple installation.

Comment

April 11, 2020 v0.2.5

Fixed 5 bugs to improve UX mainly on the input side. Just enforcing naming rules when it comes to domain/subdomains/upstreams.

Also refactored huge portions of modules to either return or throw exceptions on errors that can be easily caught and displayed as popups.

Also made a success popup on successful system configuration reload, yey :)

Comment

March 31, 2020 v0.2.4

Added Noty JS library for popup notifications for a nicer UX. Also refactored some of the modules that were not catching Promise errors correctly so that they return error messages now which can be shown in a form of nice popup messages now.

Next stop is rework of the Nginx/Acmetool error messaging

Comment

March 29, 2020 v0.2.3

Added two mayor functionalities to the code.

First one is the ability to add rewrites to server configuration. This is useful when you have websites which changed platforms and you need to redirect old URLs to new one so you don't loose SEO and/or back-links.

Second one is the ability to add extra locations to Nginx configuration. This is needed for the same example as above. When a certain URL path is matched (from old domain) you can do simple 301 (or others) redirects to new URL structure.

Comment

March 22, 2020 v0.2.2

Fixed few minor issues with logging.

Added support for acmetool unwant. Still need to decide on what events to actually call this.

Domains and upstreams are now sorted in UI.

Added support to proxy webSockets to upstreams. Letsencrypt ensures that the webSocket traffic between clients and nginx proxy is securely encrypted.
This allows me to test the configuration for another project I'm working on that needs secure RCON connections to game servers :)

Comment

March 12, 2020 v0.2.1

Finally refactored huge portions of code to fix some mayor issues with the system. Up-streams can now be shared between front-ends with out issues.

Still need to automate and add manual controls for certificates. Also nginx config does not always reload when needed.

Comment

December 28, 2019 v0.1.8

Started adding some automated tests to the project to avoid introducing stupid bugs in the future. Also implemented ESLint rules for the source code to make it more JS guidelines consistent.

Had to fix a bug with domain aliases to make it up to nginx specs.

Comment

July 14, 2019 Squashing bugs v0.1.6

Fixed a few bugs around nginx proxy configuretion so it works properly with AWS backends.

Had to refactor upstream code generator to properly generate nginx upstream configurations.

Next step: more testing on real life AWS websites.
Fingers crossed :)

Comment

July 14, 2019 Getting there v0.1.7

Refactored huge portions of the code while fixing bugs.
This is what happens when you coding your ideas from head and
don't make any plans :)

Lots of work went into the front end part of the app. Updating pug templates to make it more bearable to the users eyes.

Comment

About

I did not like the way lets encrypt certificates are handled in Rancher server. So I decided to make a UI that will control Nginx proxy with lets encrypt SSL termination.