自己搭个微博?还是去中心化的!用RK3566这块板子就能搞定~
还记得以前想自己搭个社交平台得砸多少钱吗?现在,只用一块RK3566的开发板(4G内存)和Debian系统,你就能拥有一个属于自己的、去中心化的”微博”服务——Misskey。
没错,就是那个支持ActivityPub协议(和Mastodon长毛象一样),可以跨实例互动的开源平台。最关键的是,不用Docker,咱们纯手工”裸装”,更透明!下面就是我折腾成功的完整记录。
先唠点干货:你的RK3566扛得住吗?
RK3566是ARM架构的处理器,Misskey对ARM平台支持良好。4G内存基本能满足Misskey的运行,但如果预计用户量较大,或者以后想扩展更多功能,可能就需要进一步优化了。
优点:功耗低、成本低、可定制性强、数据完全自主控制、能融入联邦宇宙(Fediverse)。
缺点:ARM架构编译安装某些依赖可能会遇到兼容性问题;性能有限,用户增多后可能需要优化;需要一定的技术动手能力。
准备工作:给Misskey安个家
既然不用Docker,那就需要亲手准备好它所需的所有运行环境。
1. 系统更新与创建专用用户
首先,确保你的Debian系统是最新的,然后为Misskey创建一个专门的用户(用root直接运行服务不安全!)。
sudo apt update && sudo apt upgrade -y sudo adduser --disabled-password --disabled-login misskey sudo su - misskey
2. 安装Misskey的运行依赖
Misskey的正常运行需要以下组件:
- Node.js:推荐使用NodeSource源安装Node.js 18.x LTS版本
- PostgreSQL:Misskey使用的关系型数据库,版本需不低于10
- Redis:用作高速缓存数据库
- Yarn:Node.js包管理工具
- build-essential & Python:编译原生模块所需的开发工具
一次性安装所有依赖:
# 安装Node.js (需要在root或sudo权限下操作) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # 安装PostgreSQL, Redis及必要的构建工具 sudo apt install postgresql redis build-essential python3 -y # 安装Yarn (如果系统已安装cmdtest请先移除) sudo apt remove cmdtest -y curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt update && sudo apt install yarn -y
3. 数据库配置
Misskey需要PostgreSQL和Redis两个数据库协同工作。
配置PostgreSQL:
# 切换到postgres用户并进入psql控制台 sudo -u postgres psql
在PostgreSQL控制台中执行以下命令(请将YourPassword替换为强密码):
CREATE DATABASE misskey; CREATE USER misskey WITH ENCRYPTED PASSWORD 'YourPassword'; GRANT ALL PRIVILEGES ON DATABASE misskey TO misskey; \q
配置Redis(安全考虑,必须设置密码!):
修改Redis配置文件/etc/redis/redis.conf:
requirepass YourRedisPassword bind 127.0.0.1
修改后重启Redis服务:
sudo systemctl restart redis
安装与配置Misskey:核心步骤
1. 获取Misskey源代码
使用misskey用户进行操作:
# 确保当前用户为misskey (su - misskey) git clone -b master https://github.com/misskey-dev/misskey.git cd misskey # 可以切换到最新的稳定版本标签,例如 v13.0.2 # git checkout v13.0.2
2. 安装项目依赖并构建
yarn install NODE_ENV=production yarn build
注意:在RK3566上构建非常耗时且资源密集,4G内存可能会感到压力。强烈建议增加交换空间(Swap),例如添加2G-4G的Swap,防止构建过程中因内存不足而失败。
3. 配置Misskey
复制配置文件并进行编辑:
cp .config/example.yml .config/default.yml nano .config/default.yml
以下关键配置必须正确设置:
# Misskey服务的访问URL url: https://your-domain-or-ip.com # 服务端口 port: 3000 # PostgreSQL数据库配置 db: host: localhost port: 5432 db: misskey user: misskey pass: 'YourPassword' # Redis配置 redis: host: localhost port: 6379 pass: 'YourRedisPassword'
保存并退出编辑器。
构建、初始化与启动:完成安装
1. 初始化数据库
在misskey目录下运行:
yarn run init
此命令将创建所有必需的数据库表结构。
2. 测试启动Misskey
NODE_ENV=production npm start
如果没有报错,你应该能够通过http://<你的设备IP>:3000访问Misskey的初始页面。按Ctrl+C停止服务,接下来将其配置为系统服务。
3. 配置systemd服务(推荐)
创建服务文件/etc/systemd/system/misskey.service:
sudo nano /etc/systemd/system/misskey.service
写入以下内容(注意检查路径和用户是否正确):
[Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=syslog StandardError=syslog SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target
启用并启动Misskey服务:
sudo systemctl daemon-reload sudo systemctl enable misskey sudo systemctl start misskey sudo systemctl status misskey
4. 配置反向代理(推荐)
使用Nginx作为反向代理可以更好地处理HTTP(S)请求和管理SSL证书。
安装Nginx:
sudo apt install nginx -y
创建Nginx配置文件/etc/nginx/sites-available/misskey:
sudo nano /etc/nginx/sites-available/misskey
参考以下配置(记得替换server_name和proxy_pass的端口号):
server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_redirect off; # WebSocket支持必需 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } }
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/misskey /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
配置防火墙(如已启用):
sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22
现在你应该可以通过域名或IP(无需添加3000端口)访问Misskey了。强烈建议使用Certbot申请SSL证书启用HTTPS。
常见问题与优化建议
- 构建失败或内存不足:增加Swap交换空间。构建前先运行yarn clean。
- Node.js原生模块编译错误:在Misskey目录下尝试: npx node-gyp configure npx node-gyp build 然后再次运行NODE_ENV=production yarn build。
- 数据库连接错误:检查.config/default.yml中的数据库配置、PostgreSQL和Redis服务运行状态、监听地址和防火墙设置。
- 性能优化:
- RK3566性能有限,避免运行其他资源密集型服务
- 确保Swap交换空间充足
- 考虑调整Node.js垃圾回收参数或使用更轻量的进程管理器(如PM2)管理Node.js进程
- 权限问题:确保Misskey相关文件和目录的所有者和组为misskey用户
- 邮箱配置:在Misskey管理面板中配置SMTP邮件服务器,否则用户无法注册
- 定期备份:定期备份配置文件、PostgreSQL数据库和Redis数据
结语:开启你的去中心化社交之旅
恭喜!按照这个流程,你的Misskey实例应该已经在RK3566上成功运行。现在你可以通过配置的域名或IP访问Misskey,创建管理员账号,开始你的去中心化社交体验了!
拥有一个完全自主控制的社交节点,并能与联邦宇宙中其他实例的用户互动,这种感觉确实很特别。虽然ARM设备性能有限,但通过适当优化,运行一个小而美的实例是完全可行的。
记得定期查看Misskey的GitHub仓库,保持系统更新!
祝你搭建顺利!
本文首发于万事屋,转载请注明出处。
没有回复内容