Building a home server with a mini PC

Building a home server with a mini PC

使用迷你主机搭建家庭服务器

Having a server at home opens up a huge range of possibilities. I’d been thinking about setting one up for a while, and when I finally got started, I realised that half the process was simply deciding what to buy and what to install. So what is a home server actually good for? There are obvious advantages like cutting SaaS costs or gaining privacy, but there’s one that matters more to me than all the others: learning. In this post I’ll walk through the process, the options I considered and why I ended up building my server around a Beelink S12 Pro running Proxmox VE.

在家中拥有一台服务器可以开启无限可能。我考虑搭建服务器已经有一段时间了,当真正开始动手时,我意识到整个过程的一半时间都花在了决定买什么和装什么上。那么,家庭服务器到底有什么用呢?除了削减 SaaS 成本或提升隐私保护等显而易见的优势外,对我而言最重要的一点是:学习。在这篇文章中,我将梳理整个过程、我考虑过的方案,以及为什么我最终选择使用运行 Proxmox VE 的零刻(Beelink)S12 Pro 来构建我的服务器。

Why a mini PC?

为什么选择迷你主机?

The first decision is form factor. The most common options are:

  • An old PC or laptop from the cupboard. It works, but it’s usually noisy, consumes a lot of power and takes up too much space.
  • A Raspberry Pi. Small and incredibly power-efficient, but limited in RAM and processing power for running several services at once.
  • A NAS. A solid choice if storage is the main priority, but the price climbs quickly.
  • A mini PC. Small, silent, low power consumption, reasonable price. Clear winner.

第一个决定是外形规格。最常见的选择有:

  • 柜子里的旧电脑或笔记本电脑。 能用,但通常噪音大、功耗高且占用空间。
  • 树莓派(Raspberry Pi)。 小巧且极其节能,但在同时运行多个服务时,内存和处理能力有限。
  • NAS。 如果存储是首要任务,这是一个稳妥的选择,但价格上涨很快。
  • 迷你主机。 小巧、静音、低功耗、价格合理。显然是赢家。

The mini PCs I considered

我考虑过的迷你主机

In 2025, there are three families that make sense for a home lab:

  • Intel N95 / N100 is probably the most popular choice right now for this kind of use. Very good energy efficiency, full virtualisation support and highly competitive prices. The N100 is more efficient than the N95; the N95 wins slightly on raw performance but at the cost of a bit more power draw. There are countless manufacturers building models around these chips, and the difference between them is usually minimal: what varies is the connectivity, the stock RAM and the after-sales support.
  • Mac Mini deserves a mention because it’s one of the most well-known options on the market. Performance is excellent and power consumption is surprisingly low, but for me the problem is the price — clearly higher than a Chinese mini PC — and I don’t need something like that to get started.
  • Fanless mini PCs (no fan). Fully passive models exist, and they’re very quiet as a result. The downside is that passive cooling limits sustained performance and adds a noticeable premium to the price.

2025 年,有三个系列适合家庭实验室:

  • Intel N95 / N100 可能是目前此类用途中最受欢迎的选择。能效比极高,支持完全虚拟化,且价格极具竞争力。N100 比 N95 更节能;N95 在原始性能上略胜一筹,但代价是功耗稍高。有无数厂商围绕这些芯片制造产品,它们之间的差异通常很小:主要区别在于接口、预装内存和售后支持。
  • Mac Mini 值得一提,因为它是市场上最知名的选择之一。性能出色且功耗出奇地低,但对我来说问题在于价格——明显高于国产迷你主机——而且我不需要那种级别的设备来入门。
  • 无风扇迷你主机。 存在完全被动散热的型号,因此非常安静。缺点是被动散热限制了持续性能,并且价格溢价明显。

最终决定:零刻 S12 Pro

I went with the Beelink S12 Pro running an Intel N100. The reasons were straightforward:

  • Good value for money
  • Very low power consumption
  • 16 GB of RAM
  • NVMe SSD included
  • Compact size

我选择了搭载 Intel N100 的零刻 S12 Pro。原因很简单:

  • 性价比高
  • 功耗极低
  • 16GB 内存
  • 自带 NVMe SSD
  • 体积小巧

The downside is that there’s no dedicated GPU, so AI workloads are limited to small models that run reasonably on CPU. It’s not the most powerful mini PC on the market, but it’s one of the most balanced for a home lab. My goal isn’t to run enterprise infrastructure — it’s to run several services reliably and efficiently.

缺点是没有独立显卡,因此 AI 工作负载仅限于在 CPU 上运行良好的小型模型。它不是市场上性能最强的迷你主机,但对于家庭实验室来说,它是最均衡的选择之一。我的目标不是运行企业级基础设施,而是可靠且高效地运行几个服务。

The operating system

操作系统

With the hardware sorted, the next question was what to install. There are basically three paths:

  • Linux + Docker directly is the most popular option and the easiest to understand. You install Debian or Ubuntu Server, spin up services with Docker Compose and you’re done. It works very well, but everything shares the same host: if something goes wrong at the OS level, everything goes down together.
  • TrueNAS or Unraid are interesting when the focus is a home NAS and your own personal cloud storage. That wasn’t my use case.
  • Proxmox VE was something I’d never heard of before — and yet it’s what I chose. It’s a virtualisation platform based on Debian that lets you manage virtual machines and LXC (LinuX Containers) containers from a fairly comfortable web interface. The main advantage is isolation: each service lives in its own environment. If I break a container, everything else keeps running. If I want to experiment with something unusual, I do it in a throwaway VM and delete it without a trace. It’s not the simplest option to start with, but the learning curve pays for itself.

