闲置树莓派变身生产服务器:我们为何迷上自建主机

闲置树莓派变身生产服务器:我们为何迷上自建主机

五月 07, 2026 self-hosting raspberry-pi node.js devops dns github-actions astro web-infrastructure

抽屉里的服务器黑科技

用一台比咖啡机还便宜的硬件,就能跑起生产网站,感觉超爽。云平台如Vercel帮大多数人扛起重活,但自建Raspberry Pi也有真材实料的理由——远超怀旧情怀。

真实场景:你用Astro、Svelte Kit或React这些Node.js框架,有些依赖在serverless上卡壳。比如老旧i18n库,本地完美跑,却打包不了。或者你想精确控运行时行为。这时,Pi就成了云服务的平价杀手。

第一步:网络路由,通往外网的门

先让Pi跟世界对话,得在路由器上设端口转发。这就是公网IP和架子上的小机器间的桥梁。

接着上Caddy,这货是现代反向代理,简单碾压老古董。配置长这样:

yoursite.com {
    root * /home/username/projects/yoursite
    
    file_server
    reverse_proxy localhost:4321
}

端口随框架变:Astro默认4321,Svelte Kit是5173,Node.js常3000。重载Caddy配置,你就过半关了。

第二步:域名直指你的Pi

用NameOcean这类注册商,超简单。加个DNS A记录:

A Record: yoursite.com → your.public.ip.address

搞定。路由器转发兜底,流量自动拐弯到Pi。

第三步:一次构建,永不关机

标准命令打包项目:

npm run build

吐出dist文件夹,带编译好的app和入口文件(如entry.cjs或entry.mjs)。

这时PM2上场——Node.js进程守护神,让app永动机:

npm install -g pm2
cd dist/
pm2 start entry.mjs

网站上线了。不用盯着终端,不怕窗口关。

第四步:GitHub Actions自动部署

自建的核心是更新代码别老SSH折腾。GitHub Actions让这事丝滑无比。

仓库里建.github/workflows/deploy.yml

name: Deploy to Raspberry Pi
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.PI_HOST }}
          username: ${{ secrets.PI_USER }}
          password: ${{ secrets.PI_PASSWORD }}
          script: |
            ~/bin/deploy.sh

仓库秘密里填Pi的IP和账号密码。再写部署脚本全包:

#!/usr/bin/env bash
set -euo pipefail

BASE_DIR="$HOME/projects"
PORTS=(4321 4322)
PORT_INDEX=0

echo "拉最新代码..."
for dir in "$BASE_DIR"/*/ ; do
    if [[ -d "$dir/.git" ]]; then
        (cd "$dir" && git pull)
    fi
done

echo "构建项目..."
for dir in "$BASE_DIR"/*/ ; do
    if [[ -f "$dir/package.json" ]]; then
        CURRENT_PORT=${PORTS[$PORT_INDEX]}
        (
            cd "$dir"
            npm run build -- --port "$CURRENT_PORT"
        )
        PORT_INDEX=$(( (PORT_INDEX + 1) % ${#PORTS[@]} ))
    fi
done

echo "重启服务..."
pm2 restart all

现在git push一键,Pi自动拉码、重建、重启。零手动。

真账本算算

Pi自建不是人人爱。你丢了云的冗余和全球CDN。带宽窄,网断网站趴窝。但如果你爱掌控、抠成本、DIY全栈的成就感,它真能战。

更牛的是学到真功夫:DNS、reverse proxy、进程管理、CI/CD——云面板点按钮永远摸不到边。

闲置Raspberry Pi不是玩具。它是靠谱基础设施,证明生产负载不总靠大厂方案。

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA EN