I'd like a solution to self-host services such as Vaultwarden, Immich and Home Assistant at home. I don't want to rely on cloud solutions for this so I'm thinking maybe along the lines of a Raspberry Pi for the Docker apps and a NAS for the backend storage, but I'm really clueless as what to get. I just know that I'd want something relatively simple and easy to maintain.

I'm also a bit of a Linux and Docker noob so I'm looking to get some advice and ideas from the Fedi community!

What would your suggestions be? What does your home lab setup look like?

#SelfHosted #HomeLab #Linux #Docker #NAS #RaspberryPi #VaultWarden #Immich #HomeAssistant

Thanks everyone who has replied. Very helpful. Gives me some options to explore and work out what works best for me.

I’ll respond to your posts if I have follow up questions. Thanks again. 🤩

Edit: Adding additional people to say thank you. 😊

@vague @weiser @bradley @edinburgh_man @ZS @emon @alphapuggle @Chartrux @leberschnitzel @trainguyrom @innkeeper @fox @peejay @brakeoutgaming @chewie @rds @etam

Today I’ve spent the majority of the day researching different options I might have for self hosting (using the suggestion made here and more) and to say there is a lot out there is an understatement!

For now I’m going to see if I can get hold of an old laptop of mine and use it to do some testing on; installing different applications and seeing what I feel may suit in a more permanent solution.

#SelfHosted #HomeLab

Old laptop acquired! Now the learning and testing begins, starting with Proxmox!

#SelfHosted #HomeLab

I got a new toy. 😁

#SelfHosting #HomeLab

It’s not a proper rack or anything special, but it’s a start! 🤩

Top Shelf

  • Orbi RBR10 Mesh Router
  • 8 port Netgear unmanaged switch
  • SmartThings Hub
  • Philips Hue Bridge (Hub)

Bottom Shelf

  • Terramaster F4-424 Pro NAS server with 4 x 4TB Seagate Ironwolf HDDs.

Behind the Shelving Unit

  • Semi-tidy cabling. It’ll do. 😅

#SelfHosting #SelfHosted #HomeLab

It took a while to get my head around as I’m a complete noob at it, but this afternoon I’ve got Docker and Portainer setup and a container running Nginx.

Also got a cronjob running every 10 minutes to automatically update DNS records in Cloudflare whenever it detects my public IP at home has updated. 😎

#SelfHosting #SelfHosted #HomeLab #Docker #Portainer #Nginx #Cloudflare

Question for Docker / Portainer users; How do you manage your backups?

I really don’t want to make any services I host “live” before I have a good backup solution in place so looking for tips! Thanks!

#SelfHosting #SelfHosted #HomeLab #Docker #Portainer

Okay so this evening I finally got around to setting up some backup logic on my NAS. I have an rclone docker container which runs a “copy” command every night to backup my docker data/config directory and store it in an S3 storage bucket, and the removes itself so it doesn’t use any unnecessary resource.

It’s definitely not perfect (it might even be overly complicated), but it’ll do for now. At least I know I have some form of backup should shit hit the fan.

#SelfHosting #SelfHosted #HomeLab #Docker

What are your favourite monitoring tools for your home labs?

I’m looking to get some recommendations. Be great if it has an accompanying app for mobile or a decent web app.

#SelfHosting #SelfHosted #HomeLab #Docker

Immich app backing up the photos and video from my phone. Gonna be here a while. 😆

#SelfHosting #SelfHosted #HomeLab #Immich

@jamie The image shows a smartphone screen displaying a backup application interface. The background is dark, with text and elements in light purple and white. At the top, there is a navigation bar with a left arrow, the word "Backup" in the center, and a settings icon on the right. Below this, there is a section titled "Backup Albums" with a "Select" button. The selected albums are "Favorites, Recents (All)." The next section shows "Total" with 7737 assets, "Backup" with 235 assets, and "Remainder" with 7502 assets. At the bottom, there is a progress bar indicating "Uploading file info" with a file name "IMG_1798.JPG [image]" created on "May 4, 2025," and a speed of 12.15 MB/s. The progress bar is filled to 100%, indicating the file is fully uploaded.

Provided by @altbot, generated privately and locally using Ovis2-8B

🌱 Energy used: 0.229 Wh

@jamie I have uploaded 65k assets from iCloud Photos Library (so each one had to download from iCloud first) and it took three days nonstop running on an iPad. Not that bad.