硬件搞定后,下一个问题是安装什么。基本上有三条路:

  • 直接使用 Linux + Docker 是最受欢迎且最容易理解的选择。安装 Debian 或 Ubuntu Server,用 Docker Compose 启动服务就完成了。它运行得很好,但所有东西都共享同一个宿主机:如果操作系统层面出了问题,所有服务都会一起挂掉。
  • TrueNAS 或 Unraid 在侧重于家庭 NAS 和个人云存储时很有趣。但那不是我的使用场景。
  • Proxmox VE 是我以前从未听说过的——但我最终选择了它。它是一个基于 Debian 的虚拟化平台,让你能够通过一个相当舒适的 Web 界面管理虚拟机和 LXC(Linux 容器)。主要优势是隔离性:每个服务都运行在自己的环境中。如果我弄坏了一个容器,其他服务依然正常运行。如果我想尝试一些不寻常的东西,我可以在一个一次性的虚拟机中进行,然后将其彻底删除。它不是最简单的入门选项,但学习曲线带来的回报是值得的。

Installing Proxmox VE

安装 Proxmox VE

The installation process is simpler than it looks. Proxmox ships its system as an ISO image, so the first step is writing it to a USB drive. On Windows, the most convenient tool for this is Balena Etcher: download the ISO from the official Proxmox website, open Etcher, select the image and the drive, and in a few minutes you have a working installer. No fuss.

安装过程比看起来简单。Proxmox 以 ISO 镜像形式提供系统,所以第一步是将其写入 USB 驱动器。在 Windows 上,最方便的工具是 Balena Etcher:从 Proxmox 官网下载 ISO,打开 Etcher,选择镜像和驱动器,几分钟后你就拥有了一个可用的安装盘。非常省事。

With the USB drive ready, it’s time to boot the Beelink from it. To do that you need to access the system’s boot menu: on the S12 Pro, you do this by pressing the right key immediately after powering on (in my case F7, though it can vary by model). From there you select the USB drive as the boot device and the Proxmox installer loads on its own.

USB 驱动器准备好后,就可以从它启动零刻主机了。为此,你需要进入系统的启动菜单:在 S12 Pro 上,开机后立即按下对应的按键(我的是 F7,具体取决于型号)。进入后,选择 USB 驱动器作为启动设备,Proxmox 安装程序就会自动加载。

The installer itself is a fairly guided graphical wizard. It basically asks for:

  • The disk to install the system on
  • Network configuration (IP address, gateway, DNS)
  • The node name
  • A password for the root user

安装程序本身是一个相当直观的图形化向导。它主要询问:

  • 安装系统的磁盘
  • 网络配置(IP 地址、网关、DNS)
  • 节点名称
  • Root 用户密码

Ten minutes later the system is installed. You pull out the USB drive, the machine reboots and you can access the Proxmox web interface from any browser on your local network at https://SERVER-IP:8006. From that point on, everything is managed from the browser.

十分钟后系统就安装好了。拔掉 USB 驱动器,机器重启,你就可以在局域网内的任何浏览器中通过 https://服务器IP:8006 访问 Proxmox Web 界面。从那一刻起,一切都可以在浏览器中管理。

Key concepts in Proxmox VE

Proxmox VE 中的关键概念

Before starting to deploy services, there are two concepts worth understanding properly.

  • LXC: lightweight containers. LXC containers share the host system’s kernel. This means lower memory usage, lower CPU overhead and almost instant startup. They’re ideal for lightweight services like DNS servers, proxies or any application that doesn’t need a very specific environment.
  • VMs: full virtual machines. Virtual machines run completely independently, with their own kernel and operating system. In exchange, they consume more resources and take longer to start. They’re the right choice when you need maximum compatibility or isolation, or when the application itself recommends it.

在开始部署服务之前,有两个概念值得深入理解。

  • LXC:轻量级容器。 LXC 容器共享宿主系统的内核。这意味着更低的内存占用、更低的 CPU 开销以及几乎瞬间的启动速度。它们非常适合轻量级服务,如 DNS 服务器、代理或任何不需要特定环境的应用程序。
  • VM:完整虚拟机。 虚拟机完全独立运行,拥有自己的内核和操作系统。作为交换,它们消耗更多资源且启动时间更长。当你需要最大程度的兼容性或隔离性,或者应用程序本身有此建议时,它们是正确的选择。

What do I use? My approach is simple: If something can run comfortably in an LXC, I run it in an LXC. I only use virtual machines when they offer a clear advantage.

我用什么?我的方法很简单:如果某样东西可以在 LXC 中舒适地运行,我就在 LXC 中运行它。只有在虚拟机具有明显优势时,我才会使用虚拟机。

How the server is organised

服务器是如何组织的

My current setup is fairly straightforward: proxmox-node ├── CT 100 - alpine-adguard ├── CT 1...

我目前的设置相当简单: proxmox-node ├── CT 100 - alpine-adguard ├── CT 1...