from Snapz@lemmy.world to selfhosted@lemmy.world on 10 Jun 08:15
https://lemmy.world/post/47985640
There are so many options to get started with self hosting that I feel myself stuck in the “paralysis of choice”. For a novice, does anyone have a good resource for the equivalent of good/better/best paths that cover the “basics” (In my mind this is hosting images, music, video, connected home controls, search and email)?
Thinking something like first try path A, if you feel comfortable and your HW can handle A, then try path B, etc. I guess a it of a tutorial mode feeling where you get exposed to key boxing blocks initially and then you are released into the large open world on your own.
I know the advantage of this movement is the choice and the well distributed variety, but just feels hard to start.
I have an old laptop, an SFF workstation and a NAS to play with.
Any suggestions?
threaded - newest
@Snapz I started my running Plex with docker compose on my laptop and went from there. Plex would probably be Jellyfin these days. Then really it's all down to what you want to use it for. I have never really invested in a "good" setup but I'm running JellyFin, Immich and backing up my photos and files to other machines using syncthing. I always feel like I should be doing more/better/whatever, but starting somewhere I needed (goodbye Google Photos for me) broke the seal
I would say start with Samba (or other NAS network FS), then try something like Immch image storage, move on to Jellyfin and a arr stack and then the world is your oyster
You can find resources for each categories but don’t think there is one that would cover everything and the reason is there is always several ways to do things and not one way for all.
First you need to choose an OS. You have a few choices here, a good way to start if you don’t have much knowledge on linux command, docker… is to use something like Casa OS, Zima OS which are much more beginner friendly, it basically has a store where you can pick what you need to selfhost. If you already feel more confident and want absolute full control you can use proxmox instead.
Once you settled your OS, you need to pick what to use sleefhost image, music… Here you have again several solutions, you can check immich for pictures, jellyfin for music/video, home assistant for smart home.
Decide on one thing to do/replace. Google/Apple Photos (immich), Netflix (plex/jellyfin), home automation (home assistant)… I mean the list is extensive, but only you will know what you want to run.
Then choose an OS you think will work for you. CasaOS if you’re really a beginner. TrueNAS or Unraid in the middle. Proxmox for more advanced stuff.
Then don’t shy away from docker compose files. 1 click solutions are good, but at this stage what you need more than anything is to understand how things work. This will be very important when you’re hosting 10-20-50 things instead of 1 or 2. Using compose, install your service.
Finally when it doesn’t work or you see you’ve made a mistake, don’t be afraid to tear it down. Just assume that your first 3 setups are wrong for you. I started with an old laptop using truenas, and I’m up to 3 SFF pcs doing HA with proxmox and ceph. Do I suggest that my setup is the best? Hell no. But I’ve learned and grown into it.
Don’t be afraid to do something because it won’t be perfect. It won’t be. But it will be a learning experience.
Oh and keep a backup of anything you don’t want to lose. Don’t feed your photos to immich and then nuke the server and lose all of them.
I think there is no comprehensive guide because people have varying opinions on what’s “best”. IMO the “best” for everyone is the way that they understand how things work and are comfortable to manage it, regardless of how good or bad someone else says that is.
My recommendation is to just accept you will not get it right first time, you’ll eventually face the issues and limitations of whatever way you picked and have to either rebuild or adapt.
Personally, I’d say choose a starting path of do you want to learn about the various technologies and have maximum potential (and, problems to solve) or do you just want to get some of the common apps running and don’t care how as long as they run and be limited by what’s available, but with much fewer issues. Path 1 is following the docker/proxmox path and it may take a lot of reading and watching YouTube tutorials before you get somewhere, path 2 is aiming for something like casaOS or similar and probably watching their getting started will get you results faster but if something breaks or is not available, you may get stuck.
Last, pick 1 thing that’s your goal and work on getting that there. There is no right order, but the more popular something is the more resources there will there be. https://selfh.st/apps/ is a great resource for finding things. Jellyfin is actually pretty easy to start with and gives you some good paths forward around it (e.g. start with you manually getting your media in the right place, then you can work on adding other apps that will do it for you). I’d advise to avoid self hosting email, it’s rather difficult.
Once you grasp how things work, it becomes a shopping mall of just add what you want, it’s just climbing that hill at least once that’s hard if you’re not from a tech background.
I’m the map, I’m the map, I’m the map /s
What are the specs on that SFF? Of the 6 I listed, Immich and Jellyfin might need a few more resources, especially transcoding video. I am not familiar with running either. The rest should run within a nominal spec of something post 2015. I’m running that and another 30+ containers on a little Dell Optiplex 7020 SFF with the i7-4790 chip and 32 GB RAM (which is a bit overkill), and it barely breaks a sweat. Load averages usually run .20 .15 .35, essentially sleeping. The only time it’s under a real load is on boot up starting about 40 containers total, and that usually takes less than 2 minutes.
I mean, you could start lower on the totem pole and work your way up to those 6, but if your equipment is, like I said, within the last 10 or so years, you should be fine to march right on up to the top. That is, unless this is a learning mission for you and you wanted to just ‘try out’ other similar containers. If I were to give you a map, I’d say start with one container. See how it runs. Learn it. Take note of load averages, temps, resources. Then slowly add to the list. Worst case you might have to split the load between a laptop server and the SFF or NAS if it has capabilities to do so.
There are some security measures to keep in mind with Jellyfin, and with all containers you run really. But Jellyfin seems to need some extra attention, or so I’ve read.
I’m not sure how far along you are as a ‘novice’, but Linux Upskill Challenge is always a good bookmark.
Install docker.
Choose something you want to replace. Docs, image, chat, etc.
Research replacements for $Service
Bring up the docker Container and get it working.
Use it for a day/week as the replacement. If you don’t like it try a different replacement from the list above. Continue until happy.
Research a replacement for $OtherService
Bring it up on docker…
Check resources as you go. Maybe use Linux + docker on laptop and NFS from nas for storage. When the laptop isn’t powerful enough anymore look at adding another docker host. Just keep building from there.
Also backups. Maybe a wiki to document your journey.
Solve one problem, get it stable, move on to the next.
Start with a problem. What you trying to solve. Hosting music is different from backing up your computer. That is different from a home dashboard.
For an easy way to try out what suits you I recommend having a look at yunohost, a self-hosting linux dostribution that wraps all the installers in a nice app store-like experience with single-sign-on for all the installed services.
Install a PiHole and route your whole traffic through it. Its easy to setup, you learn a bit about networking and the impact is massive. Would always recommend to start with a PiHole.
Similar to others here, but slightly different: start with what you’re most excited about. There’ll be some shitty parts where you’re confused and frustrated, and if you feel like you’re just doing something you’re “supposed to do”, it can feel like a job for no pay. Pick something you have an inner thrill for, and maybe that fire can carry you through the dark.
OP, I failed to mention one of the most important things you can do as a novice or even as a seasoned vet: take prolific notes. Write down everything. All the commands, all the steps, you’ve used in conjunction with setting up whatever service you choose, everything. What I do is while I’m in the middle of deploying something, I write everything down. Upon a successful deployment, take those notes, clean them up, and include them in my 3,2,1 back up scheme. Don’t be lulled into the notion that you’ll be able to remember everything 6 months down the road. You wont! That’s the devil talking Bobby Boucher. Take notes. They’ll save your ass in the future.
Aye on the notepad. Everything but passwords, every change gets a journal entry.
I never take notes and it’s only been a problem most of the time.
Well if you want the real basics of self-hosting then depending on your level of knowledge you may want to follow a Linux tutorial like this one: labex.io/linuxjourney
This will teach a lot of basic knowledge and terminology you may need when setting up or maintaining containers and VMs. Admittedly, this is somewhat tangential knowledge to your immediate goals, but if you want to actually use your self-hosted stuff remotely later this will become critical to doing so safely.
As for the map, for me it was something like:
Local LXC/QEMU → Remote LXD over SSH on a RPi → Proxmox on a dedicated box through the webinterface
In hindsight I would have started with Proxmox directly though I guess. One big downside is it doesn’t integrate well with Docker containers, you have to set up a full VM as your Docker host. On the upside though you can install LXC containers from www.turnkeylinux.org in a few clicks, so it’s very good for just testing stuff out and playing around.
A lot of good information here so I’ll add something a little different:
Do Not open any services to the internet, such as for remote access, until you are sure about what you are doing. Doing something like opening a port so you can watch Jellyfin anywhere sounds great, but doing it wrong pokes a huge security hole in your infrastructure.
Keep everything in your local network until you have a secure remote access setup. Even your home network may be untrustworthy if you’ve got things like IoT devices or compromised operating systems.
Get a cheap pcie 1Gbit Intel NIC from ebay, cheap switch, Ethernet cables.
Throw the NIC and proxmox into the SFF, make a VM for OPNsense, use the switch downstream from the SFF. Get the NAS and laptop onto a separate LAN firewalled from the ISP.
Set up another VM in proxmox for a workspace, connect it to the NAS file shares, do the same with the laptop. Set up syncthing on laptop, workspace VM, and the NAS if it supports it. Make a keepass database, start organizing all logins to keepass, keep everything synchronized with syncthing.
Set up tailscale, add it into OPNsense to allow easy and secure(?) remote access into your subnet. (I use tailscale, but don’t trust them much and want to switch away.)
Its very daunting at first, but this is the path I took, not really a guide. All this will take a few days of constant effort to get right, but you absolutely don’t need to do everything at all once, just a slow migration. I’ve been slowly building mine up for about 5 years now, and there is no one “right” answer to anything.
Only move forward when you get comfortable with each step. I personally run everything from a stack of thin clients I got from some kid off Craigslist. Think they came out of a bar and grill, filled with grease and cigarette tar, but they cleaned up nice. A full Arr stack with jellyfin runs great on an Intel 6500t with 16gb DDR3 ram.
Slowly get comfortable with the CLI and general security updates, next thing you know you’ll have 3x smart switches, better/faster NICs for the proxmox box, a WIFI6 AP for better throughput. Its endless. I try to focus on minimal wattage, my full stack pulls a steady 80 to 100 watts 24/7. You’ll get a “gut” felling for what runs best on what hardware. I spent too much on Raspberry Pi’s in the past, should’ve tried thin clients sooner.