Traefik Proxy Manager: alterative to Nginx Proxy Manager to easily expose already deployed systems
This is not a production ready project! Please be careful in how and where you use it.
You WON'T NEED any internet access to generate certificates to last THREE YEARS in your local network since this project uses mkcert to handle that. The main idea is to provide a easy and automate service using a dashboard to handle all the minor details.
After deploying CasaOS the idea to use Nginx Proxy Manager (NPM) to handle all my domains and certificates came to mind, even tho being a simple quest and having a plethora of tutorials about it at my disposal the challenge to do the same using Traefik seemed interesting. The perception was that it would be too difficult but it was very simple especially because Traefik's docs were impeccable; then the next logical step was to automate the whole process and generate a service to handle it all.
- "Why Go?" Because I'm bad at it
- "Why Bootstrap?" Because I never used before
- "Why PiHole?" Because, at the moment, it is what I'm currently using
In case that you are trying to deploy it to CasaOS, follow this blogpost in which this is covered.
You will need to install Docker and Docker-compose. Then:
- Run:
docker-compose up --build
- Wait about 30s then open https://tpm.myhouse.localhost/
- Accept the warning mentioning about the not valid certificate
- Go to Certificate tab then install the generated certificate
- Find a way to make install certificate button works
- Manage multiple domains -- currently the system supports only one but you can always deploy a dashboard to each one to "make it work"
- Add PiHole's API support to avoid using files -- this is a troublesome quest due to lack of documentation
- Also add Traefik's API support
- Add K8's API and docker-compose's Labels support
- Add auto renew certificates
- Let's Encrypt support
- Improve support to handle different DNS Server providers
- Add docs to cover all macro use cases
- Make it more beautiful
- Add stats
- The 6 top Go web frameworks
- Developing Go Apps With Docker
- Standard Go Project Layout
- Is Your Container Image Really Distroless?
- golang-standards/project-layout
- Bootstrap 5 Tutorial
- Golang HTML Template With Bootstrap Theme
- Docker Health Check: A Practical Guide
- How to convert a square SVG to all-size ICO?
- Tutorial: Developing a RESTful API with Go and Gin
- Writing Web Applications
- Organizing a Go module
- How To Use Templates in Go