开源去中心化的社交平台Misskey搭建教程

您所在的位置:网站首页 谷歌社交平台头像 开源去中心化的社交平台Misskey搭建教程

开源去中心化的社交平台Misskey搭建教程

2023-10-11 11:11| 来源: 网络整理| 查看: 265

Misskey是一个支持ActivityPub协议的开源去中心化的社交平台,与流行的mastodon(长毛象) 一样,每个搭建好的misskey服务称为一个“实例”,不同实例之间的账号不能通用,但可以跨实例互动(关注、回复、转发),不同的实例由不同的组织团体或个人来搭建与维护,不同的实例通过ActivityPub协议进行交互共同构成了一个去中心化的社交网络。

开源去中心化的社交平台

Misskey的页面这样介绍自己:

Misskey是一个开源的、去中心化的“微博客”服务。 通过编写「帖文」来和大家分享你的以及你周围的事情吧!📡 通过「回应」功能,可以让你快速地对大家的帖文表达反馈👍 来探索新的世界吧!🚀

相对于mastodon这个用Ruby写的,基于nodejs的misskey在搭建部署上应该会更方便一些。Misskey的主要依赖项有三项:nodejs、Post­greSQL 和 re­dis 这三项在Debian/Ubuntu系列的系统上都很好安排。

准备阶段

首先按照安装文档的要求,新建一个名称为misskey的用户

addusr misskey

按照提示安排好密码等内容就好了

然后就是去 github 上面拉取 misskey 的本体了

su misskey

 cd ~

git clone -b master git://github.com/syuilo/misskey.git

这一步通常比较缓慢 (境内服务器) 推荐用 screen 安排上,然后去配置数据库。这相当于是一种异步多线程操作 Σ(っ °Д °;) っ

下载完成之后,check­out mas­ter 分支 BLM

cd misskey

git checkout master

安装PostgreSQL

在 de­bian/ubuntu 系列的操作系统里面很容易

sudo apt install postgresql

apt 包管理会安排好一切的,包括创建一个 postgres 的专们用户以及启动 post­gresql 服务。

如果没有特殊需求,post­gresql 的默认配置就不用动了 (我在树莓派上安装的也没动),要改的只有监听端口与监听的 IP 地址,数据库类的应用建议还是改一下监听端口,尤其是暴露在公网上的服务器,去年在树莓派上安排好的 re­dis 都让人给干了……

配置文件在 /etc/postgresql 下面,上面说的很详细,按需求改端口和监听地址就行了,如果嫌麻烦或者是在网站与数据库在同一个服务器上可以把 post­gresql 的 SSL 选项关掉。

创建数据库与新增用户

首先进入 post­gresql 的控制台

sudo -i su postgres

psql

然后会出现 postgres=# 这就说明很正常,然后创建名称为 misskey 的数据库:

postgres=#CREATE DATABASE misskey;

然后创建名为 misskey 的用户

postgres=#create user misskey with password 'YourPassword ';

将创建好的数据库权限给安排好

postgres=# GRANT ALL PRIVILEGES ON DATABASE misskey TO misskey;

按照这个流程 post­gresql 应该是完全安排好了

Redis安装

re­dis 与一般的 sql 数据库不同,re­dis 是一种键值对数据库,而且全部在内存里,说以数据查询就很快了,通常用来作为缓存,据说某售票网站就是用的 re­dis。

在 ubuntu/de­bian 系列的系统里安装 re­dis 也是十分方便的基本上可以说是开箱即用:

sudo apt install redis

完成之后去 /etc/redis/ 目录下找配置文件与改端口、设置密码,在里面找到并重点关注下面几项,其他配置没有特殊需求不用动。

requirepass YourPassword

bind 0.0.0.0

port 9999

配置完之后记得重启

安装yran

如果是 Ubuntu 系统,最好先把 cmdtest 给移除掉,会造成名称冲突

sudo apt remove cmdtest

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

然后就是将 nodejs 升级到最新稳定版,系统安装的一般版本比较老旧

通常的升级方法是

sudo npm install n -g

sudo n stable

其中 n 是可以切换 nodejs 版本的一个包。

编译静态资源与配置misskey

安装依赖 (JavaScript)

su misskey

cd ~/misskey

yarn

这个也要等一段时间,这个时间可以去配置数据库

编辑配置文件

cp .config/example.yml .config/default.yml

对 de­fault.yml 进行编辑

重点注意端口号,两个数据库的配置

编译静态文件

NODE_ENV=production yarn build

这也需要比较长的时间,考虑到此时数据库已经配置完了,就耐心等着吧 ╮(╯▽╰)╭

其实这段时间还可以考虑去配置 nginx

安装文档里面有一份配置样例,不同服务器的环境不同,之前所承载的服务不同,这个就要具体问题具体分析了,这里放一下我在安装文档配置基础上修改后的配置

map $http_upgrade $connection_upgrade {

    default upgrade;

    ''      close;

}

proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;

server {

    listen 443 ssl http2;

    listen [::]:443 ssl http2;

    server_name m.dogcraft.top;

    ssl_session_cache shared:ssl_session_cache:10m;

    access_log /var/log/nginx/misskey.log main;

    ssl_certificate     /root/key/dog.pem;

    ssl_certificate_key /root/key/dog.key;

    ssl_protocols TLSv1.2;

    ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;

    ssl_prefer_server_ciphers on;

    client_max_body_size 80m;

    location / {

        proxy_pass http://127.0.0.1:3003;

        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 https;

        proxy_set_header Accept-Encoding "";

        proxy_http_version 1.1;

        proxy_redirect off;

        # For WebSocket

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection $connection_upgrade;

        # Cache settings

        proxy_cache cache1;

        proxy_cache_lock on;

        proxy_cache_use_stale updating;

        add_header X-Cache $upstream_cache_status;

    }

改完了看一下 ng­inx -t 有没有问题,没有问题就 ng­inx-s re­load 重新加载新的配置文件。

编译完成之后进行数据库的初始化

yarn run init

这个也要等一会,如果正常结束了,就可以启动了,输入下面的命令就可以启动了

NODE_ENV=production npm start

第一次进去要设置一下管理员用户与密码

安排上系统服务

在ssh 连接上 npm start 是不稳定的,ssh 断掉之后进程就没了。

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

最后运行

sudo systemctl daemon-reload

sudo systemctl enable misskey

sudo systemclt start misskey

这样以后即使服务器重启之后也能继续运行了。

总结

总体来看,搭建过程并不复杂,完成之后对服务器的资源占用不是很高(到目前为止),在阿里云服务器上内存占用小于 mysql,树莓派上的 post­gresql 内存占用小于 qbit­tor­rent。

目前境内网络上的 misskey 实例很少,去中心化的社交网络也是以 mastodon 为主(同样也很少),但是 misskey 类的具有 ActivityPub 协议的是可以跨实例交互的,所以 misskey 适合小圈子的圈地自萌与熟人茶馆……

B站专栏对代码的排版不是很友好,有些命令在专栏页面直接复制可能会出问题,可以到 https://dogcraft.top/archives/145/ 去看与复制

Github上安装文档地址(英文):https://github.com/syuilo/misskey/blob/develop/docs/setup.en.md

github上的效果图:

https://github.com/syuilo/misskey

最后放几张我搭建的手机端效果图

手机端Firefox效果图1手机端Firefox效果图2手机端Firefox效果图3



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3