Open-source homelab knowledge

Your NAS is broken.
Let's fix it.

Practical DIY guides for Synology, TrueNAS, Unraid, and bare-metal homelab NAS builds. No fluff, just solutions.

scroll
Guides
6 Platforms
100% Free
DIY No BS

What's broken?

Pick your problem.

Every guide starts with the actual error you're seeing — not a generic overview.


Step-by-step

Latest guides.

Reproducible fixes with real commands. Updated when things break (because they always do).

Loading guides…

Quick diagnostics

Commands worth knowing.

Copy-paste commands for when you need answers fast. Works on TrueNAS, Unraid, Debian-based NAS, and most Linux systems.

CPU & GPU temperatures
# Install sensors (if not present)
$ sudo apt install lm-sensors && sudo sensors-detect --auto

# Read all CPU / motherboard sensor temps
$ sensors
coretemp-isa-0000
Core 0: +38.0°C (high = +80.0°C, crit = +100.0°C)
Core 1: +40.0°C (high = +80.0°C, crit = +100.0°C)
Core 2: +74.0°C (high = +80.0°C) ⚠ getting warm

# Watch temps live, refresh every 2s
$ watch -n 2 sensors

# GPU temp — NVIDIA
$ nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader
52

# GPU temp — AMD (via rocm-smi) or Intel iGPU
$ rocm-smi --showtemp
$ cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input
45000 # divide by 1000 = 45°C
Drive temps & system health
# Drive temperatures — all at once
$ for d in /dev/sd?; do echo -n "$d: "; sudo smartctl -A $d | grep -i temp | awk '{print $10"°C"}'; done
/dev/sda: 34°C
/dev/sdb: 35°C
/dev/sdc: 51°C ⚠

# CPU load average (1m / 5m / 15m)
$ uptime
14:32:01 up 12 days, 3:17, load average: 0.42, 0.38, 0.31

# RAM usage at a glance
$ free -h
total used free available
Mem: 31Gi 8.2Gi 18Gi 22Gi

# Top 5 processes by memory
$ ps aux --sort=-%mem | head -6

# Network usage in real time
$ sudo apt install nload && nload eth0

Bonus guide

Temperature alerts via Discord or Slack webhook

Get a message in Discord or Slack when a drive or CPU goes above your threshold. No extra software — just bash and cron.

step 1 — get your webhook URL
# Discord:
Server Settings → Integrations → Webhooks → New Webhook → Copy URL
https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN

# Slack:
api.slack.com → Your Apps → Create App → Incoming Webhooks → Activate → Copy URL
https://hooks.slack.com/services/T.../B.../XXXX
step 2 — create /usr/local/bin/nas-temp-alert.sh
#!/bin/bash
# ── CONFIG ──────────────────────────────────────────────
WEBHOOK="https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN"
CPU_WARN=75 # °C threshold for CPU cores
DRIVE_WARN=48 # °C threshold for drives
HOST=$(hostname)
# ─────────────────────────────────────────────────────────

# Check CPU temp via sensors
CPU_TEMP=$(sensors 2>/dev/null | awk '/Core 0/ {gsub(/[^0-9.]/,"",$3); print int($3)}')

# Check all drive temps via SMART
ALERTS=""
for DISK in /dev/sd?; do
TEMP=$(smartctl -A "$DISK" 2>/dev/null | awk '/Temperature_Celsius/ {print $10}')
[ -z "$TEMP" ] && continue
if [ "$TEMP" -ge "$DRIVE_WARN" ]; then
ALERTS="$ALERTS\n🔥 Drive $DISK: ${TEMP}°C (threshold: ${DRIVE_WARN}°C)"
fi
done

# Add CPU alert if over threshold
if [ -n "$CPU_TEMP" ] && [ "$CPU_TEMP" -ge "$CPU_WARN" ]; then
ALERTS="$ALERTS\n🌡️ CPU: ${CPU_TEMP}°C (threshold: ${CPU_WARN}°C)"
fi

# Send to Discord/Slack only if there's something to report
if [ -n "$ALERTS" ]; then
MESSAGE="⚠️ **$HOST** — temperature alert$(printf "$ALERTS")"

# Discord
curl -s -X POST "$WEBHOOK" \
-H "Content-Type: application/json" \
-d "{"content": "$MESSAGE"}"

# Slack (swap the curl above for this instead)
# curl -s -X POST "$WEBHOOK" -H "Content-Type: application/json" \
# -d "{"text": "$MESSAGE"}"
fi
step 3 — make it executable & schedule with cron
# Make the script executable
$ sudo chmod +x /usr/local/bin/nas-temp-alert.sh

# Test it manually first
$ sudo /usr/local/bin/nas-temp-alert.sh

# Add to cron — run every 10 minutes
$ sudo crontab -e
*/10 * * * * /usr/local/bin/nas-temp-alert.sh

# Verify cron entry was saved
$ sudo crontab -l
*/10 * * * * /usr/local/bin/nas-temp-alert.sh

# You'll now get a Discord/Slack message like this when temps spike:
⚠️ nas-server — temperature alert
🔥 Drive /dev/sdc: 51°C (threshold: 48°C)
🌡️ CPU: 78°C (threshold: 75°C)
📚 Manage guides
Loading…