this post was submitted on 18 Jan 2024
10 points (81.2% liked)

Selfhosted

39435 readers
755 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 posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

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

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

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

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

Hi, I'm just getting started with Docker, so apologies in advance if this seems silly.

I used to self-host multiple services (RSS reader, invoicing software, personal wiki) directly on a VPS using nginx and mariadb. I messed it up recently and am starting again, but this time I took the docker route.

So I've set up the invoicing software (InvoiceNinja), and everything is working as I want.

Now that I want to add the other services (ttrss and dokuwiki), should I set up new containers? It feels wasteful.

Instead, if I add additional configs to the existing servers that the InvoiceNinja docker-compose generated (nginx and mysql), I'm worried that an update to Invoiceninja would have a chance of messing up the other setups as well.

It shouldn't, from my understanding of how docker containers work, but I'm not 100% sure. What would be the best way to proceed?

you are viewing a single comment's thread
view the rest of the comments
[–] N0x0n@lemmy.ml 3 points 8 months ago (1 children)

This how I do it, not saying it's the best way, but serves me well :).

For each type of application, 1 docker-compose.yaml. This will have all linked containers in 1 file but all your different applications are seperate !

Every application in it's respective folder.

  • home/user/docker/app1/docker-compose.yml
  • home/user/docker/app2/docker-compose.yml
  • home/user/docker/app3/docker-compose.yml

Everything is behind an application proxy (traefik in my case) and served with self-signed certificate.

I access all my apps through their domain name on my LAN with wireguard.

[–] mudeth@lemmy.ca 1 points 8 months ago (1 children)

Yes this is what I want to do. My question is how docker manages shared processes between these apps (for example, if app1 uses mysql and app2 also uses mysql).

Does it take up the RAM of 2 mysql processes? It seems wasteful if that's the case, especially since I'm on a low-RAM VPS. I'm getting conflicting answers, so it looks like I'll have to try it out and see.

[–] N0x0n@lemmy.ml 2 points 8 months ago (1 children)

Nah, that's not how it works ! I have over 10 applications and half of them have databases, and that's the prime objective of containers ! Less resource intensive and easier to deploy on low end machines. If I had to deploy 10 VMs for my 10 applications, my computer would not be able to handle it !

I have no idea how it works underneath, that's a more technical question on how container engines work. But if you searx it or ask chatGPT (if you use this kind of tool) i'm sure you will find out how it works :).

[–] mudeth@lemmy.ca 1 points 8 months ago

This is promising, thanks!