misskey搭建(docker) 持续更新中。。。
先上成果 您可移步猫与饵社区,首次加载较慢!如果您有任何实例账号,关注@wangkaixin@cat.wangwenzhi.online即可,
目前我的实例是开放注册的,因为有阿里云2000条邮件推送的免费额度,等额度用完就关闭注册!(哈哈,终极羊毛党~);
#1.什么是 Misskey
Misskey 是一个兼容 ActivityPub 协议的 Fediverse 短文社交平台。简单地说,它就像去中心化的 Twitter 或 微博。这些平台的“分布性”体现在:互联网上有许多服务器,运行着这些平台软件。这些服务器相对独立,而用户就注册在这些服务器(为讨论方便,把用户注册的服务器称为其的Homeserver)上,他们可以在服务器上发类似推文或微博的短文,体验和 Twitter 类似。然而,如果用户只能和 Homeserver上的人社交,那就太无聊了(当然,也不是不可以,后面会提到)。 因此,上述问题就引出了“联邦”的概念。在 Fediverse(联邦宇宙)中,各服务器之间使用统一的协议进行沟通,建立起了“联邦”关系。联邦关系让一台服务器可以将用户发的内容(有条件地)同步到网络中的其它服务器。这样,我可以在自己的服务器上关注其它服务器的用户,在我的时间线上看到他们发的短文,并评论、转发、点赞(misskey一般是回应)。甚至,我可以在全局时间线上看到所有和我的Homeserver联邦的服务器发来的内容(Misskey 世界称为 Note,对标 Twitter 的推文、微博的微博和Mastodon的嘟文)。 那么,为什么要离开 Twitter 或者微博这样的中心化的社交工具,而转而使用一个更复杂的方案呢?答案是显而易见的——为了掌握数据的控制权与规避平台对内容的影响。 通过去中心化社交,个人的数据的掌控权从 Twitter 或微博转移到了他们的 Homeserver。同时很多平台软件提供了方便的将 Homeserver 导出的工具,进一步让用户在各个 Homeserver 的迁移成为了可能。同时,这些平台也让我们逃离推荐算法成为了可能,一定程序上避免了被动信息茧房的形成。一些常见的实例包括: Misskey.io:Misskey社区最大实例,在这些实例的“本地”(即所有本服务器内的用户的动态)会和这些主题强贴合,适合对这些主题有兴趣的人加入。在足够大的实例上,有很多人会检查自己Homeserver的本地时间线。以上科普来自https://chariri.moe/archives/761/misskey-distributed-sns-selfhosting-1-of-3/这篇文章,这位博主是个很有意思的人,感兴趣的可以看看他。
2.搭建环境准备
外服服务器一台,配置最低2u2g(再低了是真的折磨人),笔者是华为云活动时入的¥99一年的香港vps,外服域名一个,dns需要支持WebSocket 协议,misskey是通过websocket通信的。misskey需要ssl支持,所以需要要申请ssl证书,笔者这里使用的是著名活菩萨cloudflare。服务器需要git、docker-ce、 docker-compose,我使用的是nginx反代,所以需要nginx 。也可Caddy替代nginx,Caddy可以自动获取和续订 Let's Encrypt 的 SSL 证书,非常好用。
# 3.部署
官方文档https://misskey-hub.net/docs/install/docker.html
笔者使用用docker安装,非常简单。
git clone -b master https://github.com/misskey-dev/misskey.git //拉取
cd misskey
git checkout master
这里是笔者拉取后的项目结构。接着进入.config文件夹备份(复制操作)docker_example.yml和docker_example.env
cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
编辑default.yml,这个配置文件中有postgresql和redis的相关配置,一般情况下不用动,只需将url改成你自己的,如下:
这个文件中还能配置运行端口号,默认3000,如果你的服务器占用了3000,请修改一下。
docker.env中只配置了postgresql的环境变量,一般情况也不需要动。
切回misskey目录,执行
cp ./compose_example.yml ./docker-compose.yml
看一下compose配置 可以看到web程序挂载了一个files的目录
记住这个files目录,一会儿构建完了要改权限,不然上传文件会因为容器没有权限报错。接下来我们就要基于dockerfile和compose.yml构建镜像了
docker-compose build
构建完成后执行一些初始化数据库的操作
docker-compose run --rm web pnpm run init
接下来启动misskey程序,第一次先不要后台(-d),最好是实时的查看一下日志
docker-compose up
此时服务已经起来了,我去vps防火墙开放了3000端口后,使用ip+端口号的方式访问是502bad,
于是我将二级域名misskey.wangwenzhi.online解析到vps,此处并且配置了如下的nginx server
#misskey
#WebSocket 支持:
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;
listen [::]:443 ssl;
server_name misskey.wangwenzhi.online;
ssl_certificate /etc/nginx/cert/public.pem;
ssl_certificate_key /etc/nginx/cert/private.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
client_max_body_size 80m;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_redirect off;
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;
# For WebSocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
重启nginx,访问https://misskey.wangwenzhi.online,第一次加载是需要创建管理员账号的:
我并没有配置初始化密码,所以不用填写,下面是创建管理账户后的跳转页面:
可以设置也可以跳过,最好是上传一下头像试试,此时必然是报错的,我们先返回命令行,ctrl+c退出,然后执行
chown -R 991:991 files
然后执行后台
docker-compose up -d
启动后,重新访问https://misskey.wangwenzhi.online,可以发现,上传头像成功了
个人设置暂且不说,控制面板中,邮箱的话,可以使用sendgrip或者ali的邮件推送,都有免费额度。接下来就是您自己愉快的探索了~
至此,配置部署全部完成!
在接下来的更新中,探索一下源码和数据库(持续更新中。。。。)
如果有什么疑问和问题需要,或者是共同探讨技术,您可以访问王开心聊天私服查找用户名 王开心申请 好友即可,笔者随时在线!
谢谢你的阅读。
- 本文标签: Linux misskey postgresql
- 本文链接: https://www.wangwenzhi.top/article/26
- 版权声明: 本文由王开心原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权