Mastodon开源社区-一个去中心化的开源社区


Mastodon是一个基于ActivityPub的免费开源社交网络服务器,用户可以在其中关注朋友并发现新朋友。在Mastodon上,用户可以发布他们想要的任何内容:链接,图片,文本,视频。所有Mastodon服务器都可以作为联合网络进行互操作(一台服务器上的用户可以与另一台服务器上的用户无缝通信,包括实现ActivityPub的非Mastodon软件)!

 

Github-Mastodon

Mastodon是一个免费的开源社交网络程序,一个商业平台的替代方案,Mastodon的目标对象是基于Twitter的开源替代方案,当然同款替代的开源还有很多,比方说Misskey。
之所以推荐Mastodon是因为它比Misskey部署更适合初学者……另外相对于Misskey也轻量一点(两个占内存怪其实半斤八两,互相说对方不轻量)。

安装方式介绍 #

基本条件

  • linux(崭新的轻量……)
  • 配置不低于1H2G
  • 采用宝塔面板
  • 安装NGINX
  • 安装Docker(采用容器部署)
  • 域名/SSL证书
  • 电子邮箱

准备工作

我觉得有必要做好准备工作,第一是检查一下宝塔面板是不是装了 Docker\redis\postgreSQL 。第二是准备好域名,并提前将域名解析到服务器对应IP。第三是准备好邮箱的STMP地址和所需的登陆密码。第四是在防火墙打开3000、4000端口。然后就可以开始安装工作了……

第一步 检查Docker和Docker-compose

Docker管理器 在宝塔面板的 软件商店-运行环境 中安装。
通过 'docker-compose version' 和 'docker -v' 检测正确安装。
检查完成后拉取Mastodon镜像,可以在管理器拉取也可以使用ssh终端拉取,但一般来说采用命令行拉取总是成功率高一点(新手玄学)。

第二步 拉去Mastodon(长毛象)镜像

通过命令行拉去镜像和yml文件

mkdir -p /home/mastodon/mastodon  --创建文件夹
cd /home/mastodon/mastodon  --进入文件夹
docker pull mashirozx/mastodon  --拉取镜像
wget https://raw.githubusercontent.com/d1258zzz/mastodon/master/docker-compose.yml  --拉取YML

完成拉取以后进入配置环节。

第三步 配置Mastodon

1、先进入宝塔面板的 文件 管理器,进入 /home/mastodon/mastodon 文件夹。
2、右键-新建文件,命名为.env.production
3、在当前文件夹下进入 终端,用root权限运行 docker-compose run --rm web bundle exec rake mastodon:setup
4、进入配置环节↓

Your instance is identified by its domain name. Changing it afterward will break things.
Domain name: ⇤这里输入您准备给mastodon的域名。
Do you want to enable single user mode? (y/N)
一般来说都是N,除非自娱自乐,建议选Y(放心吧,选Y也是自娱自乐……)
Are you using Docker to run Mastodon? (Y/n)
你在用DOCKER运行Mastodon?显而易见……选Y
然后下面关于pgsql和redis的设置直接默认,一路回车就好
PostgreSQL host: db
PostgreSQL port: 5432
Name of PostgreSQL database: postgres
Name of PostgreSQL user: postgres
Password of PostgreSQL user:
Database configuration works!

Redis host: redis
Redis port: 6379
Redis password:
Redis configuration works!

Do you want to store uploaded files on the cloud? (y/N)
如果您需要将文件存储在您的对象中,可以Y,也可以N,一路回车吧,这都是不重要的细节。
Do you want to send e-mails from localhost? (y/N)
默认N,选也选N,一般没什么个人玩家自己搭一个STMP……

接下来就是之前准备好的电子邮箱STMP发送件密码要登场了,我按照网上的教程使用的126邮箱……,后来我又试了QQ的,也能成功,只是SMTP port要改,25是普通端口,443是SSL端口。

Do you want to send e-mails from localhost? No
SMTP server: smtp.126.com
SMTP port: 25
SMTP username: @126.com
SMTP password:
SMTP authentication: plain
SMTP OpenSSL verify mode: none
E-mail address to send e-mails "from": @126.com
Send a test e-mail with this configuration right now? Yes /可以选Yes测试,也可以N跳过,如果选了Yes,那就在下面填写你的收件邮箱(不要填写同一个)
Send test e-mail to: //测试邮箱地址

This configuration will be written to .env.production
Save configuration? Yes
Below is your configuration, save it to an .env.production file outside Docker:

以下内容很重要,它将被写入.env.production,这里有你的配置信息,将他复制下来备用!!!

Now that configuration is saved, the database schema must be loaded.
If the database already exists, this will erase its contents.
Prepare the database now? Yes
Running RAILS_ENV=production rails db:setup ...

这段一定要记得复制一下

All done! You can now power on the Mastodon server 🐘

Do you want to create an admin user straight away? (Y/n)
配置管理员账号
Username: 输入你的管理员账号……请牢记
E-mail: 输入你的电子邮箱地址……请牢记

Switching object-storage-safely from green to red because Redis::CannotConnectError Error connecting to Redis on localhost:6379 (Errno::ECONNREFUSED)

You can login with the password: xxxxxx此处是登陆密码!牢记!!
You can change your password once you login.

到最后出You can change your password once you login后,就(关闭终端前记得复制啊!账号密码~拍照也行)关闭或最小化终端,在当前文件夹(/home/mastodon/mastodon)新建文件,并命名为.env.production,把开始在终端复制的那段黏贴进来,保存关闭。

启动Mastodon

进入终端,输入
docker-compose up -d --启动Mastodon
chown 991:991 -R ./public docker-compose down docker-compose up -d --给相应文件夹赋权限。

配置NGINX

在宝塔面板 - 网站中 新建一个网站,域名填写之前给mastodon配置的域名,php选择纯静态,点 提交 创建。

然后进入 -网站 -设置 --配置文件中,将19行和28行(关键字- server_name )替换为 之前配置的域名。

将20和44行的/home/mastodon/live/public 改成/home/mastodon/mastodon/public (这个文件夹就是开始创建的那个)

接着去掉ssl证书部分内容的注释 #,路径填上你证书或密钥所在的绝对路径就OK了。
(偷懒小秘诀,直接申请SSL后,在宝塔SSL证书所在目录下找到证书位置>SSL证书目录:/www/server/panel/vhost/ssl/你的网站域名<,然后,粘过去……这样就不用手动更新证书了,和宝塔同步)

gitbub-mastodon/nginx.conf示例

最后重载入一下NGINX,理论上就可以访问自己的长毛象了~(反正我历经万难,总算是成功了)

体验

体验嘛……没啥体验,SNS就是社区,社区需要人气,没有人的长毛象,就是一个单机微博,其他还有更多的细致功能,我不会整,慢慢研究吧。

至于这个SNS的实际体验吧,就那样吧,反正我装好以后发现体验没有超过预想,哈哈哈哈。去中心化这个~只能说是分布式吧,中心化再怎么去~没有服务器承载程序都是吹牛,这又大又臃肿的SNS,安装也复杂,真心的,从入门到放弃~

去中心化,其实这就是一个伪命题,但不要在意这些细节。

 


MrdT Jan. 11, 2023, 12:04 a.m. 952 收藏文档