Point a domain to an IP address and the right port
An A record can send a domain to 203.0.113.10. It cannot send it to 203.0.113.10:3000. That gap is why most people end up installing a reverse proxy.
Get started freeWhy DNS stops at the IP address
DNS answers one question: which IP address belongs to this name. Ports are not part of the answer. Browsers assume port 443 for https:// and port 80 for http://, so a domain pointed at a server lands on those ports whatever the A record says.
If your app runs on 3000, 8080 or 5000, you need something on 80 and 443 that receives the request, looks at the domain name and forwards it to the right port. That something is a reverse proxy.
The do-it-yourself way
Buy a domain, add an A record pointing at your server, install Nginx or Caddy, write a server block per app, get a certificate with certbot and set up renewal. It works and it is worth learning once. It is also an evening of work per server and one more thing to keep patched.
server {
server_name app.example.com;
location / { proxy_pass http://127.0.0.1:3000; }
}The DomainDock way
Enter the IP and the port. We create the DNS record, route the address through our gateway on port 443 and forward each request to your IP:port. The address gets HTTPS straight away and your server only needs the app's port open.
You can also point an address at an existing domain or URL instead of an IP. We detect the port and whether the target speaks HTTP or HTTPS.
Questions people ask
No. A and AAAA records only hold an IP address. SRV records can carry a port, but browsers ignore them for websites.
Not through DomainDock. Private and internal addresses are blocked because the gateway can only reach servers on the public internet.
For DomainDock addresses, seconds. We manage the record at Cloudflare and nothing is cached from before, because the name is new.