misskey

Misskey 简介

相信当你能找到这篇文章并赏脸点进来的时候已经对 Misskey 这类去中心化的微博客平台有一定了解了,网上也有很多相关介绍,这里就不再赘述,直接引用下 Misskey 官方的介绍:

Misskey is an open-source and distributed platform for microblogging. Development was started in 2014 by syuilo in Japan. It features an abundance of features such as Drive or Reactions as well as a very high UI customizability.

Misskey 主要由一位日本的二次元开发者 syuilo 建立并主要维护(Misskey 账号)的项目,和其它流行的 Mastodon(长毛象)、Pleroma 等平台一样,都支持 ActivityPub 协议,这意味着基于他们创建的每个实例之间都可以相互交互,形成一个去中心化的社交网络。

搭建 Misskey

项目地址:https://github.com/misskey-dev/misskey

官方文档中介绍了三种安装方式,包括使用 Docker 部署,脚本安装或者手动安装,如果你的服务器配置足够的话,推荐参照官方文档进行本地构建,也很方便简单。

然而我用的一台吃灰的 1G 内存的 VPS 进行测试,对它不是很有信心,几乎可以预见会爆内存。Docker Hub 上搜了下发现官方也有发布预编译好的镜像文件,因此便尝试直接使用官方镜像启动。

* 如果你需要安装 Docker,可以参考我前面写的文章:Debian 系统安装 Docker 教程,下列操作默认以 root 用户进行演示。

1. 其实也只需要将官方的 docker-compose.yml 文件稍作修改即可:

version: "3"

services:
  web:
    # build: . # 注释本地构建
    image: misskey/misskey:latest # 使用官方镜像
    restart: always
    container_name: misskey_web
    links:
      - db
      - redis
    ports:
      - "127.0.0.1:3000:3000"
    networks:
      - internal_network
      - external_network
    volumes:
      - ./files:/misskey/files # 用户文件映射目录
      - ./config:/misskey/.config:ro # 配置文件映射目录

  redis:
    restart: always
    image: redis:4.0-alpine
    container_name: misskey_redis
    networks:
      - internal_network
    volumes:
      - ./redis:/data # redis 文件夹映射目录

  db:
    restart: always
    image: postgres:12.2-alpine
    container_name: misskey_db
    networks:
      - internal_network
    env_file:
      - ./config/docker.env # Docker 环境变量文件路径
    volumes:
      - ./db:/var/lib/postgresql/data # 数据库文件夹映射目录

networks:
  internal_network:
    internal: true
  external_network:

2. 将上面的 docker-compose.yml 文件保存在合适的路径下(例如:/home/web/misskey/),然后进入该路径,新建用于存放配置文件的文件夹:

mkdir config

3. 进入 config 文件夹,需要准备两个文件:

  • 参照官方示例的 docker_example.env 文件,修改数据库相关信息后保存为 docker.env
  • 参照官方示例的 example.yml 文件,修改后保存为 default.yml,主要需要修改下列内容,其中数据库名和验证信息需要和上面 docker.env 中的一致。

    url: [你的域名]
    
    db:
      host: db
      port: 5432
    
    # Database name
    db: misskey
    
    # Auth
    user: [数据库用户]
    pass: [数据库密码]
    
    redis:
      host: redis

4. 初始化数据库:

docker-compose run --rm web yarn run init

5. 运行项目:

docker-compose up -d
# 停止运行
# docker-compose stop

6. 配置 Nginx 反代,完整的文件可以参考官方示例,这里只贴出反代部分:

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_http_version 1.1;
    proxy_redirect off;

    # If it's behind another reverse proxy or CDN, remove the following.
    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;

    # For WebSocket
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
}

7. 更新,直接 pull 然后重启启动即可:

docker-compose pull
docker-compose up -d

总结

这类开源的去中心化社区对于喜欢社交,特别是对于在意个人隐私的朋友来说,确实很有吸引力。可能是我个人不喜欢社交软件,微博、faceebook 这些多年前就注销了帐号,也几年不看不发朋友圈了,搭建好把玩一晚上之后竟觉得索然无味,也可能是太懒了🍜,懒得去维护,所以存活不到一天就直接删库跑路了,感觉就很可惜。但可以预见的是,说不定哪天就会打脸又开始折腾 (°°)~

misskey

当然,我是非常支持这类去中心化的平台,保护隐私,找回自由在如今的环境下是一件很重要却几乎不可能事,但这并不妨碍我们期盼向往。Misskey 是一个很不错的平台,开发者也很有活力,如果你能在这上面找到自己的圈子,和一群志同道合的人谈天说地,那一定是件很棒的事情。