Hey selfhosters.
I have a question about starting self hosting; I have run Jellyfin on an old MacBook for a bit and wanna dip more than a toe into the self host pool. Are there any guides out there you’d recommend for actual, complete beginners who knows nothing but wants to learn?
I’ve searched a lot but it feels like they’re pretty advanced for beginners. Is it just a really sharp learning curve to this, or am I not finding the good ones?
Edit: To clarify what level I’m really, truly at: I run the Jellyfin server on regular macOS and have an external 5TB drive connected via usb. That’s it.
I’ve always recommended the Linux Upskill Challenge. It takes you step by step from the cli to scripting, incrementally. It’s also a good bookmark to reference in the future.
The true plug-and-play user friendly way is to buy a NAS device and install all apps there.
i think this space will actually get bigger because of everything going on. these nas devices will ve the way to go for your average user.
------- what i did, if you are curious ------
i have everything running on proxmox. mostly as lxcs. there are proxmox helper scripts so it installs nice. i use proxmox for a lot of services so ut all wotks. also, for hardware rendering , intel cpus work better because of intel qsv.
i bought a ugreen nas device. bought an nvme. installed truenas on the nvme, because i like it and its open source. tge ugreen device has a built in boot drive with ugreen os which you can not download so i did not want to overwrite it.
now i have 27 years professionally as a software dev, so i had a foundation to learn this stuff. i want to give a heads up if you use an llm for learning. always ask it to explain and question things. look up any new terms. because of my experience, i understood most of the answers it gave and questioned when i didnt. i remember one time it said to do one thing (i dont remember) and i asked for more info. when i understood i knew it was missing something. i said “but i have x, y, and z” which in alm fairness i never mentioned and it did change the answer. my long-windwd point? dont run anything, unless you fully understand why. this advice goes for anyone not just using ai. people will be wrong too. know what you are doing
So, in a scenario where I’d wanna run a Jellyfin server and potentially an Immich in the future, they could all go on NAS?
Would this be command line exclusively too?
the nas just has a button like ibterface. its like installing a game from steam
this advice goes for anyone not just using ai. people will be wrong too
Truth. A lot of times I will even pose the same questions to multiple AI. It doesn’t guarantee that all three of them aren’t smoking crack, but you get a better 360 view. It’s akin to back when I worked for the man. I created an excel spreadsheet that helped us when estimating jobs. Say you had 50’ of 10"x20" duct, then a 90, a drop for a grill, necked down to 30’ of 12"x12" duct. At the bottom of the spreadsheet it would spit out numbers and prices. Now, that didn’t necessarily mean that the numbers and the prices were accurate in every way to this specific job. There are a lot of variables to consider. You have to understand the output and whether that is truly applicable to the situation at hand.
If you manage to get Docker Compose installed on that Mac (I don’t know Dockers limitations with Macs) create a
docker-compose.yamlfile with the contents of;services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin # Optional - specify the uid and gid you would like Jellyfin to use instead of root user: uid:gid ports: - 8096:8096/tcp - 7359:7359/udp volumes: - /path/to/config:/config - /path/to/cache:/cache - type: bind source: /path/to/media target: /media - type: bind source: /path/to/media2 target: /media2 read_only: true # Optional - extra fonts to be used during transcoding with subtitle burn-in - type: bind source: /path/to/fonts target: /usr/local/share/fonts/custom read_only: true restart: 'unless-stopped' # Optional - alternative address used for autodiscovery environment: - JELLYFIN_PublishedServerUrl=http://example.com/ # Optional - may be necessary for docker healthcheck to pass if running in host network mode extra_hosts: - 'host.docker.internal:host-gateway'Edit the volumes so that the drive you want to use is exposed to the container and then run;
sudo docker compose up -dIn a shell while in the folder with the
docker-compose.yamlfile you just created. If everything works then the server should be running on port :8086 open your browser and make an http:// request to the ip of the server followed by the port.Example; http://127.0.0.1:8096/
Edit: removed unnecessary \
Edit 2: I really should have read the post more thoroughly, while my example above works fine for a Jellyfin server (which you apparently already run) it also can be adapted for other services. Read and interpret the documentation as best as you can, that goes for any service.
For an absolute beginner I would recommend Linux tutorials first so you can navigate the Linux cli.
After that watch some docker tutorials as a significant chunk of self hosting is done with docker or a kube variant but you won’t need to lean about kube yet.LearnLinuxTV on YouTube has some great playlists for that.
Linux clearly is the way to go, I’ve seen. I’ve been in the Mac environment for the past 20 years so I think the very first thing to do is to install Linux on a VM. Question to that; I’ve seen Debian being mentioned a lot, is this “the best” to start with?
Debian is good to start with as one of its key tenants is stability. Which is what you want in any environment.
A lot of popular distros like Ubuntu and Mint are based on it.
Yeah, okay, that makes a lot of sense. I asked in another comment as well. I read about “headless” servers, which from what I understood means no GUI. Would you recommend that, or use a GUI first and then move to headless when the actual server is in place?
For me it’s been about slowly learning, building, and re-building what I have, as I have gotten more knowledgable.
I started with a Windows laptop running 24/7. Learned about Docker Desktop and ran Jellyfin and the *arr stack on it.
I had Linux running on my PC, so as I got more comfortable with CLI, I decided to migrate the server and everything on it to Ubuntu Server. Learned to navigate on SSH better, learned more about networking and expanded the server with more services like Nginx Revers Proxy Manager and exposing services online.
Then I upgraded my hardware and installed Proxmox on the new machine, to better manage that and the old laptop. Slowly getting better at backing up at different levels, heightening security and so on.
Guides are good, but I find experience and steady knowledge building is a better way to grow and not get overwhelmed or burned out.
You’ll need networking basics for anything you do (there are lots of courses on youtube).
After that, you can just follow wherever you curiosity carries you :)
Linux commands and networking, two things I definitely haven’t done a lot of. Didn’t actually consider networking as I’m “just doing it locally”, but as u/atzanteol@sh.itjust.works said, I don’t just wanna run scripts or commands to get it to work and then have no idea what to do when it breaks.
Underrated comment.
A “howto” that just gives you scripts and commands to run is pointless. You need to understand the technology, and networking in particular.
deleted by creator
That was a lot of engagement to wake up to, I appreciate you all! Thank you very much!
For anyone in the same position as me that may find this in the future, clearly the first step is to get acquainted with Linux and learn Linux commands. I feel I may have more to learn than I initially thought, but hey, that’s what free time is for right?





