折騰HomeLab兩年多了,從最開始的樹莓派到現在的小主機,分享一下我的配置。

什麼是HomeLab

簡單説就是在家裏搭一套服務器環境,用來:

  • 學習各種技術(Docker、K8s、網絡)
  • 跑一些自用服務(NAS、下載機、智能家居)
  • 代替各種雲服務(省錢+隱私)

我的設備清單

主力機:小主機

項目

配置

大概價格

型號

零刻SER5

1200-1500元(二手)

CPU

AMD R5 5560U

-

內存

16G DDR4

150-250元(自己加的)

硬盤

512G NVMe

自帶

功耗

待機10W,滿載35W

-

選這個的原因:

  • 6核12線程,性能夠用
  • 功耗低,7x24小時開着電費也不高
  • 體積小,放桌角不佔地方
  • 有兩個2.5G網口

存儲:外掛硬盤

項目

配置

大概價格

硬盤盒

奧睿科雙盤位

150-200元

硬盤1

希捷酷鷹4T

300-450元(二手)

硬盤2

西數紫盤4T

300-450元(二手)

為啥不買NAS?

  • 我的需求用Docker掛載外置硬盤就夠了
  • 以後想升級再買

網絡設備

項目

配置

大概價格

路由器

小米AX3000

150-250元

交換機

TP-LINK 5口千兆

50-80元

夠用就行,沒折騰軟路由。

其他

項目

用途

大概價格

UPS

防止突然斷電

80-150元(二手)

USB風扇

給硬盤散熱

15-30元

總花費

小主機: 1399
內存:   199
硬盤盒: 169
硬盤x2: 778
路由器: 199
交換機: 59
UPS:    89
風扇:   19
----------

合計:   約2500-3500元

看個人選擇,豐儉由人。

軟件配置

系統

裝的Ubuntu Server 22.04,穩定省心。

# 基礎配置
timedatectl set-timezone Asia/Shanghai
apt update && apt upgrade -y
apt install -y docker.io docker-compose

跑的服務

用Docker Compose管理所有服務:

# docker-compose.yml
version: '3.8'

services:
  # 反向代理
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
    volumes:
      - ./nginx/data:/data
      - ./nginx/letsencrypt:/etc/letsencrypt
    restart: always

  # 文件管理
  filebrowser:
    image: filebrowser/filebrowser
    ports:
      - "8080:80"
    volumes:
      - /mnt/data:/srv
      - ./filebrowser/database.db:/database.db
    restart: always

  # 下載器
  qbittorrent:
    image: linuxserver/qbittorrent
    ports:
      - "8081:8081"
      - "6881:6881"
    volumes:
      - ./qbittorrent/config:/config
      - /mnt/data/downloads:/downloads
    environment:
      - PUID=1000
      - PGID=1000
    restart: always

  # 影音服務
  jellyfin:
    image: jellyfin/jellyfin
    ports:
      - "8096:8096"
    volumes:
      - ./jellyfin/config:/config
      - /mnt/data/media:/media
    devices:
      - /dev/dri:/dev/dri  # 硬件解碼
    restart: always

  # 相冊
  immich-server:
    image: ghcr.io/immich-app/immich-server:release
    # ... 配置省略

  # 智能家居
  homeassistant:
    image: homeassistant/home-assistant
    network_mode: host
    volumes:
      - ./homeassistant:/config
    restart: always

  # 密碼管理
  vaultwarden:
    image: vaultwarden/server
    ports:
      - "8082:80"
    volumes:
      - ./vaultwarden:/data
    restart: always

  # 監控
  uptime-kuma:
    image: louislam/uptime-kuma
    ports:
      - "3001:3001"
    volumes:
      - ./uptime-kuma:/app/data
    restart: always

服務清單

服務

端口

用途

Nginx Proxy Manager

81

反向代理

FileBrowser

8080

文件管理

qBittorrent

8081

下載

Jellyfin

8096

影音播放

Immich

2283

照片備份

Home Assistant

8123

智能家居

Vaultwarden

8082

密碼管理

Uptime Kuma

3001

服務監控

遠程訪問

家裏沒公網IP,外網訪問用的星空組網,把小主機、筆記本、手機組到一個虛擬局域網裏,P2P直連速度快。

現在不管在哪:

訪問文件: http://10.26.0.100:8080
看電影: http://10.26.0.100:8096
看照片: http://10.26.0.100:2283

延遲低,速度快,比內網穿透體驗好。

網絡架構

┌─────────────┐
                    │   互聯網     │
                    └──────┬──────┘
                           │
                    ┌──────┴──────┐
                    │   路由器     │
                    │ 192.168.1.1 │
                    └──────┬──────┘
                           │
              ┌────────────┴────────────┐
              │                         │
       ┌──────┴──────┐           ┌──────┴──────┐
       │  小主機      │           │  交換機     │
       │ 192.168.1.100│           │             │
       │ (10.26.0.100)│           └──────┬──────┘
       └──────┬──────┘                   │
              │                    ┌─────┴─────┐
       ┌──────┴──────┐            │  其他設備  │
       │  硬盤盒      │            │           │
       │  USB3.0     │            └───────────┘
       └─────────────┘

日常維護

自動更新Docker鏡像

# 用Watchtower自動更新
docker run -d \
  --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --cleanup \
  --schedule "0 0 4 * * *"  # 每天凌晨4點

備份

#!/bin/bash
# backup.sh

BACKUP_DIR="/mnt/data/backup"
DATE=$(date +%Y%m%d)

# 備份Docker配置
tar -czf $BACKUP_DIR/docker_$DATE.tar.gz /home/lab/docker/

# 保留7天
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

監控

Uptime Kuma監控所有服務,掛了釘釘通知我。

省了多少錢

服務

雲服務

自建成本

NAS存儲

雲盤會員

0

影音服務

視頻會員

0

密碼管理

付費訂閲

0

相冊

雲存儲

0

每年合計

幾百到上千

電費

一年省800多,兩年多就回本了。

折騰心得

值得

  • 學到很多東西(Docker、網絡、Linux)
  • 數據完全自己掌控
  • 可以隨便折騰,不怕玩壞

  • 功耗:一開始用台式機當服務器,一個月電費50+,後來換成小主機好多了
  • 噪音:機械硬盤吵,放客廳受不了,後來放到儲物間
  • 散熱:夏天硬盤温度50+,加了個USB風扇才降下來
  • 斷電:有次停電,硬盤直接掛了一塊,後來買了UPS

建議

  1. 從簡單開始 - 先用樹莓派或舊電腦練手
  2. 功耗要考慮 - 7x24小時跑,低功耗很重要
  3. 數據要備份 - 重要數據至少兩份
  4. 遠程要搞定 - 不然出門就抓瞎

下一步計劃

  • 再加一塊硬盤做RAID1
  • 搞個軟路由玩玩
  • 試試K3s
  • 上太陽能供電(開玩笑的)

有HomeLab相關的問題歡迎評論區交流~