this post was submitted on 21 Feb 2024
50 points (94.6% liked)

Selfhosted

39435 readers
3 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 2 years ago
MODERATORS
50
Starting from zero (lemmy.world)
submitted 10 months ago* (last edited 10 months ago) by [email protected] to c/[email protected]
 

I'm interested in exploring the world of self hosting, but most of the information that I find is incredibly detailed and specific, such as what type of CPU performs better, etc. What I'm really looking for is an extremely basic square 1 guide. I know basically nothing about networking, I don't really know any coding, but it seems like there are a lot of tools out there that might make this possible even for a dummy like me.

Right now, my cloud computing is pretty much typical, I think. I use onedrive to sync my documents and old files. I need to be able to quickly access files on different devices, such as a powerpoint created on one device and presented on another. On my phone I use Android and my backups of downloads and photos and other data (messages, etc) are all on Google Drive /Google 1.

I'm willing to spend the time learning to an extent, but I'm not looking to become a network expert. I'm also willing to spend a little bit of money on hardware or a subscription service if necessary. Ideally I'd like to be out of this subscription service game, but the main goal is to be in charge of my own files. I have an old laptop running Linux to play around with and a fast and stable home internet connection.

Eventually, I would like to not only be syncing my files, photos, and documents in real time, but also I'd like to maybe try using it as an entertainment server to watch/listen to downloaded media on my home network.

Is there such a thing as a guide for a total beginner starting from zero? Is this worth attempting, or will I quickly find myself frustrated and in way over my head? Or, do I need to wait a little longer until more idiot-proof tools become available?

all 44 comments
sorted by: hot top controversial new old
[–] [email protected] 14 points 10 months ago* (last edited 10 months ago) (2 children)

I have an old laptop running Linux to play around with and a fast and stable home internet connection.

That's pretty much all you need!

When I started self hosting things, I literally ran the thing off my one and only laptop. Young me was getting into web development and I was fed up with the available free hosting options, so I was like, I've already got Apache running for development, I'll just open the port and point a domain at it. My friends would check if I'm online by checking if my website loads. Sometimes I had to turn it off because I wanted to use my computer and they kept hogging my connection.

Your old laptop will run NextCloud and Samba/NFS just fine even if it's a Core 2 Duo. Sure there's Plex/Jellyfin and they require a lot more power for live transcoding and stuff, but to start off, you can just play your stuff over a simple network share.

Then when you're happy or want to expand you'll have a better idea of what kind of hardware you want. I've ran my NAS of a Raspberry Pi 2B for several years, but ultimately always wanted at least one real server.


As for setup guides, I have none. But don't let yourself get too overwhelmed: there's so much stuff you can do with a server and just as many ways to set it up. One thing at a time: get the server set up, make sure you have SSH access to it. Then pick a thing you want to run on it, and try to figure out how to run it. Don't get too ambitious, you don't have to do VMs, or containers, or anything at all. Get something done, play with it, experiment with it, see what you like.

Docker containers are pretty good, they do make setting up some services pretty easy. Sometimes they also add additional complexity. It's okay to install things directly on the host.

There's no hard rules and everyone have their preferences. When the time has come you will know and you will be seeking solutions of the likes of Proxmox or maybe some cloud servers.

It doesn't have to be perfect from the first try. You will fuck it up a couple times, and that's okay, that's called experience.

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

You can also just disable transcoding in Jellyfin, that's how I'm running it on Pi 4

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

Why are you running on a PI? Wouldn't any other hardware at the same price point be better? You can pick up a used minipc for about $100

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

I don't know, maybe. I bought the Pi like 3 years ago for 50-70€ or something.

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

That's far. If you start having performance issues go with a Intel CPU with hardware acceleration. It can be something like a N95

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

I would run it in a VM

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

My main concern would be security I suppose if I'm hosting a web server on the same computer I store all my family backups and stuff. Would using virtual machines solve that?

Mostly yeah. Even VMs aren't perfect, but so widely used in the clouds of AWS and Google and whatnot that it's good enough.

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

is there anything wrong with just running it in the background on a modern(ish) computer? My desktop is a 5900x with 64GB of RAM

Nothing wrong, but there are some benefits of running dedicated hardware and stable server distro. Rpi or laptop will probably use way less electricity, but if your PC is running anyway than you actually save money by not using any extra hardware

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

