Setting up HTTPS for my services
Context
As part of my homelab, I wanted to secure access to my self-hosted services with HTTPS and custom domain names.
Goal
- Provide simple and secure access to my services.
- Standardize domain name management (local DNS).
- Ensure encrypted communications with TLS/HTTPS.
Implemented solution
- Pi-hole: configured as a local DNS server to centralize service records.
- Caddy: reverse proxy with automatic generation and renewal of HTTPS certificates.
Use of Docker and Docker Compose
- Deployment of Caddy via Docker Compose to centralize HTTPS management.
- Setup of persistent volumes (Caddyfile, certificates, configuration) to simplify updates.
Results
- All my services are accessible through custom domain names (.home).
- Connections are encrypted with HTTPS, avoiding browser warnings thanks to an imported root certificate.