This stack is deployed on a multi-architecture cluster that is a mix of Raspberry Pi 4 ARM64 devices, and an x86_64 i3 based system. All of these devices and containers connect to a NAS device via NFS for data storage with the SQL databases also running on the NAS device due to instability with containerized SQL datasbases and NFS data persistence. Beyond the standard reverse proxy functionality this implementation includes:
- Automatic lets-encrypt SSL certificate generation
- Dynamic file-based configuration
- Dynamic docker label based configuration
- LAN Whitelist middleware
- Secure headers middleware(STS, XSS)
- Middleware chains
- Monitoring stack with Grafana, Prometheus, cAdvisor, Node Exporter
This is a simple project out of my own want for a subscribable calendar for the One Fighting Championship and UFC events. Its a is simple calendar subscription service made with flask, and beautiful soup to extract the event data from the official webpages, create a calendar in the ICS format, and serve it up. It was something that I wanted to use myself and seemed like a fun project.
I wanted to allow the folks in my personal discord server to have control over what channels they are included in. Naturally I stumbled across the Mee6 discord bot. It has a fantastic Reaction Roles feature baked into it, but you are limited to only 2 options without upgrading to their premium service. It really is a great option for folks who want this functionality(and more) without having to worry about any of the backend stuff. But I did not want to add yet another subscription service to my growing list of them, and saw this as an opportunity to learn about something new. The initial goals with this project are simple:
- Allow users to configure which emoji reactions add/remove which roles on their server
- Build it into a docker image so anyone on any 64-bit system can easily spin up their own bot server.
And the next step will be to create a Flask based web interface to further simplify the process of configuring the emoji - role relationship. Once I hit this future goal I may look into expanding the functionlity past just role management, but so far thats the feature that really speaks to me.