spoiler
Selfhosted
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.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.
-
AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Hey, welcome to the concept of self-hosting! This is where I was 15+ years ago.
Realistically, I'd just recommend installing something and trying it out. You'll iterate many time before you'll slowly start to align somewhere I suspect, in terms of software/approaches etc.
If you want the very first steps, then why not simply connect your old PC to a monitor and install a Desktop version of Mint? It's super-"wrong", but it'll get you started. Once you reach a stage of not wanting to waste memory/CPU on a graphical system, you'll be able to do something like systemctl disable lightdm.service and voila, graphics don't load on start anymore. Once you get even more confident, apt remove gdm3 xfce4 xfdesktop will remove any extra disk space (I'm dropping DE names that I approximately remember off the top of my head). With the packages for graphics gone, your system is indistinguishable from a server now.
Overall it's a nice path to walk, or at least it was fun and somewhat educative and very frustrating and giving a sense of control for me personally. Do you have any specific questions?
This is the answer. You probably could learn *nix terminals, networking, hosting, security, and a myriad of other skills all at once if you really had to focus on it--but more often, that will just result in half-started projects and systems which never come together. Dipping your toes in first, and then gradually migrating as you build up your knowledge is the best way to not be overwhelmed, burnt out, or frozen from decision overload.
One of the nicest things about Linux is you can run most any software written for Linux on most any distro (although some may require more work than others). Picking a beginner friendly distro like Mint, with helper tools and a gui, and installing Jellyfin on it will give you a place to start. You can gradually learn the console and install other services and build out organically. Rather than hopping straight into some Enterprise Linux.
CasaOS or YunoHost are great places to start and hold your hand the whole way, while allowing you to tip toe into more advanced setups later on as you learn.
If you just want something simple that does the job, you can try a turnkey solution like YunoHost. There's several other ones out there. Some with containers, some with more or less pre-packaged software... If you want to learn more during the process, maybe don't and do it yourself because these things don't teach you a lot. There's some resources like the awesome-selfhosted list in the sidebar of this community. But I think for installing services you'd mainly look at the specific documentation of the specific service you're just about to tackle. And maybe read up on Docker containers etc to judge whether you want to do it that way.
I know Jellyfin/Emby is compatible with music, but I'm advising you now to not try and cram all your media in one software. I recommend Navidrome as a music hoster. The con is that I haven't written a guide for it, as I run Proxmox it was almost too easy to need one.
As you're just starting out I'd recommend picking any Linux distro, putting the ISO on a USB drive and booting the server machine from it to install. Well, you know how to install an OS. Next, install Navidrome (guide) via the Linux or Docker guides, modify the config file to point to your music folder and change any setting you like, for example the port, and run it via systemctl or docker.
After that, login via browser with the given admin creds, make a user account for you and anyone else, install slskd for downloading and beets for correctly organising into the music directory, set up a reverse proxy to point to the Navidrome UI or connect via IP from any Subsonic client or web browser.
If you want you can install Proxmox from the start - I found it incredibly handy to make different containers and VMs to handle different projects, and in terms of Navidrome I got the install script from tteck, ran it, and once done I modified the toml variables to what I wanted and restarted the service. Plug & play.