在RK3566 Debian设备上裸装Misskey:4G内存跑起去中心化社交平台 - 万事屋

在RK3566 Debian设备上裸装Misskey:4G内存跑起去中心化社交平台

自己搭个微博?还是去中心化的!用RK3566这块板子就能搞定~

 

还记得以前想自己搭个社交平台得砸多少钱吗?现在,只用一块RK3566的开发板(4G内存)和Debian系统,你就能拥有一个属于自己的、去中心化的”微博”服务——Misskey。

没错,就是那个支持ActivityPub协议(和Mastodon长毛象一样),可以跨实例互动的开源平台。最关键的是,不用Docker,咱们纯手工”裸装”,更透明!下面就是我折腾成功的完整记录。

先唠点干货:你的RK3566扛得住吗?

RK3566是ARM架构的处理器,Misskey对ARM平台支持良好。4G内存基本能满足Misskey的运行,但如果预计用户量较大,或者以后想扩展更多功能,可能就需要进一步优化了。

在RK3566 Debian设备上裸装Misskey:4G内存跑起去中心化社交平台

优点:功耗低、成本低、可定制性强、数据完全自主控制、能融入联邦宇宙(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

常见问题与优化建议

  1. 构建失败或内存不足增加Swap交换空间。构建前先运行yarn clean。
  2. Node.js原生模块编译错误:在Misskey目录下尝试: npx node-gyp configure npx node-gyp build 然后再次运行NODE_ENV=production yarn build。
  3. 数据库连接错误:检查.config/default.yml中的数据库配置、PostgreSQL和Redis服务运行状态、监听地址和防火墙设置。
  4. 性能优化
    • RK3566性能有限,避免运行其他资源密集型服务
    • 确保Swap交换空间充足
    • 考虑调整Node.js垃圾回收参数或使用更轻量的进程管理器(如PM2)管理Node.js进程
  5. 权限问题:确保Misskey相关文件和目录的所有者和组为misskey用户
  6. 邮箱配置:在Misskey管理面板中配置SMTP邮件服务器,否则用户无法注册
  7. 定期备份:定期备份配置文件、PostgreSQL数据库和Redis数据

结语:开启你的去中心化社交之旅

恭喜!按照这个流程,你的Misskey实例应该已经在RK3566上成功运行。现在你可以通过配置的域名或IP访问Misskey,创建管理员账号,开始你的去中心化社交体验了!

拥有一个完全自主控制的社交节点,并能与联邦宇宙中其他实例的用户互动,这种感觉确实很特别。虽然ARM设备性能有限,但通过适当优化,运行一个小而美的实例是完全可行的。

记得定期查看Misskey的GitHub仓库,保持系统更新!

祝你搭建顺利!

本文首发于万事屋,转载请注明出处。

请登录后发表评论

    没有回复内容

万事屋新帖