I have been using boring proxy for a few years, successfully, no complaints, I love it for my development setup.
Since about a year now, I have been running a homelab and my current setup is:
- Nginx Proxy Manager (NPM) on a VPS for exposing my home services, i find it easier to manage and maintain.
- Boring Proxy on another VPS for exposing local development server ports, with HTTPS.
The day has finally come and i’m setting up my own mail server at home (hopefully). I guess i could run the whole thing through boring proxy but i would rather have them both (npm and boringproxy) running side by side for this purpose: NPM would manage all certificates and expose the regular HTTP / HTTPS ports but i want to tunnel the other ports - 110, 995, 143, 993, 25, 465, 587 - through boring proxy.
So i am trying to set them up side by side through docker, on the same server but i haven’t figured out how to achieve this.
I think i’m almost there but after so many tries i got temporarilly “banned” from letsencrypt and today is the day so i don’t want it to happen again.
This is my current docker-compose.yaml
:
(with a lot of back and forth with chatgpt)
services:
boringproxy:
build:
context: .
dockerfile: Dockerfile
args:
VERSION: "local"
GOOS: "linux"
GOARCH: "amd64"
ORIGIN: "local"
image: boringproxy:with-cacerts
ports:
- "80:80"
- "443:443"
container_name: boringproxy
restart: unless-stopped
# Only expose the admin UI on loopback so it never conflicts with NPM
#ports:
#- "127.0.0.1:8080:80"
# Persist DB
volumes:
- ./data:/data
# Run the server with your domain + public IP
command: >
server
-admin-domain boring.mydomain.com
-public-ip 135.181.114.177
-acme-email me@mydomain.com
-db-dir /data/
# Optional: keep the path to the CA bundle explicit (our image already sets this)
environment:
- SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
- USER=boringproxy
- HOME=/storage
The way i’m trying this is i shutdown NPM while i’m launching boring proxy and after all is successful (hopeful), change the exposed ports and launch NPM again.
Anyway, sorry for the long post but i would like to your help in knowing if:
- Is this even possible? or i’m running a fool’s errand?
- any suggestions on what i may be doing wrong or how i could make my life easier?