this post was submitted on 07 Dec 2023
93 points (97.9% liked)

Selfhosted

40173 readers
651 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 1 year ago
MODERATORS
 

Hey guys, I'm new to self-hosting; I'm trying to set up cloud storage to store pics and other content. However, I’m unsure whether to use my old computer, Buy NAS or ResberryPie to set up a home server.

Also, what is the best privacy-friendly OS to use with the home server?

Lastly, do’s and don’ts.

Any help would be appreciated (:

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 35 points 11 months ago (1 children)

Use docker compose . Like "everyone" uses it. If the service doesn't have a compose file, request it, or write it yourself as son as you are knowledgable enough.

Use podman as soon as people and services switch to it (you'll know when the latest tutorials talk about podman instead of docker).

Use ngingx proxy manager or another easy to use reverse proxy.

Don't think it's production ready after it was working 2 days. It may be, but it's unlikely you have enough knowledge how to fix things.

Automatic updates.

Don't install crap on the system.

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

This is a good way to get started.

Docker and Docker compose on whatever hardware you want to start on.

Don’t think it’s production ready after it was working 2 days. It may be, but it’s unlikely you have enough knowledge how to fix things.

Most important there. You aren't building a production system for corporate clients, you're doing this for fun. Focus on one thing, try to get that one thing running. Toy with it, make it work. Then start on your next thing. Slowly you'll build up a large system, but it won't be immediate.

I personally have been working on switching from compose to kubernetes, which is way more advanced than a starter needs - but I've been slowly migrating for about 4 weeks now, one service at a time. Just how homelabs are done

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

What's the benefit of kubernetes over docker for a home server setup?

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

For home use? Barely any. You can use multiple computers to spread out your load, which is nice for me because I have about 20ish containers running with differing workloads.

But I'm also a developer who needs to keep up on devops, so it's mostly a learning thing for me. But I gotta say it's real nice having everything laid out in a few yaml files that I can tear down and rebuild on a whim

load more comments (1 replies)
[–] [email protected] 3 points 11 months ago

Some additional benefits also are the management of secrets. In compose you will shove them inside a .ENV file if not directly inside the compose file, while in Kubernetes you can use the secrets resource or even plug in Vault relatively easily. Stateful storage is also better handled. Named volumes are nasty to keep track of, backup and it's not possible to spread them across multiple devices (as in disks) while bind mounts are insecure in general. Kubernetes provides a storage abstraction which is easier to manage.

Obviously the big advantage comes when you want to run stuff on multiple devices to spread the load (or because the one box is saturated), since with compose you would need completely custom and independent setups.

Finally, I would say that running compose makes it much harder to have a monitoring stack supporting your services, since you will need to do all the plumbing for metrics endpoints yourself. And - very last - you can have admission controllers in Kubernetes that prevent certain configuration (e.g. Kyverno with a bunch of default policies), while with compose you need to manually vet every compose file and image (for example, to ensure it doesn't run as root).

That said, compose is perfect to get started and to run stuff on one machine.

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

Start with hardware you have already, its high likely overkill anyway. If you have CPU that supports quicksync (intel 7th gen or newer iirc) you could remove GPU to reduce power consumption. QuickSync will make streaming easy.

Raspberry pi cant transcode so its not best for media server, but it can direct play so that might not be an issue at all. I upgraded from rpi to desktop PC because I had issues with power on rpi USB ports for storage. Its also impossible to upgrade RAM on rpi. Good thing about rpi is super low power consuption, but some small factor PCs can drain ~10W. My PC was at 22W with 3 SSD. You can get power meter like Shelly plug S to see power consuption yourself.

Any OS (I use debian) of your choice + docker and docker-compose. Then install portainer and manage all services from there.

  • For pictures try Immich, its amazing.
  • For cloud storage Nextcloud
  • For media streaming consider Jellyfin (much better than Plex IMO)
  • Check wiki.servarr.com if you are downloading content with torrents or usenet. It can automate everything and provide awesome UI for users. Next level torrenting
  • If you have only 1-2 users consider Wireguard or tailscale to connect when not at home.

I was going this route and Im super happy with everything

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

Raspberry pi cant transcode so its not best for media server

To expand on that:
Kinda right and still wrong.
You actually can transcode. But the performance wont be great.

I tried it with Jellyfin by transcoding anime episodes thanks to SSA subs (1080p ~1GB @ 20min episodes). Performance was about 0,7-0,9x

because I had issues with power on rpi USB ports for storage.

Corrupted my kernel by having 2 USB powered disks on it (hdd and ssd) and wondered why the write performance sucked so hard if I wrote to both at the same time.
Then I updated the kernel and corrupted it c:

Check wiki.servarr.com

Don't forget trash guides.

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

The 2 usb ports on RPI share the same usb controller and pcie lines, so you can't expect max throughput on both ports simultaneously

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

Problem was less the throughput and more the power it could provide to supply both a 2.5" hdd and ssd.
If you connected the monitor your could see a bolt on the monitor probably warbing about undervoltage/power.
When I upgraded the kernel it went down during the upgrade.

load more comments (1 replies)
[–] [email protected] 16 points 11 months ago (1 children)

Whatever you do:

  • keep notes
  • consider the 1st build "wrong"
  • "destroy" it (before it's the only place your data is stored in)
  • build it again

That means you'll really understand it and how to maintain it.

And others have said: 3-2-1 backups

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

Still chugging along with my broken permissions ACL from my 2nd or 3rd attempt and knowledge from my Pi4.

load more comments (1 replies)
[–] [email protected] 13 points 11 months ago* (last edited 11 months ago) (1 children)

Don't use Raspberry pi.

  • It is overpriced and slow.
  • SD Card write speeds are low
  • you will need external storage
  • Arm architecture, so some programs might not work
  • power issues
  • slow USB

A cheap old laptop will work a lot better.

  • it might not have AC wake up (if power goes out, you will need to manually turn it on)
  • it might have always on cooler
  • it supports SATA SSD without adapter

I think Raspberry pi is only good if you need gpio, otherwise save money and use an old laptop.

[–] [email protected] 14 points 11 months ago (3 children)

Don't use Raspberry pi.

Oversimplified and in many cases is not good advice. Raspberry Pis are perfectly capable low cost home servers that absolutely sip power and take up little room.

Mini pc's such as dell optiplex micro's and intel nucs are also a good consideration.

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

Exactly. Just know the limitations and capabilities of your hardware and implement your system accordingly. My Rpi4 works well for adguard home, wireguard, NPM etc. While my media server and other resource heavy stuff are installed on a Mini PC.

load more comments (2 replies)
[–] [email protected] 11 points 11 months ago (2 children)

Old think pads can be had for dirt cheap on eBay, you've essentially got a little server you can hide anywhere, you don't have the keep the lid open (disable sleep on lid close, you can hide it wherever you want now) , ANDmost importantly it has it's own little integrated UPS :)

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

Ya know what... That's actually a really good idea 😅😎

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

Good one. And Lenovo battery management utility allows setting the state of charge level. Set it for 50% and the battery will last mostly forever.

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

The Raspberry Pi can work if you don't need a lot of space or high performance. You will need an external drive or two for it. The power consumption will be very low too.

You can use an old PC if you need more drives. Just don't use an old gaming PC since the power consumption will be rather high.

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

You can always just undervolt the cpu and take out the gpu. Sure, a 1000w power supply is going to be inefficient at 20% draw, but if you already have old hardware it isn't always cost effective to replace it just because of a higher power draw.

Also the pi is great for stuff like dns and network storage, but it's going to struggle with transcoding as a media server. I can't speak for the 5 from personal experience, but the 4 was completely incapable as a jellyfin/plex server. I just use an old stripped down computer for media and the pi is relegated to dns adblocking.

load more comments (3 replies)
[–] [email protected] 10 points 11 months ago (4 children)

Any cheap PC is going to be way better than raspberry Pi.

Also, may I suggest you to checkout Immich? I am in love with the project and have been using it as Google photos replacement.

Welcome to selfhosting!

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

Immich is great. Works so much better as a photo storage than Nextcloud does.

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

I switched from Google photos to immich just recently. I'm still looking for a good solution to replace Google's editing features. I used, and miss, those features a LOT.

load more comments (3 replies)
[–] [email protected] 9 points 11 months ago (5 children)

Always remember: RAID is not a backup.

Having only one backup and the server dying means you now have no backup, therefore the 3-2-1 scheme for backups is worth looking into.

load more comments (5 replies)
[–] [email protected] 7 points 11 months ago

For a privacy friendly OS, surprised nobody has mentioned Freedombox

It's designed explicitly for your use case, along with an easy path to other self hosted services. When you're ready for more than it offers through the web interface, it's a full Debian install under the hood - so you can install whatever you need to. Privacy friendly and super stable, with smooth upgrades to new releases and security updates for old versions several years after the new one is available.

As far as hardware, your old computer is probably more powerful than a Pi and can support more drives, but the Pi will be more power efficient. As others have mentioned, if you care about your data long term then backups are a must, so a separate NAS or a Pi with a large drive for backup storage is a good idea as well, whatever OS you choose.

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

Personally I prefer older PCs in standard formfactors. I avoid HP, Dell, Lenovo pre-builts because they use proprietary power supplies and motherboards, making them difficult to upgrade. Laptops aren't really upgradable, they don't have enough SATA ports, and USB isn't reliable enough for storage. Raspberry Pies, while power efficient, are too underpowered. Old server hardware is also an option, but they are generally too noisy.

[–] [email protected] 6 points 11 months ago

Micro PC, install Linux. External nas. Or mini-pc with builtin nas.

Nextcloud is a good platform for hosting self cloud stuff. You might want a fixed ip, or other method to route if wanting to use out of home.

[–] [email protected] 6 points 11 months ago

If you want something that works without you fretting with the base system too much, and gives you a decent GUI to handle the base: Proxmox. Run VMs, run containers on said VMs, and experiment as much as you would like.

I will personally not be doing this (I plan to run Alpine as my base instead of Debian, even though I hold the latter in very high regard), automate provisioning with Ansible, and exclusively use Podman instead of Docker. I'm willing to go through the pains of not using Docker directly, but at least I'm not learning how to run everything on k8s (which is not a bad idea at all, but for most homelabs without HA, it's overkill).

Learn networking, learn container orchestration, learn GNU/Linux (or in my case, non-GNU/Linux - yes you plebs, musl is good) security, auth basics, UNIX permissions, general automation, and give yourself time.

Also, do not become the family system-admin without having a fair bit of experience doing this already. You don't want the homelab becoming a job, which means getting to fix it at your own schedule, not when Jellyfin is broken and Wifey is bearing down on you because you cancelled Netflix in favour of your Linux ISO-powered library.

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

A cheap used PC with a Ryzen 9 or something? Ez to maintain, very power efficient, especially when idling (compared to servers, not Pi), and you get to choose the important bits (like what new enterprise level disk you gonna buy, etc) as its easier to upgrade.

And you get a lot faster CPU than duo Xenon builds in the same price range (used ofc). What you don't get is ECC & more RAM lanes.

Also much easier to make it inaudible (or like 18~19dB?) compared to servers.

I do use a Pi-based Proxmox Backup server.

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

Got a link for a cheap Ryzen 9 pc?

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

I don't (and it depends on where you live). But R9s have been around for quite a bit, maybe try looking for a 4~5 year old 3900x (or 5900x), you get 12c/24t.

But it's not like 7 (8c/16t) series lacks power for a home lab. Really depends on what you wanna do with it. Even a low powered Celeron is plenty for some cases.

(I am taking about used PCs)

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

Must not be my neck of the woods (US). You mentioned the Pi, which is in my wheelhouse of "cheap". Personally I've got a couple computers picked up from the local community college for $10 running TrueNAS and Proxmox.

My Google-Fu couldn't find an R9 3900X for under $200, just the chip, used. I had hopes you had a better source I was missing out on.

load more comments (3 replies)
[–] [email protected] 5 points 11 months ago

Go for a used small form factor PC. They usually have a decent amount of house power and can house many drives

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

I personally think a NAS would probably be the easiest option and on top of that they are optimized for low electricity consumption, which a PC, especially when it's older is not. It makes a huge difference because it's running 24/7 for 356 days a year.

I used a PC once and didn't realize that it took always about 300 W so at the end of the year surprisingly the electricity bill was much higher than normally.

[–] [email protected] 5 points 11 months ago (4 children)

I used a PC once and didn't realize that it took always about 300 W

Were you mining bitcoin or something?

load more comments (4 replies)
[–] [email protected] 5 points 11 months ago (1 children)

For a small pocket and low power consumption but incredible performance I would recommend the Odroid M1. Add a cheap nvme drive for the os (I prefer debian) and a 2,5" hdd. On top of debian you can install OMV for a webui based linux home server control. DietPi is nice for beginners too. And like other ppl already said, you can use docker/podman for running your software.

Oh and don't forget the 3-2-1 backup rule. 3 Backups, 2 different media types (ssd, hdd, usb stick, cloud, ...) and 1 offsite backup (cloud or hdd at your friend's house).

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

Thank you for the info. I wasn’t aware of the 3-2-1 backup rule until now.

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

Those are my old PC specs:

GPU: GeForce GT 240 DDR3 1GB CPU: unknown Motherboard: Lenovo is6xm PSU: Dell L240AS-00 240W RAM: 2x 2GB Storage: 1TB HDD and 128GB SSD

I want to build a low power consumption yet power enough server to run any apps, etc. What upgrades would be the best for my use case?

[–] [email protected] 4 points 11 months ago (5 children)

You might look for a used Optiplex SFF or micro form factor PC. These can be purchased for around $100 in the US and have full fledged PC hardware which is capable of running most things. The downside here is less peripheral support for things like PCIE or internal storage.

load more comments (5 replies)
[–] [email protected] 3 points 11 months ago* (last edited 11 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
HA Home Assistant automation software
~ High Availability
NAS Network-Attached Storage
NUC Next Unit of Computing brand of Intel small computers
PSU Power Supply Unit
PiHole Network-wide ad-blocker (DNS sinkhole)
Plex Brand of media server package
RAID Redundant Array of Independent Disks for mass storage
RPi Raspberry Pi brand of SBC
SATA Serial AT Attachment interface for mass storage
SBC Single-Board Computer
SSD Solid State Drive mass storage
SSH Secure Shell for remote terminal access
k8s Kubernetes container management package

[Thread #338 for this sub, first seen 7th Dec 2023, 21:35] [FAQ] [Full list] [Contact] [Source code]

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

Do backups. Don’t forget to test if recovery works as expected.

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

Since you're new, I'd recommend just using the old PC to start and get comfortable. Once you're sure you want to invest some money, you can either build it buy yourself something more energy efficient if you're super concerned about that.

As for the best OS, just any server OS will do. I run Rocky Linux which is a RHEL derivative, but you can also try TrueNas or anything else you want. Even Windows Server would work if you wanted to go that path.

There are many paths you can take, and which you go down depends heavily on personal preference and the desired use of your system.

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

Yunohost is beginner friendly

https://yunohost.org/

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

Try the pi for tinkering since it will be cheaper. If you end seeing issues with performance for the usage you need you could start looking up used laptops or optiplexes.

I had some used componentes lying around so I frankesteined a server with used parts after buying some disks

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

Lots of relevant comments in this post https://aussie.zone/post/4286731

load more comments
view more: next ›