侧边栏壁纸
博主头像
是羊刀仙啊博主等级

闲不下来!

  • 累计撰写 84 篇文章
  • 累计创建 31 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

私有但能互通,快速搭建一个去中心化交流平台Misskey

羊刀仙
2024-06-14 / 0 评论 / 0 点赞 / 213 阅读 / 5061 字
温馨提示:
本文最后更新于 2024-06-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

大家好,我是羊刀仙~

本期带来的是一个开源去中心化微博平台——Misskey的部署教程,至于为啥搞这个,就是尝试了一下,感觉挺好玩就分享一波。

QQ20240614-151355-HD.gif

主要特征

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 

1-azln.png

依次输入以下命令:

mkdir -p /share/Data/misskey # 准备docker目录

cd /share/Data/misskey # 进入刚创建的目录下

chomd 777 ./* # 赋权

mkdir config # 创建配置文件目录

cd config # 进入该文件目录下

vim docker.env # 配置环境文件

图示如下:

2-uguz.png

将以下内容复制并粘贴进去:

# db settings

POSTGRES_PASSWORD=example-misskey-pass # 可自定义,与下面一致
POSTGRES_USER=root
POSTGRES_DB=misskey

3-xjnq.png

配置完毕后,英文状态下按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'

如下图所示:

4-tata.png

配置完毕后,英文状态下按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: # 外部网络

具体如下图所示:

5-rzpc.png

有的平台会中文乱码,无需理会。配置完毕后,英文状态下按esc,然后同时按SHIFT+:,输入wq并回车,保存退出。

以上步骤所有步骤全部完成后,接着在当前目录misskey下依次输入以下命令:

docker compose run --rm web yarn run init   # 初始化数据库
docker compose up -d # docker-compose 或 docker compose

7-tovo.png

等待一切结束后,便可进行反向代理工作。

部署建议优先海外VPS+海外域名,其次是国内VPS(强烈建议备案),最后才是NAS(不是太推荐)

反向代理

参考我们之前的文章:https://blog.ydxian.xyz/archives/npm

这里放几张配置截图:

8-zfvw.png

9-zsuz.png

IP这里,如果Misskey与反代服务在同一服务器也可填写172.17.0.1一般是这个,或者输入ip addr show docker0进行查询。否则就按照上图所示填写Misskey所在服务器的公网IP。

点击保存后,便可通过域名进行访问。

NAS部署建议使用Lucky进行反代,简单无脑:https://blog.ydxian.xyz/archives/lucky

具体使用

功能很多,创建的第一个用户是管理员用户。

登入后先如下图所示,设置开启MFM,这是Misskey的一大亮点:

16-zdyr.png

文章开头的动态文字、表情特效全靠它~

18-itdd.png

发动态时,先输入一个$,就会自动跟出各种样式模板:

17-rvob.png

因为篇幅问题,更多详细玩法可以参考这篇文章:https://akaito.xyz/post/misskey/#top

不过距今已经更新了非常多的版本,大家还是多多尝试自己开发吧!

0

评论区