this post was submitted on 01 Dec 2023
38 points (95.2% liked)

Selfhosted

39964 readers
284 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
 

I followed trash guides to set everything up blindly and my set up is working well. But, I feel like having jellyfin in the same docker compose as my "arr" services isn't good. So, I'd be curious to see if I should split things up. I am even wondering if i should let portainer manage everything.

all 30 comments
sorted by: hot top controversial new old
[–] [email protected] 10 points 11 months ago

Arrs combined. Jellyfin alone. VPN with VPN stuff. Everything else alone. Unless it's multiple of the same app.

[–] [email protected] 7 points 11 months ago (1 children)

i had arr in one stack and media in another.
Now in my kubernetes cluster everything is separated, but arr + torrent is in vpn and automatically uses the vpn-sidecar. And media (jellyfin + jellyseer) is separate.

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

Same.

Jellyfin, Audiobookshelf, kavita = Media stack

Arr suite, Vpn, BitTorrent = Pirate stack

Edit:

CodeServer, git, esphome, home assistant = Code Stack

[–] [email protected] 6 points 11 months ago* (last edited 11 months ago) (3 children)

I created them in the same compose but will probably split them up soon. There's no point in having them in the same file: *arr services and jacket interact with each other, but Jellyfin is its own thing and I often want/need to restart it alone. They're best as 2 separate stacks imo.

[–] [email protected] 4 points 11 months ago* (last edited 11 months ago) (1 children)

You can interact with a single container if you need to, not just the whole compose group. docker compose restart jellyfin works for your example, and "restart" can be swapped for stop or start as needed.

Splitting compose files can be a good idea, but it isn't always necessary.

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

yes, but I use one alias for all stacks to down, pull, up as a daemon, and watch its logs.

So I'd rather split the stack than have a special treatment for it.

[–] [email protected] 1 points 11 months ago

I use individual files with some like-services grouped together, but you interface with specific services withing a compose file by just specifying the name at the end o the command

[–] [email protected] 1 points 11 months ago (1 children)

There's no point in having them in the same file

Convenience is the reason for a lot of people

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago) (1 children)

if these are the only services one is self hosting, I can see that.

But I have around a dozen stacks atm and I never came across a situation that I wanted to trigger an *arr stack restart with Jellyfin's. They're pretty much unrelated and independent services from an operational view.

[–] [email protected] 1 points 11 months ago

You can issue commands to singular services or group them under an alies if needed.

But I have around a dozen stacks atm and I never came across a situation that I wanted to trigger an *arr stack restart with Jellyfin's. They're pretty much unrelated and independent services from an operational view.

I'm more talking about pull, up -d. It's convenient having it all behind a single command, unless there's a special need to have them separated

[–] [email protected] 5 points 11 months ago

I have all of mine in their respective directories and have a master script that I run to bring them all up or take them down. Easier to exclude services from start up if I end up not needing them or something.

[–] [email protected] 4 points 11 months ago

I liked having them all in the same file - easier to keep everything in sync. I also had “dependency” links to keep things starting in order.

[–] [email protected] 4 points 11 months ago

I group them by network.

[–] [email protected] 4 points 11 months ago (1 children)

Yes splitting them up is much better.

The only reason you should have secondary services there is if main service is using them exclusively.

Having a single compose file for multiple unrelated services sounds like a nightmare to stop, start and debug if one of your containers is acting weird.


Say for example you have something that needs a mysql server and you have no other use for it beyond that container, then it should go in there with the main seevice.

But then you eventually add another service which also needs a mysql backend. Do you add another mysql instance for that specific service? Or you could separate your existing one into its own compose file and just connect the two separate apps to the single instance.


Here's the way I have mine setup. https://github.com/DanTheMinotaur/HomeHost/tree/main/apps

I use an ansible job to deploy and run them.

[–] [email protected] 1 points 11 months ago

Having a single compose file for multiple unrelated services sounds like a nightmare to stop, start and debug if one of your containers is acting weird.

You can do "docker compose (servive) start/stop/restart" and so on

[–] [email protected] 3 points 11 months ago

Single hand-crafted artisan organic GMO-free compose file for services that egress through regional VPNs and are exposed internally through Tailscale; *arr, transmisson, piped, etc.

Plex, iSponsorBlock, ArchiveBox have their own compose files since I keep them close to upstream. This way when the inevitable breaks they're easier to troubleshoot.

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago) (1 children)

ive got 6 containers running from a single file no problem, some with weirdly attached volumes, some with ports some host-networked.

i actually added portainer After i had everything running. it was almost too easy.

just to add; im no expert, but i dont see any benefit to having their configs defined in separate files other than maybe portability.

[–] [email protected] -1 points 11 months ago

Yup. Same way I do it.

[–] [email protected] 3 points 11 months ago

Why separate it? It's part of the same stack. Radar downloads, Jellyfin plays.

[–] [email protected] 1 points 11 months ago

I used to try to run arr stack together, but separately from jellyfin and transmission because I use them not only with arr things

But now I'm using nixos, and having the same dilemma with .nix files

[–] [email protected] 1 points 11 months ago* (last edited 11 months ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
Git Popular version control system, primarily for code
Plex Brand of media server package
VPN Virtual Private Network

3 acronyms in this thread; the most compressed thread commented on today has 13 acronyms.

[Thread #322 for this sub, first seen 1st Dec 2023, 17:35] [FAQ] [Full list] [Contact] [Source code]

[–] [email protected] 1 points 11 months ago

A mix - my *arrs, Plex, etc run in my "media" stack's compose, but I have a handful of other stacks ("managing", "monitoring", "misc", "games", etc) for containers that aren't related.

This also helps keep networks separate so the containers are only talking to the ones I want them to

[–] [email protected] 1 points 11 months ago

Same. Never felt the need to do them separately.

[–] [email protected] 0 points 11 months ago

Use to do it individually. Now I do it all from one Master compose.

[–] [email protected] 0 points 11 months ago (1 children)

@AbsurdityAccelerator All one file. Makes reverse proxy easy and most don’t need any open ports. Probably somewhere around 40. Oh two in their separate files cause I compile them from source.

[–] [email protected] 4 points 11 months ago (1 children)

I run multiple compose files with internal networks. No exposed ports.

[–] [email protected] 0 points 11 months ago* (last edited 11 months ago) (1 children)

So your name resolving them over multiple networks. Seems like a headache. By exposed ports I mean the host only has the reverse proxy with a port mapping. All other conteiners have no port mapping.

[–] [email protected] 7 points 11 months ago* (last edited 11 months ago)

You can just refer to them by the name you give it in the services block, it's actually really simple. No port mappings at all.

https://nginxproxymanager.com/advanced-config/#best-practice-use-a-docker-network

[–] [email protected] -4 points 11 months ago

No Docker, because overhead and depending on a semi-closed ecosystem isn't cool. Also systemd is perfectly capable of providing all the security docker does by itself.