I recently encountered a puzzling bug in code that uses Python's ThreadPoolExecutor for parallel processing. The code looks perfectly reasonable, but produces completely wrong results. Can you spot the issue?
In this article, I'll walk you through a comprehensive setup for self-hosting web applications. This configuration is ideal for both homelabs and small production environments, enabling you to host multiple websites on a single IP address and port. We'll focus on security, flexibility, and centralized management.
Using pfSense as our base operating system, router, and firewall, we'll leverage the ACME protocol for automated SSL certificate management, HAProxy for reverse proxying, and Cloudflare for DNS and CDN services.
I'll explain the role of each component and guide you through every step of the process-including how to avoid some common gotchas. By the end, you'll have a secure, scalable setup for hosting multiple services using domain and subdomain-based routing, with centralized SSL and traffic management.
Copyright ©2020-2025 John H. Ring IV. All rights reserved.
The content on this website is my own and does not necessarily reflect the views of my employer or any other party.