this post was submitted on 01 Oct 2025
9 points (84.6% liked)

Self Hosted - Self-hosting your services.

16176 readers
27 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules

Important

Cross-posting

If you see a rule-breaker please DM the mods!

founded 4 years ago
MODERATORS
 

Let's say I have a domain called mysite.com

mysite.com points to a server which only opens port 443, and each connection will need to go through that and deal with Caddy reverse proxy.

I want to host more services on it.

Let's say I want to host an email service, the easiest thing would be using a subdomain such as mail.mysite.com and reverse proxy each connection to the internal port on which the service run.

Same with a chat service chat.mysite.com.

But for the sake of readability it would be much better to simply have username@mysite.com than username@mail.mysite.com or username@chat.mysite.com.

reverse proxying every request from a subdomain to the right port is pretty straightforward with Caddy, also if you use cloudflare you can proxy with cloudflare each subdomain and have auto SSL certificate without further set up, which is amazing!

But what if I do want my services to be accessed through mysite.com directly instead of a specific per-service subdomain?

Some federated services also have two separate ports for server requests and client requests, which further complicates the process..

Is this service specific and must configured individually for each service? Or there is a way to tell caddy that a specific request going through mysite.com should be redirected through port X.X.X.X? Is there a way Caddy can recognize where requests need to be directed?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] BillibusMaximus@sh.itjust.works 4 points 5 days ago (1 children)

But for the sake of readability it would be much better to simply have username@mysite.com than username@mail.mysite.com

That's kind of unrelated. You can configure a mail server at mail.mysite.com to handle mail to/from username@mysite.com. You don't need a proxy for that.

But what if I do want my services to be accessed through mysite.com directly instead of a specific per-service subdomain?

If they're all http(s) services, then that should be possible. I don't know anything about caddy, but with apache or nginx you can proxy based on path, so I'd assume you can with caddy also.

For example mysite.com/chat could route to your chat app, mysite.com/webmail route to your webmail app, etc. But this isn't necessarily plug-and-play, because depending on the app you might need to set up proxy rules for cookie rewriting, link rewriting, etc.

If you want to proxy non-http(s) traffic from 1 port to multiple destination apps, then it gets a LOT more complicated.

Doing the /service_name thing can get really messy if the web service has non-relative links. It gets very messy trying to do rewrite rules to fix that. Wouldnt recommend it.