@stooovie Holy moly yeah that’s a lot of items to upload. 😆

Did you keep the screen active or did the background service actually work? Doesn’t seem to be working for me.

@jamie https://www.beszel.dev for system metrics and https://uptime.kuma.pet for service health. Much more lightweight than your old school Prometheus stack.
Beszel | Simple, lightweight server monitoring

Lightweight server monitoring with historical data, Docker stats, and alerts.

Beszel
@stefandroid Thanks! I’ll have a look.
@jamie #Grafana for sure. No mobile app, but mobile friendly

@blackvoid I didn’t think of Grafana. We even use it at my work. 😅

Thanks!

@jamie
Correcting "should" into "when"

IT stuff works better when there's an adequate level of paranoia IMO 😁

Anyhoo, it's a similar solution to the one I adopted, rsyncing with an external HDD AND a bucket online.
I just added a script to zip everything (as in making a snapshot) and remove the copies older than a <insert a parameter here>

@ItsMeAlex Absolutely! It’s not enough to settle any paranoia at the moment. I plan on doing exactly that with dated archives, specifically a weekly full and daily differential backup. It’s just a slow burn in regards to figuring out how to do on Linux. I could do it with my eyes closed on Windows. 😆

@jamie keeping it simple here - copy the files and export the databases… here’s a post outlining my database export. I’m using kubernetes but it would work for docker also

https://www.beyondwatts.com/posts/backing-up-postgres-and-mariadb-with-a-kubernetes-cronjob/

beyondwatts | Backing up postgres and mariadb with a Kubernetes CronJob

As part of my cluster backup operations, I run a nightly dump of all my databases. I am using Bitnami mariadb galera and cloudnative-pg posgres. CloudNativePG uses barman for backups to S3 storage which I am using but I also export a fully backup each database to an NFS every night.

beyondwatts
@beyondwatts I shall have a read, thank you.
@jamie the data folder of any container has to be a volume, mounted from the host

@jamie I am not a pro at this...

But I make all of my Docker container volumes live as subfolders in /configs/ and backup that folder daily with Borg Backup.

Portainer is where all of my compose xmls & envs get organized. I back those up every couple weeks with this script:

#!/bin/bash

# Variables
PORTAINER_HOST="http://192.168.1.145:9000" # Replace with your Portainer host
API_KEY="Abc123" # Replace with your Portainer API key
BACKUP_DIR="/configs/Portainer Backups" # Replace with your desired backup directory

CURRENT_DATETIME=$(date +%F_%H-%M-%S)

curl -k -X POST "$PORTAINER_HOST/api/backup" \
-H "X-API-Key:$API_KEY" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{ "password": "" }' \
--output "$BACKUP_DIR/portainer-backup_${CURRENT_DATETIME}.tar.gz"

echo "Portainer backup completed successfully and saved to $BACKUP_DIR/portainer-backup_${CURRENT_DATETIME}.tar.gz"

@jamie Depends a bit on your setup. Historically I used lvm snapshots and duplicity to do backups: https://git.shivering-isles.com/shivering-isles/infrastructure/-/tree/master/roles/backup_lvm?ref_type=heads

Basically I would have a directory for each app, which contained the docker-compose file + bind mounts of the data of the containers. then doing snapshots of that FS and back it up form the snapshot, creating crash consistent backups.

I'm sure that are better tools to use for backups these days, but it's still a valid approach :) Hope you get some inspiration.

roles/backup_lvm · master · Shivering-Isles / Infrastructure · GitLab

Repository to provision all services using Ansible

GitLab
@sheogorath Thanks, I will take a look!
@jamie I know this isn’t what you want to hear but ever since I went to proxmox with LXCs and Proxmox Backup Server I can’t believe I waited as long as I did
@johnsturgeon I’ll have a look into that, but I’m running docker on my NAS so unsure if that’s an option for me.

@jamie The image shows a black metal shelf unit positioned in a corner of a room with light-colored walls and wooden flooring. The shelf has two levels, with electronic devices placed on top. On the top shelf, there is a white device with a rounded top, possibly a router, and a black device with a power cable connected. On the lower shelf, there is a black device with a vertical design, likely a NAS (Network Attached Storage) unit. The shelf is connected to a power strip on the floor, with various cables neatly organized and plugged into the wall. The overall setup appears to be a home or office network equipment arrangement.

Provided by @altbot, generated privately and locally using Ovis2-8B

