这次有点为了一口醋买一斤螃蟹的感觉,起因是有个社区项目想用Misskey搭建,手头又多了块512G的M.2闪存,看了看服务器高昂的费用,不如用ARM盒子外加Cloudflare搭个?
于是就有了NanoPi R5S 安装Debian 12 Server部署Misskey服务器并将所有MissKey相关内容都装在M.2硬盘的方案。
今天这篇干货,就手把手带你从零开始,在NanoPi R5S上刷上Debian 12,挂上M.2硬盘当家目录,再装上原生的Misskey服务。走起!
第一章:开工前的准备(别头铁,准备好再上)
搞机第一步,工具得备齐。不然到时候抓瞎可别怪我。
- 硬件家伙事儿:NanoPi R5S主板、电源、网线、一张质量靠谱的SD卡(建议16GB以上)、你要挂载的M.2 NVMe固态硬盘(别买成SATA协议的啊)、读卡器。
- 软件工具:
- Debian 12镜像:这是难点。目前官方Debian Ports可能为类似RK3568的设备提供镜像,或者社区构建的镜像(可以去FriendlyElec的论坛或国内外技术社区如Armbian、博客站搜“NanoPi R5S Debian 12”碰碰运气)。注意:确保下载的镜像版本与你的设备兼容,否则无法启动。
- 烧录工具:BalenaEtcher、Rufus或者`dd`命令都行,哪个顺手用哪个。
- SSH客户端:PuTTY、Termius或者系统自带的终端,用来远程操作你的小板子。
警告(血泪教训):
- 镜像兼容性是爸爸:千万别随便找个Debian镜像就往上怼,R5S是ARM64架构,需要特定的设备树和驱动支持。刷成砖头我可不管你(手动狗头)。
- 备份!备份!备份!:操作磁盘分区前,有任何重要数据都请备份。否则数据飞了别哭。
第二章:把Debian 12刷进R5S(搞定系统基础)
1. 烧录系统到SD卡
用你下载的Debian 12镜像,通过烧录工具把它写到SD卡里。这个过程会清空SD卡,确保你没存啥学习资料。
2. 上电、联网、找IP
把烧录好的SD卡插入R5S,接上网线、电源,让它启动。接着,去你的路由器管理界面(通常是在浏览器输入192.168.1.1或类似地址),在连接设备列表里找到名字可能叫“nanopi-r5s”或者类似的新设备,记下它的IP地址。
3. SSH远程登录
打开你的SSH客户端,连接上一步找到的IP地址。首次登录用户名可能是`root`,密码可能需要查看你下载的镜像提供方的说明(常见密码有`root`、`admin`、`1234`或者`fa`等,或者没有密码直接需要设置)。
4. 系统初步设置
# 1. 更新软件源列表,确保软件包信息是最新的
apt update
# 2. 升级所有已安装的软件包到最新版本
apt upgrade -y
# 3. (可选但推荐)更改root用户密码,加强安全性
passwd
# 4. (可选)设置主机名,方便识别,比如改成“nanopi-misskey”
hostnamectl set-hostname nanopi-misskey
# 5. 安装一些常用的工具,方便后续操作
apt install -y vim sudo curl wget
第三章:让系统认出M.2硬盘并挂载为/home(提速关键!)
重头戏来了!我们要让R5S的PCIe接口动起来,然后让系统把M.2硬盘当成“家”。
1. 启用PCIe支持(可能需要的步骤)
有些镜像默认没启用PCIe。你需要编辑boot参数(设备树叠加或环境变量)。注意: 这一步高度依赖你使用的特定镜像。可能需要修改 `/boot/uEnv.txt`、`/boot/config.txt` 或 `/boot/armbianEnv.txt` 等文件,添加设备树叠加(比如 `overlays=pcie`)或特定参数。
务必查阅你下载的镜像提供的文档或社区支持! 修改错误可能导致无法启动。
修改并保存后,重启生效:
reboot
重启后重新SSH登录,检查NVMe硬盘是否被识别:
lsblk
# 或者
fdisk -l
你应该能看到你的NVMe硬盘(比如 `/dev/nvme0n1`)。如果没看到,检查PCIe启用步骤或寻求镜像提供方的帮助。
2. 给M.2硬盘分区和格式化
假设你的硬盘是 `/dev/nvme0n1`。
# 1. 使用 fdisk 进行分区
fdisk /dev/nvme0n1
# 在 fdisk 的交互界面中:
# 输入 `n` 创建新分区
# 选择主分区 (`p`)
# 分区号接受默认 (`1`)
# 起始扇区接受默认
# 最后一个扇区接受默认(使用整个磁盘)
# 输入 `w` 将分区表写入磁盘并退出
# 2. 格式化新分区为 ext4 文件系统
mkfs.ext4 /dev/nvme0n1p1
警告: 以上操作会永久删除指定磁盘上的所有数据!请百分之百确认你操作的是正确的设备(/dev/nvme0n1)!
3. 挂载M.2硬盘为/home目录
现在我们让系统每次启动都自动把这个分区挂载到/home。
# 1. 先备份当前 /home 目录的内容(如果有的话)
mkdir /tmp/home_backup
cp -a /home/* /tmp/home_backup/
# 2. 创建临时挂载点并挂载新分区
mkdir -p /mnt/new_home
mount /dev/nvme0n1p1 /mnt/new_home
# 3. 将原 /home 的内容复制到新分区,并保持权限
cp -a /home/* /mnt/new_home/
chmod -R 755 /mnt/new_home
# 4. 卸载临时挂载
umount /mnt/new_home
# 5. 获取新分区的 UUID
blkid | grep /dev/nvme0n1p1
# 记下输出的 UUID,比如 UUID="12345678-abcd-1234-5678-abcdef123456"
# 6. 编辑 /etc/fstab 文件实现开机自动挂载
vim /etc/fstab
# 在文件末尾添加一行,使用你的 UUID(注意替换你的UUID!)
# UUID=12345678-abcd-1234-5678-abcdef123456 /home ext4 defaults,noatime 0 2
# 7. 测试 fstab 配置是否正确
mount -a
# 8. 如果没有报错,用 df -h 检查是否成功挂载
df -h
# 9. 重启系统确认一切正常
reboot
重启后,再次登录,执行 `df -h`,你应该看到 `/dev/nvme0n1p1` 已经挂载到了 `/home`。搞定!
性能提示: R5S的PCIe是x1通道,NVMe SSD的性能会有瓶颈,但相比SD卡或eMMC,那依然是飞一般的感觉!
第四章:安装和配置Misskey(非Docker版)
核心来了!我们要在“新家”里安装Misskey。
1. 安装系统依赖
Misskey需要Node.js、PostgreSQL、Redis等。
# 1. 安装 Node.js(以Node.js 18 LTS为例,请查询Misskey最新文档确认所需版本)
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs
# 2. 安装 PostgreSQL 数据库和 Redis 缓存服务器
apt install -y postgresql postgresql-contrib redis-server
# 3. 安装构建工具和必要的依赖
apt install -y build-essential python3 git
# 4. 安装 Yarn 包管理工具
npm install -g yarn
2. 创建Misskey专用用户
用root跑服务不安全。
# 创建系统用户 misskey,并不允许登录且不创建家目录
adduser --disabled-password --disabled-login --gecos "" misskey
3. 配置数据库(PostgreSQL)
# 切换到 postgres 用户
su - postgres
# 启动 PostgreSQL 交互终端
psql
# 在 psql 中执行以下命令,创建数据库用户和数据库(请替换 '你的超级强密码')
CREATE USER misskey WITH PASSWORD '你的超级强密码' CREATEDB;
CREATE DATABASE misskey WITH OWNER misskey;
# 退出 psql
\q
# 退出 postgres 用户
exit
4. 拉取Misskey源码并配置
# 1. 切换到 misskey 用户
su - misskey
# 2. 克隆 Misskey 仓库(master分支,或切换至稳定tag)
git clone -b master https://github.com/misskey-dev/misskey.git
cd misskey
# 3. (可选)查看并切换到最新的稳定标签,例如:
# git tag -l | sort -V # 列出标签
# git checkout v13.0.0 # 切换到指定稳定版本
# 4. 安装 Misskey 的项目依赖
yarn install
# 5. 复制并编辑配置文件
cp .config/example.yml .config/default.yml
vim .config/default.yml
在 `default.yml` 配置文件中,你需要仔细修改以下部分:
url:
你的域名(如果还没域名,可以先IP+端口,但生产环境强烈建议用域名)port:
服务端口(默认3000)db:
部分,填写上面创建的PostgreSQL数据库信息(数据库名、用户、密码)redis:
部分,本地一般默认即可- 根据需求调整其他设置(如邮件、对象存储等)
5. 构建Misskey和初始化数据库
# 1. 构建 Misskey(生产环境模式,耗时较长)
NODE_ENV=production yarn build
# 2. 如果构建过程中出现关于某些本地模块(如node-gyp)的错误,可以尝试:
# npx node-gyp configure
# npx node-gyp build
# 然后再执行 NODE_ENV=production yarn build
# 3. 初始化数据库表结构
yarn run init
第五章:配置系统服务和管理
1. 创建Systemd服务文件(让Misskey开机自启)
退出 `misskey` 用户回到 `root` 用户:
exit
创建service文件:
vim /etc/systemd/system/misskey.service
写入以下内容(注意根据你的实际路径修改):
[Unit]
Description=Misskey daemon
After=network.target postgresql.service redis-server.service
[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey # 确认这是你的Misskey安装路径
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动Misskey服务:
# 重新加载 systemd 配置
systemctl daemon-reload
# 设置开机自启
systemctl enable misskey
# 启动服务
systemctl start misskey
# 查看服务状态
systemctl status misskey
# 查看实时日志
journalctl -u misskey.service -f
2. (强烈推荐)配置Nginx反向代理和SSL
用IP+端口访问太不优雅,也不安全。你需要一个域名并解析到你的R5S IP(或DDNS动态域名)。
# 安装 Nginx
apt install -y nginx
# 为你的 Misskey 站点创建 Nginx 配置文件
vim /etc/nginx/sites-available/your-domain.conf
在配置文件中,参考Misskey官方文档或示例配置一个反向代理到 `http://127.0.0.1:3000`(你的Misskey服务端口)。
启用配置并测试:
# 创建软链接启用配置
ln -s /etc/nginx/sites-available/your-domain.conf /etc/nginx/sites-enabled/
# 测试 Nginx 配置语法
nginx -t
# 重载 Nginx 使配置生效
systemctl reload nginx
强烈建议使用Let’s Encrypt的Certbot为你的域名申请免费SSL证书,实现HTTPS加密。
第六章:收尾和测试
现在,打开你的浏览器,访问你为Misskey设置的域名。如果一切顺利,你应该能看到Misskey的初始化页面,按照提示创建管理员账户吧!
恭喜你!你的NanoPi R5S现在已经成为一台运行着Debian 12、使用M.2硬盘作为Home分区、并托管着原生Misskey实例的高效小型服务器了!
常见问题(FAQ)和排错思路
- Q: Misskey服务启动失败,看日志报错?
A: 首先看日志!journalctl -u misskey.service -n 50 -f
。常见问题:数据库连接失败(检查密码、权限、PostgreSQL是否运行)、端口占用、依赖缺失。 - Q: 如何更新Misskey?
A: 切换到misskey用户,进入Misskey目录,执行:git pull
,yarn install
,NODE_ENV=production yarn build
,yarn migrate
。然后重启服务:systemctl restart misskey
。更新前务必备份数据库和配置文件! - Q: M.2硬盘读写速度感觉不够快?
A: 如前所述,R5S的PCIe是x1通道,性能有上限,但绝对够用且远胜SD卡。 - Q: 域名访问不了?
A: 检查域名解析是否生效、Nginx配置是否正确、防火墙是否开放了80/443端口(如果有)。
终极忠告: 遇到问题别慌,善用搜索引擎(关键词:NanoPi R5S Debian、Misskey安装错误xxx)、查看日志、查阅官方文档和社区论坛(如FriendlyElec论坛、Misskey GitHub Issues),你遇到的问题很可能别人也遇到过。
本文由 万事屋 原创发布,版权所有。转载请保留出处:https://www.rei3.com
没有回复内容