Auto SSL via Let's Encrypt nginx Config Generated Multiple Domains

Reverse Proxy & Auto-TLS

Give any app on your server a real HTTPS address — DevMonk writes the nginx config and fetches the SSL certificate automatically.

HTTPS for your apps, without touching nginx

Say you have a Node.js app running on port 3000. Right now it's only accessible as http://yourserver:3000 — ugly, not secure, and hard to share. A reverse proxy sits in front of your app and gives it a proper web address like https://myapp.example.com. It also handles SSL encryption automatically using Let's Encrypt (free certificates). DevMonk does all of this — writing the nginx config, running certbot, renewing the cert — with one form to fill in.

🌍 Visitor HTTPS blog.you.com nginx (auto-configured) TLS termination Let's Encrypt cert auto-renewed ✓ DevMonk writes nginx config + runs certbot proxy_pass localhost DevMonk Agent manages nginx configs runs certbot Your Apps (local ports) Blog :3000 API :8080 Dashboard :4000 Any app :????
Why use the Reverse Proxy?
🤝
Share a dev server with your team
Give your running dev server a real HTTPS URL and share the link — no VPN needed.
🌐
Host multiple apps on one server
app1.example.com → port 3000, app2.example.com → port 4000. All from one server.
⚙️
Replace manual nginx config
No more editing nginx.conf files and running certbot manually. DevMonk handles it.
📝
Host a personal blog or app
Run a Ghost blog, Gitea, or any web app and give it a real HTTPS domain instantly.
Requirements checklist
nginx installed: apt install nginx -y
certbot installed: apt install certbot python3-certbot-nginx -y
A domain name with a DNS A record pointing to your server's public IP
Ports 80 and 443 open in your firewall (Let's Encrypt needs port 80 for verification)
Your app already running on a local port (e.g., :3000)
How to publish an app with HTTPS
1
Point your domain to your home IP
Create a DNS A record: myapp.example.com → your.home.ip. You'll also need to forward ports 80 and 443 on your router.
2
Install nginx and certbot
$ apt install nginx certbot python3-certbot-nginx -y
3
Open DevMonk → Services → Add Service
Fill in the form: your domain name and the local port your app listens on.
┌───────────────────────────────────────┐ │ Add Service │ │ Domain: [ myapp.example.com ] │ │ Port: [ 3000 ] │ │ HTTPS: [✓] Auto-TLS via certbot │ │ [ Save & Publish ] │ └───────────────────────────────────────┘
4
Wait ~30 seconds
DevMonk writes the nginx config, reloads nginx, and runs certbot to get your TLS certificate. The status changes to "Live" when done.
5
Visit your HTTPS URL
Open https://myapp.example.com in your browser. Your app is live with a green padlock.
1
Create a DNS A record for your domain
In your DNS provider, add: myapp.example.com A → your.vps.ip. Wait for propagation (usually 1-5 minutes).
2
Install nginx and certbot
$ apt install nginx certbot python3-certbot-nginx -y ufw allow 80 && ufw allow 443
3
Go to DevMonk → Services → Add Service
Enter the domain and the local port. Hit Save. DevMonk does the rest — nginx config + certbot + renewal timer.
4
Your app is live on HTTPS
After ~30 seconds, the service status shows "Live". Visit the HTTPS URL — done.
Try it now
Visit your new HTTPS domain
After adding a service in DevMonk, open your domain in a browser. You should see your app served over HTTPS with a valid certificate — no warnings, no self-signed cert.
# Verify your cert is working from the terminal:
curl -I https://myapp.example.com
FAQ
About 30 seconds from clicking Save to having a valid HTTPS certificate. DevMonk runs certbot in the background, Let's Encrypt issues the certificate, and nginx is reloaded automatically. You'll see the status change from "Pending" to "Live" in the dashboard.
Yes. DevMonk sets up a systemd timer or cron job to run certbot renew automatically. Let's Encrypt certificates expire after 90 days; renewal runs every 60 days to stay well ahead of expiry.
Yes. Each service has an Active toggle. Turning it off disables the nginx proxy for that domain without removing your configuration — flip it back on to re-enable instantly.
If Let's Encrypt can't reach your domain, the certificate step will fail and the service status will show "TLS Error" with the reason. Wait a few minutes for DNS to propagate, then click "Retry TLS" in the service settings.
Explore related features
← Docker Dashboard Users & Access →