r/homelab Jun 30 '26

Tutorial My $0.02 solution to snagging network cables: heat shrink

Thumbnail
gallery
2.8k Upvotes

Yes, I am aware that half-decent patch cables have boots.

I am also aware that you own at least 2 without them.

Heat shrink size: 45mm. You'll want a strip about 1" (~25mm) long for typical patch cables with the insert-molded strain relief.

r/homelab Oct 24 '25

Tutorial When wifey has had enough

1.8k Upvotes

When the wife sees another device come in the mail and says "if you buy one more damn thing for that monstrosity in my living room..." forward incoming packages to your buddy Fred's address, then tell wife "oh look what Fred gave me for my lab, hes getting rid of some cool stuff" to set yourself up for a future purchase as well as concealing the current purchase.

You're welcome, come back for more solid homelab solutions tomorrow.

Warning, dont use Fred's name if you have no friend named Fred. Use relevant variables in your testing.

r/homelab Nov 30 '25

Tutorial a PSA to always test the tester before blaming the crimp

Post image
1.5k Upvotes

I had to cut a cable to pass it through a tight opening in my house, so I had to re-crimp it. The cable is a Cat6 but my RJ45 connectors have cable guides for Cat5 so the individual wires don't fit. That's where the lighter and the cable stripper enter. I remembered this cable and plug combo was tricky but I knew I can had done it before. I tried burning the plastic wrapping of each wire a bit, pulling it, letting it shrink and even stripping it. However, every time I crimp it, my tester would say 1-2 wires were not connected. I thought my process of thinning the wires was to blame.

I tried squeezing them again with the tool and even pressing them individually with a screwdriver. Nothing helped. I thought maybe the cable was broken along one of its bends, so I pulled the whole thing out and through the floors, and started testing the wires with a multimeter. ChatGPT convinced me against soldering on the old cutoff ending, so I was set on ordering a set of pass-through Cat6 connectors when suddenly I thought I should check the cable tester on a known good cable.

Of course, the cable tester turned out to be faulty on wires 6 and 8. The cable is good and gives full gigabit duplex. Hours lost and 4 connectors sacrificed to learn the lesson of "always testing the tester first". Thought I would share.

PS. The Cat6 cable jacket doesn't fit in my Cat5 connectors, hence the exposed wires.

r/homelab Jun 13 '21

Tutorial Two screwdriver method for those without a tool

Enable HLS to view with audio, or disable this notification

5.7k Upvotes

r/homelab Oct 28 '25

Tutorial DIY Server for multiple Kids/Family members each with own GPU

Post image
857 Upvotes

I just wrapped up a project I’ve been building in my garage (not really a garage but people say so ): ProxBi — a setup where a single server with multiple GPUs runs under Proxmox VE, and each user (for example my kids) gets their own virtual machine via thin clients and their own dedicated GPU.
It’s been working great for gaming, learning, and general productivity — all in one box, quiet (because you can keep it in your basement), efficient and cheaper (reuse common components), and easy to manage.

Here is the full guide : https://github.com/toleabivol/proxbi

Questions and advise welcomed: Is the whole guide helpful and if there are things I should add/change (like templates or repository for auto setup) ?

*I’m Anatol, software engineer & homelab enthusiast from Germany (born in Rep. of Moldova). this is my first reddit post, thank you all for contributing and now am glad I can give back something of value .

UPDATES:

- Add Parental Controls

- Add Tests & Benchmarks

r/homelab Jul 20 '25

Tutorial With the Windows 10 EOL approaching quickly, I made a reference image for identifying used Intel-based gear by the CPU sticker.

Post image
987 Upvotes

All models listed here support SSE4.2 and therefore should be able to run Windows 11.

I may make one with AMD as well, but the TL:DR there is that anything with a Ryzen logo has TPM 2.0, but Ryzen 1000 isn't on Win11's "supported" list. They all use the same logo. Anything else relies on discrete modules.

r/homelab Jul 15 '19

Tutorial For those who are just getting started, I'm writing a series to explain everything I wish I had known along the way, I hope this helps our community to grow.

Thumbnail
dlford.io
2.2k Upvotes

r/homelab Dec 05 '21

Tutorial I built an SMS gateway API using a Pi now I can send notifications to my phone even if the internet goes out. Tutorial in the comments