🌱 Energy used: 0.181 Wh

@jamie I have a proper rack and you really don't want to see the state of the back of it. Neatly done.

@woe2you Thanks!

Yeah I can imagine. Racks can get untidy very easily. The ones I have at work were all neat and tidy when I set them up, and over time other people have got their hands on it and now they’re not so neat and tidy. I try to ignore it. 😆

@jamie I could at some point just grab a box of cat6 and make everything I need to exactly the right length, but that would be money I could spend on MOAR DISK instead, so I just used whatever I had to hand.
@jamie
The average time any rack looks presentable is about 5 minutes anyway, so... 😝
@woe2you
@nanianmichaels @jamie The interval between it being delivered and me starting to rack stuff in it? That tracks.

@jamie
Objection!

It has shelves and it contains network gear. It is thus a rack 😝

@jamie what RAID level are you aiming for?
@brakeoutgaming I’m using Terramaster’s TRAID which is similar to RAID 5 but allows for the use different sized disks without wasting the extra space.
TRAID

TerraMaster Official website; Data Storage Master

@jamie @doubleaa can we get a cable management score on this one?

@jamie The old laptop will likely be more powerful then the raspberry pi, or an orange pi 5/plus.

On the other hand, it will use more power (probably, i guess it depends) which will cost you more money. Unless your electricity is dirt cheap.

Vaultwarden doesn't require much in the way of CPU cycles. I am unsure about home assistant. Out of all of them, Immich is likely going to be the most resource intensive (if it has to generate thumbnails).

Good luck!

@frenzybiscuit It’s an old Sony Vaio with a 3rd gen i7 and 2GB AMD Radeon graphics card so it’ll probably do fine. Does only have a HDD so will probably need to swap that out for an SSD.

@jamie
Good choice.

IMO, your best option as a first home server is whatever machine you can spare.

Cost with an existing machine is 0, which is always a great entry point.

And when you outgrow that machine, you'll have a much better understanding of your needs, so you'll be able to get a different one more tailored to your growing needs.

And if you're using Docker, it should be fairly easy to migrate, too!

Have fun!

@jamie Get a Minisforum MS-01 and install Proxmox on it, then run two vms, one with HomeAssistant, and one where you run the docker containers. Other options besides MS-01 exist :)

@vague Thanks for taking the time to reply to my post!

Is this what you use? I’ve had a look in their website and whilst it’s looks great, I feel it may be overkill so genuinely curious to find out how do you have it configured in regard to the additional hardware it requires and what do you use it for?

@jamie I run a bunch of vms on it. Or on them rather, I have a NAS box where I run Truenas in a vm on xcp-ng, and I installed xcp-ng on the MS-01. I didn't do my due-diligence though so I missed that you can't run live migrations on different cpu makers, so AMD - my nas server, and intel - the MS-01, can't be in the same pool. I can stop and move vms so good enough for now, but I think I'll have to spend money on an MS-A2 to get live migrations going.
You can check out this guy who built a whole mini-serverrack recently
https://social.linux.pizza/@jamesthebard/114751192259660980
Jason Weatherly (@[email protected])

Attached: 1 image Alright, all of the Pis are now in use. There were quite a few services I didn't want to run in Proxmox and that was the main reason to have a "few" Raspberry Pis in the rack. 1: Primary DNS 2: Secondary DNS 3: PiHole 4: VPN (Tailscale) 5: Power/UPS status #homelab #servers #raspberryPi

Linux.Pizza

@jamie lol I follow the selfhosted tag so that’s how I found this, but wanted to chime in and say an Rpi is good, but will likely struggle with Immich and the facial recognition stuff. Additionally I’ve had them burn through SD cards.

If you have an old laptop or desktop lying around that you can put Linux on that’s a great place to start. RAM will be the limiting factor with HD space a close second. My HA is using ~800MB, Vaultwarden ~50MB, and Immich 2.2GB of RAM

@jamie seen a lot of folks using a Pi for this stuff but I have had success with a mini N100 or N150 with 8-16GB memory. Honestly don't know how much Brand matters here but they occasionally go on sale for under $200 US.

Installed Home Assistant as the OS and added a few other items as Add Ons. I'm not convinced this is the best setup, maybe a regular OS and Home Assistant in a container would be as good/better?

No complaints so far though and I am a complete noob to self hosting as of a couple months ago.

