mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
947 字
3 分钟
racknerd服务器搭建
2026-05-18

前言#

在遭到不可抗力因素的打压之后,咱决定从腾讯云跑路到racknerd

账号注册#

首先是之前说的验证码问题,咱换了一个clash节点就解决了

racknerd的优势#

  1. 不需要实名制。这是咱从腾讯云跑路的核心原因。在国内需要把域名转到厂商那里然后实名认证才能让把域名解析到ip
  2. 可以直连github

racknerd的劣势#

贵,我租个单核1GB RAM的服务器爆了150块

在遇到问题之前…#

咱照着之前在腾讯云上部署的方式重新跑了一遍。一切都很正常,直到咱运行pnpm build
爆内存了…

解决爆内存的问题#

为什么会爆内存呢?
当然是因为这是个1G RAM的服务器
VUE3项目构建时的最少需要1GB的内存,而咱的破烂服务器在运行nginx之后只有大概600MB的剩余了
所以构建并不能在服务器端进行…
首先的想法是本地构建,然后把dist文件夹传上去。
但考虑到每次更新都要手动上传,咱决定把它作为没有办法的办法(咱这该死的完美主义)
于是求助群友
github workflow——Alumopper姐姐

github workflow#

不会写,遂bing一下
github的官方文档说它遵循yaml语法(什么是yaml)
那么我们着手开始写

on#

首先是我们的需求,要在推送到master分支的时候自动触发构建
那么我们的on可以这样写

push:
branches:
- main
- master

permission#

我们要将构建出来的dist文件夹写入仓库的pages分支,那么我们需要

permissions:
contents: write

这段代码的作用是给予脚本写入权限

job#

接下来到了重头戏,这是我们脚本的核心功能,以job:开头
job里面是运行流程,github会自上而下执行你编写的流程

build-and-deploy#

我们首先需要构建代码
由于我们构建出来的网站运行在ubuntu20.04操作系统上,所以我们添加一行

runs-on: ubuntu-latest

之后是运行流程,在steps标签下

checkout#

首先我们需要知道github action是怎么运行的
github会给你提供一台临时运行机,然后在这台机器上执行你的流程
但是我们要构建代码,而咱的代码又不会自动下载到虚拟机上
怎么办呢?
当然是前人栽树后人乘凉,

- name: Checkout
uses: actions/checkout@v4

搞定

setup pnpm#

想要运行pnpm build,我们需要什么呢?
当然是需要pnpm了(
我们依然可以用别人写好的构建代码

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.33.0
run_install: false

安装的pnpm版本应该与本地的pnpm版本一致,并且不自动执行依赖安装(就是pnpm install
不自动执行依赖安装的原因是我们还没装node.js

setup node.js#

仿照上例显然

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22.12.0
cache: pnpm

install dependence#

既然已经安装完node.js了,我们终于可以安装依赖了

- name: Install dependencies
run: pnpm install --frozen-lockfile

build site#

就像教程里说的那样,直接

- name: Build site
run: pnpm build

就好了

Deploy to pages branch#

然后我们要把生成的dist文件夹推送到pages分支上
恰巧前人还帮我们写好了
那么最后一步

- name: Deploy to pages branch
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: pages
folder: dist
clean: true

完成

SSH Connect to remote server#

接下来就是把我们的page分支部署到服务器上面去
ssh链接到服务器,打开目录,然后直接git pull就行
直接使用linux的ssh命令有个问题,就是你只能传给它文件形式的私钥,而我们又不能在github上面明文存储私钥
好在前人的智慧还是起了作用

- name: SSH Connect to remote server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USER }}
key: |
${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd ${{secrets.DEPLOY_PATH}}
git pull

现在就好啦

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

racknerd服务器搭建
https://s701f.top/posts/racknerd服务器搭建/
作者
五红酱自动机!
发布于
2026-05-18
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

目录