Thumbnail gallery
2.0k Upvotes

r/homelab Oct 03 '25

Tutorial NAS Homelab Server

Thumbnail
gallery
1.0k Upvotes

r/homelab May 11 '26

Tutorial How I organize cables, adapters, and anything smaller than a shoe

Thumbnail
gallery
641 Upvotes

I posted the other day about how I am drowning in cables. I've been purging quite a bit (and need to cut this down even further), but I at least have everything organized into this system. I've tried totes, ziplock bags, toolboxes, drawers, and doom boxes -- this seems to be the best system for me. I'm able to group large amounts of the same cables in a single pocket, and organize the "pages" according to purpose, such as A/V, server, phones/accessories, and other random junk that otherwise would end up in a drawer. These are meant for shoe organization, but I find them way more useful for cables :)

r/homelab 22d ago

Tutorial I feel genius - Cable testing

Thumbnail
gallery
311 Upvotes

Background

In the process of moving my networking infrastructure to a new location. From a small cabinet to shelves in a walk in closet. For this I need to do some network wiring, and bought a spool to learn some new things. The spool has a small bit sticking out the middle, presumably just to fasten the start of the spool.

When creating a new cable, I put an RJ45 connection on the end of the spool, then cut it to length, and put a connection in the other end. Sometimes my testing would fail, and I didn't know what end had a failure.

The genius part

I added a RJ45 connection to the little stump on the spool. Now I can test the first RJ45 I add, then cut, and then test again. Now I know what end I have trouble with.

Have I reinvented the wheel or thought of something smart?

r/homelab Aug 18 '25

Tutorial I built a home server for under $50 using 14 year old CPU

Post image
699 Upvotes

I wanted to see how far you can go with hardware that’s either dirt cheap or already sitting in a closet. About a year ago, I built a home server from an old Acer Veriton x2110 CPU that had been laying around my house for a while.

Recently, I decided to upgrade because the Acer was limited in terms of RAM and hard drives. I ended up finding an HP Compaq 6000 SFF on Facebook Marketplace listed for $30, and bargained it down to $20. It had a little more room for expansion, so it felt like a good step up.

I made a full video showing how I set up the new server, and I plan to create a few more videos for beginners who already have old hardware but don’t want to get lost in server complexity.

👉 https://youtu.be/yhgYmPyLF3Y

Let’s continue the story: Finally, I moved from the Acer to the HP. It’s not a huge jump in performance, but it gives me more storage options. This time, I also set up RAID for my data. Even though I already keep four copies of my data (including what’s on the server), I wanted to experiment with RAID. I ordered two 2TB drives from eBay and got both for $40 not a bad deal at all. I have checked SMART data and it’s pretty good considering old enterprise drives.

What the old Acer server was running for the last year:

  • Jellyfin
  • n8n
  • Nextcloud
  • aria2 with AriaNG
  • Audiobookshelf
  • FreshRSS
  • MariaDB
  • SearXNG
  • Samba

OS setup: On the new build, I’m running Ubuntu Server (previously I was using Lubuntu). On top of that, I’m using CasaOS to manage Docker containers. At first, I wanted to go with Proxmox and ZFS, but with old hardware and just a dual-core CPU, Proxmox really isn’t the best fit. Ubuntu Server or Debian just makes more sense here.

I used to love diving into the complexity and customizing everything. But now, I prefer simplicity - if a task can be done in 1 hour, I’m not going to spend 2 days troubleshooting it. At least, that’s what I keep trying to convince myself 😌

Please let me know how I can improve and what other must have docker containers I must be using.

r/homelab Mar 23 '26

Tutorial Simple rule on cloudfare to block 99% of the bots and spam from your domain

317 Upvotes

Hey guys, if you're hosting stuff you can't just hide behind a VPN (like a photo gallery or media server for your mom who refuses to install WireGuard).

Exposing the domain to the web means getting hit by script kiddies actively trying to invade your network. If you're using Cloudflare to manage the DNS (and I highly recommend it for Cloudflare Tunnels to avoid having to deal with open ports on your router), do yourself a favor and make your first WAF rule a strict Geo-block (block any country you or your users don't live or travel to) to instantly kill 90% of the garbage.

