开源去中心化的社交平台Misskey搭建教程 |
您所在的位置:网站首页 › 谷歌社交平台头像 › 开源去中心化的社交平台Misskey搭建教程 |
Misskey是一个支持ActivityPub协议的开源去中心化的社交平台,与流行的mastodon(长毛象) 一样,每个搭建好的misskey服务称为一个“实例”,不同实例之间的账号不能通用,但可以跨实例互动(关注、回复、转发),不同的实例由不同的组织团体或个人来搭建与维护,不同的实例通过ActivityPub协议进行交互共同构成了一个去中心化的社交网络。 ![]() Misskey的页面这样介绍自己: Misskey是一个开源的、去中心化的“微博客”服务。 通过编写「帖文」来和大家分享你的以及你周围的事情吧!📡 通过「回应」功能,可以让你快速地对大家的帖文表达反馈👍 来探索新的世界吧!🚀 相对于mastodon这个用Ruby写的,基于nodejs的misskey在搭建部署上应该会更方便一些。Misskey的主要依赖项有三项:nodejs、PostgreSQL 和 redis 这三项在Debian/Ubuntu系列的系统上都很好安排。 准备阶段首先按照安装文档的要求,新建一个名称为misskey的用户 addusr misskey 按照提示安排好密码等内容就好了 然后就是去 github 上面拉取 misskey 的本体了 su misskey cd ~ git clone -b master git://github.com/syuilo/misskey.git 这一步通常比较缓慢 (境内服务器) 推荐用 screen 安排上,然后去配置数据库。这相当于是一种异步多线程操作 Σ(っ °Д °;) っ 下载完成之后,checkout master 分支 BLM cd misskey git checkout master 安装PostgreSQL在 debian/ubuntu 系列的操作系统里面很容易 sudo apt install postgresql apt 包管理会安排好一切的,包括创建一个 postgres 的专们用户以及启动 postgresql 服务。 如果没有特殊需求,postgresql 的默认配置就不用动了 (我在树莓派上安装的也没动),要改的只有监听端口与监听的 IP 地址,数据库类的应用建议还是改一下监听端口,尤其是暴露在公网上的服务器,去年在树莓派上安排好的 redis 都让人给干了…… 配置文件在 /etc/postgresql 下面,上面说的很详细,按需求改端口和监听地址就行了,如果嫌麻烦或者是在网站与数据库在同一个服务器上可以把 postgresql 的 SSL 选项关掉。 创建数据库与新增用户 首先进入 postgresql 的控制台 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; 按照这个流程 postgresql 应该是完全安排好了 Redis安装redis 与一般的 sql 数据库不同,redis 是一种键值对数据库,而且全部在内存里,说以数据查询就很快了,通常用来作为缓存,据说某售票网站就是用的 redis。 在 ubuntu/debian 系列的系统里安装 redis 也是十分方便的基本上可以说是开箱即用: 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 对 default.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; } 改完了看一下 nginx -t 有没有问题,没有问题就 nginx-s reload 重新加载新的配置文件。 编译完成之后进行数据库的初始化 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,树莓派上的 postgresql 内存占用小于 qbittorrent。 目前境内网络上的 misskey 实例很少,去中心化的社交网络也是以 mastodon 为主(同样也很少),但是 misskey 类的具有 ActivityPub 协议的是可以跨实例交互的,所以 misskey 适合小圈子的圈地自萌与熟人茶馆…… ![]() B站专栏对代码的排版不是很友好,有些命令在专栏页面直接复制可能会出问题,可以到 https://dogcraft.top/archives/145/ 去看与复制 Github上安装文档地址(英文):https://github.com/syuilo/misskey/blob/develop/docs/setup.en.md ![]() github上的效果图: ![]() 最后放几张我搭建的手机端效果图 ![]() ![]() ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |