大家好,我是羊刀仙~
本期带来的是一个开源去中心化微博平台——Misskey的部署教程,至于为啥搞这个,就是尝试了一下,感觉挺好玩就分享一波。
主要特征
Misskey是一个免费开放的项目,任何人都可以使用Misskey自由创建服务器,因此互联网上已经发布了各种服务器。另一个重要的特点是 Misskey 它实现了一种名为 ActivityPub 的去中心化通信协议,因此无论选择哪个服务器,都可以与其他服务器上的用户进行交互。这就是为什么它被称为去中心化,它与 推特 等其他服务有根本的不同,后者由单个运营商在单个 URL 下发布。主要主题、用户组、语言等因服务器而异,找到适合自己的服务器是乐趣的一部分(当然,创建自己的服务器也很有趣)。
Misskey 的主要特点包括:
去中心化:每个用户可以运行自己的实例,这样可以保证数据的所有权和隐私。
丰富的功能:支持动态发布、评论、点赞、分享等社交功能,还包括标签、群组、私信等。
高可定制性:用户可以自定义界面、功能模块,甚至可以编写插件来扩展 Misskey 的功能。
联邦化:Misskey 支持与其他去中心化社交网络(如 Mastodon)互通,可以与更多用户互动。
我的个人实例,大家可以进去体验试试:https://ydxian.xyz 账户/密码:guest/ydxian666
官方实例列表,也可与我们自己搭建的互通,但是这期比较懒就没进一步搞https://join.misskey.page/zh-CN/instances
Docker部署流程
教程理论上全平台通用,包括群晖、威联通等NAS设备。
通过SSH访问服务器或NAS:
ssh username@nas_ip
依次输入以下命令:
mkdir -p /share/Data/misskey # 准备docker目录
cd /share/Data/misskey # 进入刚创建的目录下
chomd 777 ./* # 赋权
mkdir config # 创建配置文件目录
cd config # 进入该文件目录下
vim docker.env # 配置环境文件
图示如下:
将以下内容复制并粘贴进去:
# db settings
POSTGRES_PASSWORD=example-misskey-pass # 可自定义,与下面一致
POSTGRES_USER=root
POSTGRES_DB=misskey
配置完毕后,英文状态下按esc
,然后同时按SHIFT
+:
,输入wq
并回车,保存退出。
接着输入以下命令:
vim default.yml
将以下内容复制并粘贴进去:
# Misskey configuration
url: https://19960509.xyz # 改成自己的反代域名
port: 9876 # 与下文中端口号一致
db:
host: db
port: 5432 # 不需要改
db: misskey
user: root
pass: example-misskey-pass # 可自定义,与上面一致
redis:
host: redis
port: 6379 # 端口不会暴露,因此不必修改
id: 'aid'
如下图所示:
配置完毕后,英文状态下按esc
,然后同时按SHIFT
+:
,输入wq
并回车,保存退出。
接着上面输入以下命令:
cd .. #返回到上级 misskey目录下
vim docker-compose.yml
将以下代码修改后粘贴进去:
# Misskey minimal deploy config
version: "3"
services:
web:
restart: always
image: misskey/misskey:latest
container_name: misskey_web # 容器名,为了方便管理,可以自行修改
links:
- db
- redis
ports:
- "9876:9876" # 与上文中端口号一致
networks:
- internal_network
- external_network
volumes:
- ./files:/misskey/files # 用户上传到本地的文件,如果一开始就接入外部存储(如wasabi或是AWS S3)可以忽略这块配置
- ./config:/misskey/.config:ro # 用于映射配置文件,设定为只读即可;
redis:
restart: always
image: redis:latest
container_name: misskey_redis
networks:
- internal_network
volumes:
- ./redis:/data # redis数据库的数据文件夹映射,创建后默认在 ./redis 文件夹中
db:
restart: always
image: postgres:15-alpine
container_name: misskey_db
networks:
- internal_network
env_file:
- ./config/docker.env # 需要使用配置文件中设置的 Docker 环境变量
volumes:
- ./db:/var/lib/postgresql/data # 主数据库的数据文件夹映射,创建后默认在 ./db 文件夹中
networks:
internal_network: # 内部网络
internal: true
external_network: # 外部网络
具体如下图所示:
有的平台会中文乱码,无需理会。配置完毕后,英文状态下按esc
,然后同时按SHIFT
+:
,输入wq
并回车,保存退出。
以上步骤所有步骤全部完成后,接着在当前目录misskey
下依次输入以下命令:
docker compose run --rm web yarn run init # 初始化数据库
docker compose up -d # docker-compose 或 docker compose
等待一切结束后,便可进行反向代理工作。
部署建议优先海外VPS+海外域名,其次是国内VPS(强烈建议备案),最后才是NAS(不是太推荐)
反向代理
参考我们之前的文章:https://blog.ydxian.xyz/archives/npm
这里放几张配置截图:
IP这里,如果Misskey与反代服务在同一服务器也可填写172.17.0.1
一般是这个,或者输入ip addr show docker0
进行查询。否则就按照上图所示填写Misskey所在服务器的公网IP。
点击保存后,便可通过域名进行访问。
NAS部署建议使用Lucky进行反代,简单无脑:https://blog.ydxian.xyz/archives/lucky
具体使用
功能很多,创建的第一个用户是管理员用户。
登入后先如下图所示,设置开启MFM,这是Misskey的一大亮点:
文章开头的动态文字、表情特效全靠它~
发动态时,先输入一个$
,就会自动跟出各种样式模板:
因为篇幅问题,更多详细玩法可以参考这篇文章:https://akaito.xyz/post/misskey/#top
不过距今已经更新了非常多的版本,大家还是多多尝试自己开发吧!
评论区