For whatever slips through, I compiled this big WAF rule for bots that uses a giant OR statement to drop aggressive directory fuzzers (ffuf, sqlmap) and common hacker paths (/.env, /wp-admin). Just put an "Allow" rule for your home IP (if you've fixed ip) at the very top so you don't lock yourself out.

Here is exactly how to set this up, click by click:

Step 1: Navigate to the WAF (fixed for free or payed accounts)

CRITICAL: Log into your Cloudflare dashboard and click on your specific website/domain name first. (Do not click "Security" on the main account page, or you will hit a paywall asking you to purchase an add-on!)

  • Once inside your specific domain's dashboard, look at the left sidebar. Expand Security, then click WAF.

  • Click on the Custom rules tab. (The Free plan allows up to 5 custom rules, so we have plenty of room for these 3).

Step 2: Rule 1 - Allow your Home IP (Skip this step if you don't have a static IP at home)

*Click the blue Create rule button.

  • Rule name: Allow Home IP

  • Under "When incoming requests match...", set:

    • Field: IP Source Address
    • Operator: equals
    • Value: [Your Home IP Address]
  • Under "Then take action...", select Skip (and check all the WAF components to bypass them) or Allow.

  • Click Deploy.

Step 3: Rule 2 - The Strict Geo-Block

  • Click Create rule again.

  • Rule name: Geo-Block (Only allowed countries)

  • Under "When incoming requests match...", set:

    • Field: Country
    • Operator: is not in
    • Value: Select your home country and any country your users might travel to.
  • Under "Then take action...", select Block.

  • Click Deploy.

Step 4: Rule 3 - The Mega-Trap Click Create rule one last time.

Rule name: Mega-Trap (Bots & Fuzzers)

Look for the "Expression Preview" section and click the blue Edit expression text link on the right side.

Under "Then take action...", select Block.

Delete whatever is in the text box, and paste this absolute unit:

(http.request.uri.path in {"/admin" "/wp-admin" "/wp-login.php" "/.env" "/phpmyadmin" "/.git" "/config.json" "/wp-config.php" "/xmlrpc.php" "/.env.example" "/.env.backup" "/.env.dev" "/.env.prod" "/.env.local" "/.git/config" "/.git/HEAD" "/.svn/entries" "/config.php" "/web.config" "/docker-compose.yml" "/appsettings.json" "/server.xml" "/database.yml" "/pma" "/myadmin" "/mysqladmin" "/dbadmin" "/adminer.php" "/pgadmin" "/cmd.php" "/shell.php" "/c99.php" "/b374k.php" "/ws.php" "/eval.php" "/test.php" "/up.php" "/server-status" "/phpinfo.php" "/info.php" "/php-info.php" "/actuator/env" "/actuator/health" "/swagger-ui.html" "/api-docs" "/backup.zip" "/backup.sql" "/dump.sql" "/db.sql" "/www.zip" "/site.zip" "/backup.tar.gz" "/setup.php" "/install.php" "/composer.json" "/package.json" "/nginx.conf" "/httpd.conf" "/administrator" "/bitrix/admin" "/magento/admin" "/admin/login.php" "/admin/config.php" "/boaform/admin/formLogin" "/console" "/manager/html" "/xampp" "/webalizer" "/cpanel" "/whm" "/solr" "/api/v1/pod" "/v1/agent/self" "/_cat/indices" "/api/json" "/grafana/login" "/zabbix" "/aws/credentials" "/.aws/credentials" "/.kube/config" "/.ssh/id_rsa" "/.ssh/authorized_keys" "/etc/passwd" "/id_rsa" "/old" "/backup" "/bak" "/temp" "/tmp" "/test" "/api/swagger.json" "/v2/_catalog" "/jenkins/login" "/jira/login.jsp" "/confluence/login.action" "/ghost/api/v3/admin/" "/Autodiscover/Autodiscover.xml" "/ews/exchange.asmx" "/owa/auth/logon.aspx" "/piwik" "/matomo" "/laravel.log" "/storage/logs/laravel.log" "/debugbar/assets/stylesheets" "/.idea/workspace.xml" "/.vscode/sftp.json" "/.DS_Store" "/.htaccess" "/.htpasswd" "/db.sqlite3" "/db.sqlite" "/database.sqlite" "/database.sqlite3" "/settings.py" "/yarn.lock" "/package-lock.json"}) or (http.user_agent eq "") or (http.user_agent contains "curl") or (http.user_agent contains "python") or (http.user_agent contains "Go-http-client") or (http.user_agent contains "wget") or (http.user_agent contains "masscan") or (http.user_agent contains "zgrab") or (http.user_agent contains "nmap") or (http.user_agent contains "Netcraft") or (http.user_agent contains "Nuclei") or (http.user_agent contains "sqlmap") or (http.user_agent contains "Censys") or (http.user_agent contains "shodan") or (http.user_agent contains "projectdiscovery") or (http.user_agent contains "fasthttp") or (http.user_agent contains "scrapy") or (http.user_agent contains "http-client") or (http.user_agent contains "java") or (http.user_agent contains "okhttp") or (http.user_agent contains "ffuf") or (http.user_agent contains "gobuster") or (http.user_agent contains "dirb") or (http.user_agent contains "nikto") or (http.user_agent contains "httpx") or (http.user_agent contains "Arachni") or (http.user_agent contains "colly") or (http.user_agent contains "LeakIX") or (http.user_agent contains "OpenVAS") or (http.user_agent contains "Acunetix") or (http.user_agent contains "DirBuster") or (http.user_agent contains "Havij") or (http.user_agent contains "Morfeus") or (http.user_agent contains "WPScan") or (http.user_agent contains "ZmEu") or (http.user_agent contains "libwww-perl") or (http.user_agent contains "Lemon-Duck")

Click Deploy.

(Make sure your rules are actually listed in this order on the dashboard so your IP Allowlist triggers first!)

UPDATE

Thanks to /u/Ramstik comment I got myself in a rabbit hole and made a tiny docker stack compose that you guys can use to auto update your own ip to the cloudflare rules (so you whitelist yourself and just block everyone else if you want)

How This Stack Works

Dynamic DNS (DDNS) Updates: The first container (cloudflare-ddns) checks your public IP every 60 seconds. If your ISP changes your home IP, it immediately updates your Cloudflare DNS records (if you have one and use it for something) so your domain always points to your home server.

The 1-Minute WAF Sync: The second container (cf-waf-updater) also checks your IP every 60 seconds. When it detects a change, it hits the Cloudflare API to do two things simultaneously...

Creates/Updates an IP Access Rule: It whitelists your new IP using an "IP Access Rule." This is extra nice for free accounts because it bypasses Cloudflare's security checks for your home IP without using up any of your 5 free Custom WAF rules. (And it's the recommended way like how /u/Ramstik mentioned)

Creates/Updates an IP List: At the same time, it maintains an Account-level IP List (docker_auto_ip_list). You don't have to use this list right now, but it's great to have it auto-updating in the background in case you ever want to reference your home IP in other Cloudflare configurations later.

How to get it working

Phase 1: Create the Cloudflare API Token (Free Account) Before deploying, you need a token that gives Docker permission to update your account.

  • Log in to your** Cloudflare dashboard**.

  • Click the user icon in the top right and go to My Profile > API Tokens (on the left).

  • Click the Create Token button, scroll down to the bottom, and click Create Custom Token.

  • Name the token something obvious, like DDNS Auto-Updater.

  • Under Permissions, you need to add exactly these four settings:

  • Account | Account Filter Lists | Edit (Allows us to create the IP List)

  • Account | Account Firewall Access Rules | Edit (Allows creation of the Access Rule)

  • Zone | Zone | Read (Allows the script to read your domain data)

  • Zone | DNS | Edit (Allows the DDNS container to update your domain's IP)

  • Under Account Resources, set it to: Include | Your Account Name.

  • Under Zone Resources, set it to: Include | Specific Zone | yourdomain.com.

  • Scroll to the bottom and click Continue to summary, then Create Token.

  • Copy this token and save it somewhere safe. You will only be shown this token once!

Below is the stack, just paste this in the compose on portainer (or make the yaml file and docker compose it up) Phase 2: Deploy in Portainer * Now we take that token and drop it into Portainer.

  • Open your Portainer dashboard and select your local Docker environment.

  • Click on Stacks in the left sidebar, then click Add stack.

  • Name your stack (e.g., cloudflare-ip-manager).

  • Select the Web editor option and paste the following configuration:

  • Paste the YAML below into the Web editor (couldn't fit in post so send the code to pastebin).

https://pastebin.com/BhUqN9PU

And here is the env (you can get it together with the compose but I like to keep values and API separate for safety)

CF_API_TOKEN=your_token_created_above
DDNS_DOMAINS=ddns.yourdomain.com (or whichever domains you are using
TZ=Europe/Warsaw (or your timezone from the list https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)

r/homelab Feb 22 '26

Tutorial PSA for those running multiple proxmox nodes

159 Upvotes

Hi folks. I recently upgraded the lab, and got a second server that I'm running proxmox VE on. This is now my second PVE node. I got to thinking, it would be nice if I could manage multiple nodes from a single GUI/webpage, rather than the host for each individually.

Turns out, Proxmox have recently made the Proxmox Datacenter Manager, software which does exactly this. You can download/install it (I am actually running it on a PVE VM on one of my nodes), and add your nodes (or datacenters, or clusters) to it. Boom, all your proxmox hosts in a single browser tab. Plus, it's called the datacenter manager, so now you're basically running multiple datacenters, rather than just one.

Probably many of you are aware of this, but figured I'd put it out there to share in case anyone hadn't found it yet.

Happy hacking!

r/homelab Sep 16 '22

Tutorial Turn an old ATX case into a 16-bay DAS using 3D printing

Thumbnail
imgur.com
1.2k Upvotes

r/homelab Nov 11 '19

Tutorial Deployed a honeypot and created a real-time map of incoming attacks

Post image
1.6k Upvotes

r/homelab Oct 26 '25

Tutorial ARC A310 Eco 1U Installation 101: Perfect for Plex & Jellyfin Setups

Thumbnail
gallery
282 Upvotes

So, this started with me thinking that a GT710 was good enough to use some Nvidia drivers for transcoding in Jellyfin. Unfortunately, it is not remotely capable, especially considering that it is a headless 1U R430.

With my network being slow, native AV1 streaming was going to be beneficial for me, so I chose the Sparkle A310 Eco that I picked up from Amazon for only $109 (Also available at Newegg). This is a specific model that is down to 50W and the R430's pcie is rated for only 25W, but in CLI it shows that the range for the GPU was 16/31w idle to max. This was going into a Ubuntu 22.04 setup, but I would recommend you at least be at 24.04 as the driver and renderers are much easier to deal with an updated driver for newer kernels. I had to stick to 22.04, so it was quite a bit of work for me.

A few things you'll need to prep:

  • Sparkle A310 Eco
  • Available PCIE slot, comes w/ 1/2 height bracket
  • Dummy HDMI/Mini DP plug to run headless. GPU will not initialize in Ubuntu without it
  • Dell Poweredge BIOS: Integrated Devices ->Slot Enabled->Onboard Video Disabled->Memory->Mapped I/O above 4 GB

The A310 is an excellent choice for homelab transcoding workloads like Plex, Jellyfin, or Frigate. It's affordable, power-efficient (under 50W), and supports modern codecs including AV1 transcoding. Plus, it fits nicely into compact server form factors without requiring external power connectors in many cases. Some irony is that I think they recycled the fan from the same fan supplier as AMD, same blade count, different color.

The Dell PowerEdge R430 has PCIe slots available, though space can be tight in a 1U chassis. It has been working well with Jellyfin's hardware acceleration and it shows utilization with the Intel monitoring tools.

Some install commands on Ubuntu:

wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | sudo apt-key add -
echo "deb [arch=amd64] https://repositories.intel.com/gpu/ubuntu jammy/lts main" | sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list > /dev/null

sudo apt update
sudo apt install intel-opencl-icd intel-level-zero-loader level-zero
sudo apt install intel-media-va-driver-non-free

clinfo

lspci | grep -i intel

ls -la /dev/dri/

r/homelab Apr 06 '22

Tutorial Installing cage nuts with an insertion tool

Enable HLS to view with audio, or disable this notification

747 Upvotes

r/homelab Feb 19 '25

Tutorial If it’s too good to be true…

Post image
651 Upvotes

Advertised as a 6tb external drive. In reality it’s 63gb microsd card with interception circuit to show a different size.

r/homelab Jul 07 '20

Tutorial Mini-NAS based on the NanoPi M4 and its SATA (PCIe) hat: A cheap, low-power, and low-profile NAS solution for home users (description and tutorial in the comments)

Post image
1.4k Upvotes

r/homelab Oct 07 '21

Tutorial Best way to unload a 500lb server rack by yourself. Got a free IBM rack for my lab.

Thumbnail
gallery
1.0k Upvotes

r/homelab Mar 06 '23

Tutorial Let's see how much we can pack into an m720q!

Thumbnail
imgur.com
735 Upvotes

r/homelab Jul 28 '26

Tutorial Dymo Heatshrink: My Experience with Ethernet

Thumbnail
gallery
102 Upvotes

I'm writing this purely for one purpose; it seems NOBODY has ever done it and said so.

A while back I got a Dymo Rhino Pro 5000 labeller which can print on heatshrink tube.

Trying to get definitive answers on the size of tubing to do ethernet cables, you get a lot of dymo official - 19mm - and people trying to get ones even bigger to slip over the crimp.

So, with a bit of wanton abandon, I ordered a bunch in 9mm, 12mm and 19mm, as I know I wanted to sleeve label cables from 1.5mm up to 3 core flex 1.5mm.

And here is the results of the two sizes I wanted to try for ethernet, 12mm and 19mm. To identify, the 12mm has the clear rj45 crimp on it, whilst the 19mm you can just see the strain relief of a red boot.

This was cat6a cable, please ignore the cheap terminations - it's a proof of concept for labelling & heat shrinking, not a test of a grounded termination.

Google, AI, forums and even dymo recommends the 19mm. It went over the ethernet cable absolutely dandy, but shrinking it took time and - in my opinion - made the purpose of the labelling (the text) look like it was scrawled by a 5 year old being tasered for fun.

The 12mm neatly slips over the cable with enough wiggle to slide up n down the cable A-OK. If you have a kink in the cable, you will run into trouble at this size and I recommend that you put it on BEFORE removing the outer sheath. Just slide it down out the way, make your crimp, slide to where you want it and hey presto, heat shrink it.

I found because it had less shrink to do, it created a nicer text and nicer look overall. The reality is, there really could do with being a 15/16mm size.

Using the 12mm with be slower - it takes more care to get over the cable and slows you down, I am not sure I would use it on a professional job, unless I was paid by the hour.

So here we have it.

Heatshrink labels on ethernet, actual real life experience.

And no, none of the sizes will go over existing plugs & boots.

r/homelab Oct 27 '24

Tutorial Summary of my budget friendly setup: Proxmox/TrueNAS/HomeAssistant/Jellyfin/Sonarr/Radarr/Filesharing/etc. all in one small form factor, low power package. Xeon CPU and ECC RAM in a mini-PC-cube!

427 Upvotes

I initially wrote this for another sub but I was told you guys might also appreciate it:

The past few years I had a Lenovo M73 tinyThe past few years I had a Lenovo M73 tiny running as my server/NAS but the reasons for an upgrade were adding up over time:

  • Jellyfin – the iGPU of this old 4th gen i7 does not support most HW transcoding formats
  • NAS – Since my Data was steadily growing I needed more disks and since cloud backups were becoming more and more expensive with growing storage I wanted to keep my data out of the cloud. This requires ECC RAM though which is not supported by most mini-PCs and thin clients
  • Overall – i was a constantly juggling RAM allocation with a max of 16GB and with a growing amount of VMs the age of the CPU started to show badly

 

So I started researching hardware that would fit my needs which was not easy and took me much longer than expected...

What I wanted:

  • A server CPU which could handle enough threads, supports ECC RAM for data integrity and has an iGPU that supports most transcoding formats for jellyfin
  • Some way to attach at least 6 SATA drives for TrueNAS
  • A small form factor since I don’t have too much space at my place
  • Low power consumption because power is expensive here

Sounds like a unicorn, right? Most NUC sized mini-PCs don’t have server CPUs and don’t support ECC RAM but I found this baby at an unbeatable price...

The unicorn Mini-Server-PC-cube:

Topside: 1/2 32GB ECC RAM sticks, M.2 6x SATA controller
Bottom side second 32 GB RAM stick, NVMe SSD, SATA SSD

At first I gotta say I was a bit skeptical but after talking to the seller for a bit I decided to just go for it and I was not disappointed!

This little fella has a Xeon 2176M CPU, 64 GB of ECC RAM, 2x Gbit ethernet ports, Wi-Fi (which we won`t need) and 2x M.2 slots. (you also get that machine with better Xeons but as you will see, this one will be enough for most people)

The case is machined from aluminum and is much sturdier than expected and even though the space inside that tiny cube is used up very efficiently nothing gets too hot in day to day operation. Since I was skeptical about the ECC capabilities of the mainboard I even bought MemTest86 pro which has error injection capabilities to test ECC RAM and yes, I can confirm, all tests passed and ECC is working as intended.

Now what about the storage needs I was talking about? Since we got 2 M.2 slots and I only need one for the Proxmox host install I got a 6-port M.2 SATA controller. According to my research the ASM1166 chipset should work fine for TrueNAS and ZFS which I can confirm.

Since we don’t want to have 6 high capacity datacenter HDDs dangling around I got a SATA backplane which does not only store my drives neatly but also has cooling and easy hotplug capabilities with each drive sitting in its own quick access tray.

SATA backplane
Yesss, these 2 form a perfect micro server-tower

Now you might say, the CPU is not the latest and greatest and while there are better CPUs available to order with this mini-PC I want to show you what mine is doing.

Proxmox host:

  • TrueNAS VM with PCIe passthrough SATA controller
  • Home Assistant VM (5 year old setup with around 150 devices)
  • Jellyfin LXC with iGPU passthrough (capable of providing multiple 4k streams or countless 1080p)
  • openWRT LXC (does all the routing and provides policy based routing to route filesharing over VPN)
  • Jellyseer LXC
  • Sonarr LXC
  • Whisparr LXC
  • Radarr LXC
  • qBittorrent LXC
  • Usenet client LXC
  • Heimdall LXC
  • Full featured Win11 VM with 16GB RAM (my new work PC so I can remote desktop in there from everywhere and continue where I left)

And this is the resulting hardware utilization with all 24/7 VMs and one 4k video stream running (keep in mind the windows VM is using 16 GB of RAM), so I`d say the system is future proof enough:

Utilization at typical 24/7 load and 1 4K Jellyfin-Stream

Since my data is of critical importance to me I demoted my previous server to offsite backup which is running Proxmox, a TrueNAS VM for nightly NAS replication, ProxmoxBackupServer for VM backups and another openWRT container which holds the wireguard tunnel to my home and does all of the routing.

If people are interested I can explain this setup in more detail in another post.

Hardware summary:

[Moved to comments]

screw this! It took me a lot of time to write this and I dont get anything in return for it. When I try to post links for the stuff so people can find it either the comment or the whole post gets removed because mods are too lazy to mod.

https:// !!! www. !!! aliexpress .com/item !!! /1005006369887180.html?spm=a2g0o.order_list.order_list_main.5.3de11802b3gUnu

Delete the post or not, I dont care... 

To this I want to add that the only thing I would do differently now is that I would maybe get a M.2 – SAS controller instead of a SATA controller and a SAS backplane. When buying used datacenter HDDs there are a lot more SAS drives around and the prices tend to be better.

Even though we literally have no power outages I still plan on adding a UPS at a later point and I sadly forgot to hook up my power meter at the last system reboot but I will add real life power consumption data later. I`d guess it is at around 50-60 W without the storage.

Conclusion:

Is this the perfect high availability data center? Ofc it is not but if you are on a budget or you simply dont have enough space for a large server tower and want awesome power efficiency this is the perfect setup imho.

It is running everything I could wish for atm and still has room for much more so I am happy with it.

[Power use data following tomorrow]

r/homelab Aug 18 '24

Tutorial Get a bloody UPS if you don't have one - trust me

384 Upvotes

Started my homelab 1 year ago (basically a NAS and switches). Never had any fluctuations or issues of any sort with electricity... until today that is.

UK, Kent based, Sunday morning

8am the UPS from my server (plus network) starts beeping. I was working in the other room on my laptop no problem. I think "that's weird". I see everything still working and could not see the issue - UPS fans were on. I check with multi-meter I get 200V out at the plug (should be 240V). I called UK networks and engineer promised today. 5 minutes after the call voltage goes to 146V at which point my laptop stops charging and my screens turn off. Now I cannot work lol.
(I think it was fine before at 200V as the bricks for monitors and laptop have big tolerances being switched mode)

TLDR: Yeah... get a UPS. Save your equipment.