Misskey——自建一个去中心化社交平台

成果展示

前言

微博、推特(X.com)这样的社交平台,你或许早已习以为常。在中心化平台上,我们无法掌控自己的数据;一旦平台倒闭、变质或被收购,用户只能被动接受。如果我们追求自托管、去中心化、隐私和自由,又或者单纯想弄个朋友之间的私密的社区,有没有别的选择呢?答案或许是 Misskey —— 一个基于 ActivityPub 协议的去中心化开源社交平台。不同于推特,misskey不是单一的服务,而是一个一个实例组成的分布式网络,可自定义程度很高,最重要的是,你可以随时删除、导出、转移数据,可以赋予你真正的数据主权

Tips:想要使用Misskey不一定要自建实例。你可以前往这里查看Misskey服务器列表,加入自己喜欢的服务器(当然,每个服务器都可以和其他服务器联通,除非关闭了联合)。如果确实有自建需求,且有精力、愿意维护下去,那就继续看下去吧!

准备工作

必须:

1、一台服务器(至少2核、1.5GB空余内存,推荐使用国外以及港澳台服务器)

2、一个域名(选定后一定不要更换!

3、Docker环境

非必须:

1、对象储存OSS

2、SMTP发件服务器

3、Turnstile、reCATPCHA等人机验证服务

不知道在哪里购买服务器?推荐雨云,价格可接受,操作方便,开箱即用。

我们先为misskey创建一个目录吧,这里以/opt/misskey为例。

mkdir /opt/misskey

cd /opt/misskey

克隆仓库

让我们先克隆一下misskey的仓库吧。

git clone -b master https://github.com/misskey-dev/misskey.git

完成!接下来进入目录,并将工作分支切换到master:

cd misskey

git checkout master

设置

先将仓库中的示例配置复制到正确位置

cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp ./compose_example.yml ./compose.yml

首先要更改的是compose.yml。

如果需要mcaptcha、meilisearch,可以选择取消注释,这里不再赘述如何配置。

需要注意的是web里面的ports配置,这决定了以后反向代理用什么端口,务必按照自己需求修改,比如我选择3030端口。

接下来修改的是config/default.yml。

除去注释,首先映入眼帘的是url。还记得准备工作里要求准备的域名吗?请以https://你的域名 的形式替换https://example.tld/,就像这样:

接下来需要配置的是数据库。

接下来是/.config/docker.env

很好!配置起来也不算难吧~

接下来,我们来构建docker镜像并初始化吧!

构建镜像与初始化

*经测试,这一步需要消耗大量资源,构建过程中会生产10GB+临时文件,且会占用大量CPU资源,还有可能中途卡住。如果中途日志停滞,请按Ctrl+C停止并再次启动,否则会持续占用资源。构建前如果可行,建议关闭所有其他服务。

运行sudo docker compose build开始构建镜像吧。

稍安勿躁,如果看到这个界面,就说明构建完成!这里我花了500秒的时间,如果服务器剩余资源较少可能会花费更长时间。

好了,构建完镜像后,我们就要来初始化数据库了。

执行sudo docker compose run --rm web pnpm run init

docker会先拉取镜像

接下来就是正式初始化数据库,如果出现数据库连接失败的报错,大概率是1、数据库信息填错了 2、没有构建镜像

不错,初始化结束!这可比构建时间短多了

好耶!到这里,你崭新的misskey实例已经基本完成了所有搭建步骤!接下来,我们来做最后的处理吧~

运行misskey、配置反向代理

距离看到自己的劳动成果只有几步....

执行sudo docker compose up -d

接下来,让我们清理一下构建缓存

输入docker builder prune,并稍等片刻

清理完成

部署结束!不过先别急着观赏成果,我们还要将misskey“绑定”到域名上。

以1panel为例(宝塔面板同理),我们创建一个反向代理网站。

接下来在域名服务商(nameserver提供商)那里添加一条指向服务器的A记录,比如这样。

接下来去面板里申请一个ssl证书,这里不再赘述。

配置完成:

更新Misskey的方法

git stash
git checkout master
git pull
git submodule update --init
git stash pop
sudo docker compose build
sudo docker compose stop && sudo docker compose up -d

初始化misskey

访问域名,还是初始化你的misskey实例吧!

先填写基本信息

点击"下一个"

按照向导填写即可,我们这里名称填写loveneko,选择小圈子服务器,100人以下,加入Fediverse,并使用我自己的信息作为管理员信息。

填写完成后点击使用此设置。

辛苦了,设置已完成!

点击开始,就可以进入实例了!

到这里,misskey的基本配置就完成了!完全可以开放给朋友使用了~

基本操作

接下来,进入控制面板,我们来学习一些基本管理操作。

点击这里生成邀请码,适用于不开放注册的实例

在这里批量上传自定义表情符号,可以在发帖时、聊天时、甚至在昵称中使用

在这里进行服务器常规设置,比如设置名称、简介等

在这里设置SMTP邮件服务器,一般用于发送注册验证邮件和通知邮件

在这里设置对象储存,用于储存用户网盘里的文件,如果不配置则使用本地储存

在这里配置人机验证服务,用于注册、登录时验证,推荐使用Turnstile或reCAPTCHA

结语

到这里,你崭新的misskey实例就搭建完成了!恭喜!

misskey的乐趣不仅在于社还在于其去中心化的设计,可以试试关注别的服务器的用户哦!

比如,前往https://你的misskey实例域名/@leonxie@catpost.link,点击关注,就可以在时间线里看到我的帖子了,即使我没有在你的实例注册账户!甚至,你还可以关注其他Mastodon实例的用户!

作为管理员,还有很多玩法等着探索,misskey的可自定义程度可比推特、微博这类平台高多了。

最后还想提醒大家,如果真的要开放注册,还需要量力而为哦,如果服务器撑不住就不好了。杂七杂八的用户进来也可能造成很多问题,比如R18泛滥,所以也务必制定好规则,随时使用你的禁言权限哦。

如果这篇文章帮到了你或者遇到问题,欢迎在评论区留言,这是对我最大的鼓励与支持!谢谢!


Misskey——自建一个去中心化社交平台
https://www.leonxie.cn/archives/misskey-deploy
作者
LeonXie
发布于
2025年09月06日
更新于
2025年09月06日
许可协议