Get an old laptop and install https://yunohost.org/ on it. Learning by doing is the best.

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

I am writing this https://wiki.gardiol.org feel free to take a look then ditch it and go your own way.

Its a bit of different take to today's trends (docker and such).

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

Just glanced at your wiki, nicely done! Bookmarked to read later, though it looks like stuff I know. Always good to get another perspective.

Really appreciate and agree with your sentiment about doing such things because you want to contribute to the community and not a "side hustle"/monetization.

[–] [email protected] 2 points 10 months ago

No idea how to put a nice heart emoticon here... But assume I did!

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

I'm not in IT and had no prior experience.

I bought a used Dell Optiplex for cheap and used installation guides provided on the websites of the services I wanted to install (pihole, jellyfin, home assistant etc)

This is by far the easiest method to get started. Learn by doing.

Make all your services LAN only to start; don't open anything up to be accessed outside your home network until you know a bit more, as making it secure requires a bit more time and knowledge.

Hot tip: use chat gpt to help you. If something doesnt work, feed the error messages to it and it will explain why and give you the commands to fix them.

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

A: I found what looks like a pretty good guide here https://piped.video/watch?v=xBIowQ0WaR8

It covers setting up a virtual server on AWS, as well as Setting up a Linux server with Docker and FileCloud or Netxcloud. It discusses some of the pros and cons of each. The only coding involved here is some copying and pasting json files, which is pretty beginner friendly if you ask me.

What you you folks here think? Is this a reasonable guide? Do you see any red flags or major oversights that beginner should know?

[–] [email protected] 4 points 10 months ago (2 children)

Myrecommendations is probably to host a next cloud instance. Does all the standard 'cloud stuff'. File, contact, calendar sync, plus a bunch if other stuff if you want to add it via plugins. If you're patient, and a single use you can host it on basically anything. If you decide you want to add users or have a faster site, you can go down the route of sorting out faster hardware or better specs and suck.

[–] [email protected] 3 points 10 months ago (2 children)

That's a recommendation that I've seen a couple of times, and it looks promising. However I haven't found any guide that really explains how to do it step by step, or what factors I should consider, or even really what I need to be able to do it. Do you know if there is such a guide for someone who really isn't a "computer guy?"

[–] [email protected] 3 points 10 months ago* (last edited 10 months ago)

Honestly, if you want small and cheap get a raspberry pi to play around or rent a VM.

If you care about storage too you can get a Synology NAS (pricy) which is pretty newbie proof and comes out of the box with different and photo sync along with support for VMs or docker.

[–] [email protected] 2 points 10 months ago

My first step was Nextcloud as a snap on a Xubuntu desktop. Very old hardware but a big hard drive.

That was eight years ago. I'll let you know if it fails anytime soon.

I have a bunch of other stuff now, but that was the start, and I still use it all the time!

