this post was submitted on 20 Nov 2023
6 points (100.0% liked)

Self-Hosted Main

502 readers
1 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.

For Example

We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.

Useful Lists

founded 1 year ago
MODERATORS
 

One thing i've learned over the years is the way I did something when I was learning is usually not the best way of doing it, and I later go back and redo everything now that I have gained experience and knowledge. I have decided to ditch google photos, and was lucky enough to snag a free rackmount 2017 server from work with an i7 installed and 2 6tb drives on the way. But now comes the hard part of deciding what software I am going to end up learning on and hopefully living with. First and foremost I want a photo backup service, and I have debated between immich and xpenology, I also know that I want to run Pihole and would really like to self host my own website documenting my projects, even if no one will ever look at it.

If you had to start from the beginning, which OS, which container manager and which containers would you build. I would love the recommendations from those who walked so that I can run

top 36 comments
sorted by: hot top controversial new old
[–] highedutechsup@alien.top 2 points 10 months ago (1 children)

Never buy into a platform, they tend to waste a lot of my time on changing things to upgrade versions that have no point except to change the whole platform, and the things you like to use get deprecated. Or they never get to where you want to be. Your vision is not the maintainers vision. Learn to roll your own...everything.

[–] kelthuzad12@alien.top 1 points 10 months ago

Platform like what?

[–] Ursa_Solaris@alien.top 2 points 10 months ago

I already apply these rules myself, but these are the five major things I emphasize to everyone.

  1. Don't overcomplicate things. You don't need Proxmox on every machine "just in case". Sometimes, a system can be single purpose. Just using Debian is often good enough; if you need a single VM later, you can do that on any distro. This goes for adding services, too. Docker makes it very easy to spin things up to play with, but you should also know when to put things down. Don't get carried away, you'll just make more work for yourself and end up slacking and/or giving up.

  2. Don't put all your eggs in one basket if you can avoid it. For instance, something like Home Assistant should run on its own system. If you rely heavily on your NAS, your NAS should be a discrete system. You will eventually break something and not have the time or energy to fix it immediately. Anything you truly rely on should be resilient so that your tinkering doesn't leave you high and dry.

  3. Be careful who you let in. First, anybody with access to your systems is a potential liability to your security, and so you must choose your tenants carefully. Second, if others come to rely on your systems, that drastically reduces your window to tinker unless you have a dedicated testbench. Sharing your projects with others is fun and good experience, but it must be done cautiously and with properly set expectations. You don't want to be on the receiving end of an angry phonecall because you took Nextcloud down while playing around.

  4. Document when it's fresh in your mind, not later. In fact, most of the time you should document it before you do it. If things don't go according to plan, make minor adjustments. And update docs when things change. What you think is redundant info today might save your ass tomorrow.

  5. Don't rely on anything you don't understand. If it works, and you don't know how or why it works on at least a basic level, don't simply accept it and move on. Figure it out. Don't just copy and paste, don't just buy a solution. If you don't know it, you don't control it.

[–] AnomalyNexus@alien.top 1 points 10 months ago

Not much - it's been a pretty organic learning journey.

Very much a crawl > walk > run thing. Can't necessarily jump straight to the end.

[–] QuestioningMaeve@alien.top 1 points 10 months ago

Documentation.

Document how my drives are set up (like really... I don't remember how they are configured XD I only know I haven't ran out of space yet so everything is going the correct mount.)

Keep a propper list of what process uses which port.

Use containers from at the start.

That's all I can think of atm.

[–] crusader-kenned@alien.top 1 points 10 months ago

Do all my network configuration with ansible, terraform or something similar.

And I wouldn’t document anything but instead automate everything.

[–] Heuristics@alien.top 1 points 10 months ago

Currently doing that. Migrating from a raspberry pi 4.

Here is the plan:

Use the ASROCK N100DC-ITX motherboard+CPU for low power usage but enough power for a snappy web server. Add 32GB ram and 2tb m.2 ssd as well as 4+7tb external usb storage.

