I have a really bad “server” (just a laptop) that runs Fedora Server and uses Docker Compose to host Jellyfin. It has been very annoying to update (the web GUI for Fedora doesn’t even work half of the time), updating is painful, and it’s a pain to manage. I am trying to redo my entire setup, so I will be getting a NAS to store all of my media. However, I still want to host apps like Nextcloud and Jellyfin, but I’m probably just going to use the NAS as storage for such apps.
Should I:
If I should use a conventional server distro (Fedora, Debian, Ubuntu), suggestions for management GUIs, easy to use Docker management GUIs, and ways to set up file sharing (Samba configuration seems like a pain) are greatly appreciated.
(side note: I use Docker bind mounts and they seem to allow me to update my Jellyfin content through SFTP/whatever the SSH-based file transfer protocol is. Is there a point in me switching to volumes? I haven’t taken my container down manually since I first started it up)
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:
Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.
No spam posting.
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.
Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
I’m guessing you want an all-in-one server setup for NAS duties and services?
UnRAID is probably the simplest from a management point of view for storage and docker.
If you’d prefer something free, then OpenMediaVault works great. It can handle storage (Linux MD-RAID, BTRFS, ZFS, or mergerfs + SnapRAID) and compute tasks like VMs and Docker/Docker Compose all from a web interface. The only problems I’ve encountered with OMV is trying to click through configuration changes too fast and getting ‘stuck’ in a loop of applying conflicting changes. As long as you wait a second or two after hitting OK/apply on things, then you’re good.
I use TrueNAS SCALE myself with docker and other services running in systemd-nspawn containers. I have a separate Intel NUC running Proxmox.
Regarding management UIs I’m a fan of Cockpit (https://github.com/cockpit-project/cockpit https://cockpit-project.org/)
Regarding management UIs for docker I believe most use either portainer (https://github.com/portainer/portainer https://www.portainer.io/) or dockge (https://github.com/louislam/dockge https://dockge.kuma.pet/).
Regarding Samba most NAS devices simplify it a lot, but it isn’t that complicated to do on Fedora either and once you’ve got it setup it’s not gonna need a lot of tinkering. (https://docs.fedoraproject.org/en-US/quick-docs/samba/)
Whether you invest in a NAS or not I recommend you invest in a USB disk large enough to act as a backup for the storage disks. That’s not an investment for later but one you want right away. And do make certain it takes backups, not replicates data. A popular option is Borg Backup (https://github.com/borgbackup/borg https://www.borgbackup.org/)
If I went for a NAS I would Borg Backup the laptop to the NAS and then use the NAS own backup software to backup to the USB.
I use https://github.com/azukaar/Cosmos-Server on Ubuntu and really like it, seems to take care of reverse proxies and stuff for any new services you add. I’m running on the lowest-spec Hetzner auction I could find, but even so it’s a pretty beastly server with an i7 6700 or something, and 128GB of RAM. I’ve got nextcloud and a bunch of other services running and I rarely go above 10% resource utilisation.
If you’re willing to do vm’s look into something like proxmox and run stuff as vm’s, makes managing them and trying new things easy. For the os that’s running services keep it simple and stick with Debian, if you need a gui for docker use portainer or yacht. For sharing the media files from the nas to the pc make an nfs mount entry in your fstab file so it mounts on boot. Do be advised however that if for some reason your nas is down while jellyfin is doing a scan it will be unable to find any media files and will start cleaning out metadata since without the nfs mount no media technically exists.
Honestly for your use case it would be worth keeping things simple and just running jellyfin on your nas if possible, just make sure you get one with a decent Intel cpu so you can enjoy quicksync for transcoding capabilities.
Do you use Sonarr, Radarr, Jackett, QBitTorrent with this setup?
It would complety automatic everything
There is a lot here but I think the most important thing is that docker containers should always be disposable. Don’t put any data into the container ever.
All of your data and configuration should be done in volumes. Local disk to inside the container is all you really need.
By doing this you make updating any given docker container easy as just pulling the newest tagged version of the container. If you are using docker and not podman you can use tools like watchtower to do this automatically.
As for what distro, it depends on your goals. Do you want to learn and improve your skills? Stick with Fedora or Rocky or Debian or openSUSE. I recommend learning the command line as you go, but if you want a nice UI openSUSE has Yast which is a very robust tool.
If you want to just have a home NAS but don’t want to learn that’s a different question. In this case if you’re getting a proprietary NAS anyway you could just get one that supports docker (like synology) and kill 2 birds with 1 stone.
You should use volumes over bind. You just move your media into the volume location on the local host and try will show up in docker. You should never need to ssh or sftp into the container.
Is a Docker volume accessible like a folder if I SSH/SFTP into the host machine, not the container?
Yes. The left side of the : in the volume is the file on the host. You can see this directory on the host. The right side of the : is where that directory is replicated into the docker container.
All you need to do is to interact with the directory on the host.
I like Dietpi. It’s just a few homelab scripts on top of a stripped down debian ISO designed to reduce resource usage for homelabs while giving some utilities for installing popular homelab software by wrapping common projects around its own “software repo” (custom scripts for installing and configuring projects so they’re a lot easier to get running than normal).
I run mine from a raspberry pi 4b but you can use x86 or other SBCs if you like.
Saltbox.
Ansible-configured Ubuntu-based server rollout, with tag-based installation already available for the apps you listed.
Great docs & support Discord; simple yml configs for quick setup changes.
Single command updating entire server, Portainer for Docker management, rclone for NAS fusemount (cloudplow for syncing), & lots of additional software available to add to your setup.
Highly recommend.
I vote for CasaOS based on the videos I’ve seen of it. I haven’t actually done any self hosting stuff myself, yet.
Laptops are cool servers because it has a builtin battery that usually lasts at least an hour, especially if the screen is off. You don’t have to worry about UPS batteries that give less than 10 minutes and have a horrible beeping sound.