[–] [email protected] 4 points 10 months ago* (last edited 10 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
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
HTTPS HTTP over SSL
IP Internet Protocol
NAS Network-Attached Storage
Plex Brand of media server package
SSH Secure Shell for remote terminal access
SSL Secure Sockets Layer, for transparent encryption
VPN Virtual Private Network
VPS Virtual Private Server (opposed to shared hosting)
ZFS Solaris/Linux filesystem focusing on data integrity

9 acronyms in this thread; the most compressed thread commented on today has 5 acronyms.

[Thread #530 for this sub, first seen 21st Feb 2024, 03:55] [FAQ] [Full list] [Contact] [Source code]

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

Unfortunately for you OP, you're going to have to become at least decent at networking. The good part is that it will happen naturally as you learn, break and re-do your homelab.

Incidentally, I'm interested in any guides you might have regarding CPU performance metrics and cache. If you can recollect where you got them from.

So, essentially you want a File server and a media server, yes?

I think the parts to something like this would be:

  1. DNS, so you don't have to remember IP addresses. Most people use Pi-Hole/Adguard home, but the idea is the same.
  2. A platform to run your services. A lot of people run containers bare-metal, but a lot of people also run their containers on top of VMs using a hypervisor. Some people just run VMs. For a beginner, containers will be a little more of a learning curve compared to plain VMs but it will pay off very soon. I tend to suggest Podman since it's binary compatible with Docker and I like it more philosophically.
  3. Some way to acquire media. This is where the payoff really starts showing up since you're running about 10 containers or so already. Imagine running 10 VMs on restricted hardware. If you're going to torrent, I'd suggest looking up Sonarr and going from there.
  4. Actual media and file servers. Since you like GUIs, try Jellyfin and (this is not a favourable recommendation but here we go) Nextcloud.

Have fun!

[–] [email protected] 2 points 10 months ago

I have never used it but https://selfprivacy.org/ looks pretty interesting. The way it supposedly works is that their app sets up a VPS for you in a guided manner. They set up the services you want (i.e. Nextcloud and Bitwarden) and configure things like backups and HTTPS for you.

The technical foundations are sound (NixOS) and they're funded in part by NLnet.

They Might be worth trying out if you want control over your data but don't want the responsibility of setting up and maintaining your services while still ultimately being in control of everything.

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

I've been meaning to write a guide like this but haven't had a chance to complete it yet. In short, I'd recommend setting up an Ubuntu Server instance on some old hardware and using incus with ZFS to setup a separate container or VM for each service you want to run: https://linuxcontainers.org/incus/introduction/

This way, if something doesn't work out, you can just delete the container or VM. It also makes it easy to make snapshots or backups before you make a change (e.g. perform an upgrade) so you can easily roll back.

You can even try incus online (see the above link) to get an idea of how it works.

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

Recommend doing a jellyfin server with an *arr stack! Prowlarr, radarr, sonarr, plus qbittorrent. Bonus if you can integrate i2p in there so you don’t have to rely on a VPN :)

there’s also Nextcloud AIO docker. I use it to sync my photos and escape Apple’s 5gb max free-tier backup

Maybe add some assorted services like an invidious instance, Searxng instance?

Welcome to the self hosting rabbit hole!

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

Your "*arr" stack involves piracy and should just be recommended out of the blue. You can setup Jellyfin with Live TV from a HDhomerun and you can buy your own movies and TV shows as blurays so you can rip them into jellyfin.

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

I guess its equivalent to speeding. Everyone does it but that doesn't make it right.

[–] [email protected] 7 points 10 months ago

I have yet to see pirating actually cause civilian deaths but i hear you. It harms corporations’ profits which is a far worse crime in some people’s eyes. But it’s a matter of ideology not suited in /c/selfhosted :)

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

I'm not quite a noob. I run an Arr stack on my PC and I'm going to be transferring it to a dedicated server along with Home Assistant and whatnot next week.

My question is, what's so good about Jellyfin? Why does it always get recommended over Plex? Plex seems to be working just fine so I just don't get why Jellyfin may be better.

Is it just that it's free and open source? Coz while I'm totally down with that, I don't pay for Plex and it seems to be working just fine.

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

A big part of it is the open source aspect, yes.

In addition, Plex is increasingly weighing down their offering with new "features" of questionable value. Some would probably use the term "enshittification" to describe the trend over the past year or two.

I bought a plex lifetime license a long time ago (2013), but for a newcomer I would recommend Jellyfin. You can also run them both simultaneously with no issue and decide for yourself.

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

Thanks, I may very well do that. I just don't understand how to get the Jellyfin onto my telly, but don't worry I'm not asking for help with that, I like a bit of research.

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

There are apps for lots of devices including Android TV which is what I use.

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

Yup I had a quick look after posting that reply and there is one for my Roku which is the main device I use for media. The kids watch on the PlayStation 4 though and it seems Sony are not great with OS software unfortunately.

That said I'll still probably spin up a container and have a play if my new server ever arrives

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

Recommend doing a jellyfin server with an *arr stack

That's a great way to get a cease and desist letter from your ISP.

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

They’ll max send you a warning 😊 from experience.

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

What ever you do make sure it will scale.

I personally would recommend Proxmox right out of the gate as it will scale very nicely. I run docker and podman in a few VMs on my dedicated cluster and I have a virtual desktop that I use for gaming (USB and GPU passed via vfio)

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

This is important. I dunno about scale, but backups. I started out hosting a chat room on a raspberry pi. It was a fun side project. But then, that became where my friends all hung out. That was the place, so it became important to me. And then the SD card got corrupted. I then moved on to a consumer laptop. It was way more stable, much faster. But if I messed up anything about the installation, I was hosed.

I very highly suggest using Proxmox, like you say, and setting up automatic backups. And occasionally transfer them to a hard drive. It doesn't matter what kind of virtual CPUs or services you install, [email protected], as long as you have a plan for when something you host becomes important to you and you lose it.