Currently no storage solution so I can't comment there.

Good luck!

@jamie I use a Pi5 4GB with an nvme hat and host Immich via docker. The Pi cannot realistically do any of the Immich machine learning for facial recognition or smart search, but I have an intel "server" on the same network for tvheadend so I run the Immich ML container on there. You can run some other lightweight servers on the same Pi5. I run things like Firefox sync and a few other bit and bobs. I think it might struggle running more intensive like Nextcloud or Navidrome as well as Immich.
@jamie I'd recommend buying a refurbished PC like a Dell Optiplex or Precision. Much faster, and doesn't use much more power than a Pi.

@jamie
If you want something production grade, i advise you to seek for better hardware than a raspberry pi. You're likely to run into trouble, because hardware makes difference at some point, it's not just about the power. Still a pi is great to try things out.

Since with immich you will likely need video transcoding, I advise to get a descent cpu like i5 U series, or maybe a N100 or N150 .
Things like cheap trigkey N150 are imao a good starting point:
https://trigkey.com/products/trigkey-s5-16g-500g-5800h

TRIGKEY Key-N150 Intel Twin Lake N150

@jamie
If you are lazy like me and don't want to put much effort on maintaining things, docker + linux is the best choice.

You definitively want to learn a bit about unix systems and docker, once you have the basics you become a jedi knight.

unpopular opinion : chatGPT can be a lot helpful to learn these things, and help debugging also.

@jamie lastly If you start the incredible journey of selfhosting critical data (like your personal photos and passwords). You need to put a lot of attention to your backup strategy (ideally following the 3-2-1 rule).

I use borg for that purpose.

@emon @jamie
Totally agree with the mini PC with N100 suggestion. I personnaly got one for less than 100€, and it will be more reliable than a RPI
For the OS, I would suggest NixOS that is quite easy to use to configure services. It deserves you have a look

@jamie I started out with just a Raspberry Pi, it should be enough to host all of those. I've heard good things about https://yunohost.org/ but I can't say I've had any personal experience with them

Edit: totally forgot about Immich's ML, I've run it on a discarded laptop & Intel integrated graphics just fine. Cheaper than using a Raspberry Pi if you can get one!

YunoHost: garden your own piece of the Internet!

YunoHost is a system that installs itself on a server and allows you to install and maintain - with very little technical knowledge - digital services (apps) that you control.

@jamie I've had great luck hosting on random ewaste PCs I can either scavenge from the bin at work or find a killer deal on. Right now my services are hosted on an HP ProDesk Gen II, so an i5-4590 with 24GB of RAM (because scavenged, it's 3 mismatched 8GB sticks of memory) and a pair of 4TB hard drives plus an 800gb Intel datacenter SSD I bought used for the boot drive. I've got about 5 modded Minecraft servers, a file server and a Jellyfin server (plus some other random services that I don't use much) all running on there!

I followed this guide for the file server part: https://www.apalrd.net/posts/2023/ultimate_nas/

And if I were to do the Jellyfin container over I'd use the install script from: https://community-scripts.github.io/ProxmoxVE/scripts?id=jellyfin since it nicely handles setting up the unpriveleged container with GPU acceleration.

Also tip on containers: privileged containers have root access to the host. Many people don't realize this and just go "nah it's all in a container it's fine!" and are one compromised container away from learning otherwise...

Making Proxmox into a pretty good NAS

Continuing the series where apalrd teaches proxmox skills through meaningful applications, today we are setting up a proper fileserver on our Proxmox system using Linux Containers. I’ve chosen to use a lightweight Linux Container (LXC) for this, so we can share the host’s ZFS filesystem. To manage shares and users using a web UI, I’m installing Cockpit, as well as some additional modules from 45Drives to deal with Samba. This should provide a pretty easy to use storage interface, keep all of our storage contained in the host Proxmox system without adding another layer of filesystem or a virtual machine, and run well on lower end hardware such as the Terramaster unit I’m using.

apalrd's adventures

@jamie
my home lab setup:

  • Raspberry Pi 4: home assistant and ZigBee coordinator
  • Raspberry Pi 3: wireguard
  • Raspberry Pi 3: PiHole and NFS server (local only)
  • Terramaster NAS quad bay: Nextcloud, servarr stack (👀), Jellyfin, Jellyseer, FreshRSS, Photos
  • Raspberry Pi 3 attached to a 3D printer: Klipper and OctoPrint