this post was submitted on 22 Mar 2026
8 points (83.3% liked)

Selfhosted

60093 readers
938 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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam.

  3. Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.

  4. Don't duplicate the full text of your blog or git here. Just post the link for folks to click.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require your active participation in selfhosting or related communities, or the post will be removed. No more than 10% of your posts or comments may be self-promotional, or your post will be removed. F/LOSS Exception: If your post is about a project that is completely open source & can be self-hosted in full without payment, and your account is at least 7 days old, your post is exempt from this rule as long as you continue to engage in comments.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

I made a Docker container of a website that's difficult to deploy, and I can reliably deploy it on localhost on my personal machine. The container sets up an Apache server with all the files and config to run the website.

However, the story is different on my VPS running Ubuntu and Apache. I have two other websites running on the same VPS, each with different domains and running directly on the host without Docker. When I deploy the dockerized website, I can't access that site. I opened ports on UFW. The Docker container sets the site to run on port 8000, and I tried running a reverse proxy on just that site with Apache by defining a config pointing towards the internal Docker IP on port 8000, but no luck.

Now I'm thinking of running a reverse proxy, but I haven't found any guides covering my situation: routing websites on both the host machine and through Docker. nginx-proxy looks to cover only Docker containers, and the Apache reverse proxy couldn't access the Docker container.

What are my options here? I plan to dockerize everything eventually, but that will be sometime in the future and not right away.

you are viewing a single comment's thread
view the rest of the comments
[–] mhzawadi@lemmy.horwood.cloud 2 points 3 months ago (2 children)

First off, when you run a container without an outside IP set. Docker will bind that port, in your case 8000 to all ports. So hitting any of the domains on the vps on port 8000 should show your docker site.

Second, if your VPS is like my OVH VPS then it has only an internet IP. So any open ports are open to the internet at large.

If you want to host lots of sites on a single IP, then you will need a reverse proxy of some sort. I would recommend that your docker site is using 127.0.0.1:8000:8000 so that it's only visible on the VPS. (If your ports are different then use what you and prefix 127.0.0.1)

I run similar to your setup, nextcloud is in a VM and lots of docker sites. What do you need to know?

[–] bestbakerycookie@lemmy.wtf 1 points 3 months ago* (last edited 3 months ago) (1 children)

Thanks for the reply. I can see that the port is bound and I enabled the ports in UFW. I have a hybrid setup where the other two websites are run directly on the host without Docker and now I'm introducing a Docker container for the new deployment. All sites are running on the same ports with different domains, but the Docker one is the one with an issue. How can I have the reverse proxy acknowledge both the site on the Docker container and the sites run natively? Should I set different ports in the Apache site configs then use those ports in the reverse proxy?

[–] mhzawadi@lemmy.horwood.cloud 1 points 3 months ago

Ok, the docker container will need to be on a different port to your proxy Something like 127.0.0.1:8080:80

In your proxy, the upstream will be 127.0.0.1:8080.

This should give you what you need