Install windows 11 as root OS and use windows subsystem for linux with ubuntu for any webservices, install those using docker inside cosmos. This way the device can be used to play simple 2d games via steam yet be used for plex and web services such as bookstack and kavita.

[–] MiteeThoR@alien.top 1 points 10 months ago

I did start over recently - Dell R730 salvaged from work, 64 cores, 256GB RAM

Took the guts and moved it to a Machinist X99 motherboard in a Rosewill server case so I could put in silent fans and have room for 15 drives.

Proxmox hypervisor booting on 2x 2TB NVME drives.

Bought 6 x 16TB drives and a HBA to run them, then did HBA passthru to a virtual machine running Truenas which mounts everything as a samba share

Multiple other Ubuntu VM’s running docker compose. One VM runs utility / ARRS, 2nd VM runs Plex so that my media playback isn’t affected by utility. These servers mount the TrueNAS samba shares for file processing. That way they are booting/running on NVME but media is on spinning iron.

Also have LXC running Adguard Home for DNS based adblock/malware protection for the entire house. Also have a Raspberry PI as a 2nd DNS server.

Several Windows VM’s used for work (I connect to customer environments so I spin up a separate VM for each customer to keep their environments isolated.

[–] Aurailious@alien.top 1 points 10 months ago (1 children)

I'm going to go against the grain and say use K8s from the beginning, or maybe more broadly gitops. I now use a mix of nuc and pi with Talos Linux and deploy with argocd. My entire stack is run from git repos. For me thats really easy and makes running my lab and selfhosted parts a lot less work.

Though the learning experience going from vm management to docker, to compose, to K8s, to gitops has been valuable.

[–] discoshanktank@alien.top 1 points 10 months ago

Do you have a guide you fomllowed to get started? I’d love to try and go in that same direction

[–] broken_cogwheel@alien.top 1 points 10 months ago

I've made a lot of "interesting" decisions and some things were silly, some things worked out, some things I needed to fix.

I've been self-hosting for a long time. Before commodity virtualization (let alone containers)... As technology improves, one must adapt and that often involves rebuilding, migrating, retiring software.

My only regret is the data I've lost from insufficient backups. Everything else is part of the fun, part of the experience.

[–] bw1235@alien.top 1 points 10 months ago

I'm happy with OpenMediaVault for my purposes, but I probably would've taken the time to research and leverage ZFS instead of EXT4.

[–] a_40oz_of_Mickeys@alien.top 1 points 10 months ago

I started with OMV and a NUC connected to a 2 drive terramaster DAS. This was a mistake. Ended up building a box with room for 12 drives running debian with snapraid and mergerfs. Using duplicati to keep all my yaml and config folders backed up

[–] aamfk@alien.top 1 points 10 months ago

I'd get my active directory and local dns situated before having a bunch of virtual machines setup

[–] Frozen_Gecko@alien.top 1 points 10 months ago

I would document everything I could if I started from scratch. I really regret not documenting from the beginning. Ex post documenting is just not as reliable.

[–] xerker@alien.top 1 points 10 months ago

Probably wouldn't use Apache2.

I want to use caddy and reverse proxy from there but I can't bring myself to do it.

[–] s3r3ng@alien.top 1 points 10 months ago

What is wrong with a Synology NAS or TrueNAS? Plenty of apps for photos on or using such.I am falling in love with NextCloud for many things reasonably integrated together. Can definitely self-host that and share it or parts of it with others and collaborate with them if you like.
Dockerize all the things. That and/or kubernetes. I hear nice things about Proxmox in home labs but haven't got around to messing with it.

[–] servergeek82@alien.top 1 points 10 months ago

Started from a mini computer with 4gb ram and a USB nas. Barely supported 1 stream.

Now I have a rack mount server. Overjoyed when I actually use 40gb of the 256gb of ram.

Deployment is handled via gitea runners. Mirrored on a separate laptop in the fork of gitea. I get a notification when it completes.

Do differently? .... I do have my new server I just got with 384gb of ram. Just waiting for me to find out.

[–] TheCaptain53@alien.top 1 points 10 months ago

Only change I'd make is to run Debian on my server over Ubuntu. I'd still run everything in Docker Compose rather than something else, or consider the use of something like k3s.

The server setup to get it ready for hosting data was a bit complicated, so I liked someone's suggestion of putting everything in an Ansible playbook. I'd consider doing that.

[–] M-fz@alien.top 0 points 10 months ago (3 children)

Never offer Jellyfin to friends / family so I could downgrade to a much smaller, cost efficient server. Hell if I didn’t have to stream outside the house I’d probably use a raspberry pi for the rest, those things are super capable now.

[–] alnyland@alien.top 1 points 10 months ago

Can you clone the system and give/sell them the current setup? I'm kinda joking but also kinda serious

[–] bamhm182@alien.top 1 points 10 months ago

You could always just stop? "You're welcome for the free ride while it lasted, I'm cutting my energy usage down by 87%"

[–] FallenFromTheLadder@alien.top 1 points 10 months ago

Never offer Jellyfin to friends / family

Tell them the system is getting too expensive to run and that you unfortunately need to shut it down unless they help you with the expenses.

[–] GoobyFRS@alien.top 0 points 10 months ago (1 children)

I moved to TrueNAS Scale from Core. My worst decision ever. Core was more stable, faster, and the jails actually worked as expected without some shit k3s cluster nonsense.

[–] SirLoopy007@alien.top 1 points 10 months ago

Well you just caused me to delay that upgrade for a few more months again!

[–] Heas_Heartfire@alien.top 0 points 10 months ago (1 children)

I got a 4TB drive thinking it would be plenty for plex. Oh boi was I wrong. Specially when shows started to come in.

A 12TB drive is on the way and I'll leave the 4TB one for immich and nextcloud alone.

I don't have any issues with ubuntu server and I like portainer so I don't think I'd set things up differently. I should organize and backup the docker compose files though.

[–] Tharunx@alien.top 1 points 10 months ago (1 children)

Do you use immich or nextcloud memories(nextcloud app) for backing up your main photo library?

[–] Heas_Heartfire@alien.top 1 points 10 months ago

I use immich for that. Haven't tried nextcloud memories but I have no need to do so for now.

[–] Sinister_Crayon@alien.top 0 points 10 months ago (1 children)

It's a homelab. I start from scratch about every 2 years just because I can.

The only consistent element is the data on the system... the operating system, applications and frameworks often get a workout.

Having said all that, my current setup is working exceedingly well for my use case and I don't know that I'm going to change it en-masse any time soon. Individual apps will change though I'm sure.

[–] nosliw_rm@alien.top 1 points 10 months ago

well go on then, what are you running

[–] lilolalu@alien.top 0 points 10 months ago (1 children)

Unpopular opinion: don't use any of the Truenas, unRAID, freenas, Openmediavault, proxmox stuff. Sooner or later you will run into something those special interest systems can't do and it will feel annoyingly limiting.

Choose a widely used vanilla Linux distro, Debian or Ubuntu, install everything as docker container, learn how to handle docker compose and how to configure stacks via docker-compose.yml

[–] Pingoui01s@alien.top 1 points 10 months ago

I made the same conclusion when I tested all the NAS distros for a future NAS. I run Debian 12 with ZFS now and i'm happy.

[–] notdoreen@alien.top 0 points 10 months ago (3 children)

I use Docker-compose for everything instead of Docker run

[–] ZeeroMX@alien.top 1 points 10 months ago

I also migrated all my docker run containers to docker compose.

I was tired of looking at history for the exact docker run command for anything.

[–] kiwimonk@alien.top 1 points 10 months ago

Definitely this. There's actually a cool new docker interface that the uptime-kuma guy is working on. You paste in your docker run command and it creates a compose file.

https://github.com/louislam/dockge https://youtu.be/E805XcbTzgY?si=r6uFI2pvbJg1cXBe

[–] DanGarion@alien.top 1 points 10 months ago

Same here, but I take it one step further I do it all from the Stacks section of Portainer with my compose files.