技术小白如何搭建Mastodon实例(不再推荐)

没有IT背景的技术小白,如何搭建一个Mastodon实例? Posted by Mastodon搭建指南 on July 19, 2020

注意:本文介绍的DigitalOcean一键安装,要求只能在DigitalOcean上注册。DigitalOcean本身也是比较老牌的服务器提供商,但价格不算优惠,且近来时有超售、压缩性能等现象,可能会影响用户体验,因此请仔细考虑后再选择。另外,DO的一键安装版本为3.1.3,而Mastodon最新版本已经为3.4以上,后续升级和维护对新手并不容易,因此不再推荐本方法,请从第3步开始移步Docker搭站方案


首先,如果你点开了这个博客,那我相信你已经对Mastodon及整个Fediverse的概念有了一定了解,并且在一定程度上理解了这种去中心化的社交模式为何能够最大程度地避免资本剥削,本文在此不再赘述。引用奈奈一句通俗的话来说就是:

微博、推特:认平台为爹。

Mastodon:有几千个爹可以选,还能自己当爹。

而本文所要讲的内容就是:如何当自己的爹? 如何做自己社交网络的主人?

——相信我,我在搭站之前接触过最“高级”的计算机程序是Excel而已。如果我都能成功,那你一定也能。

本文重点参考了奈奈的一键安装Mastodon,和我自己搭站过程中的一些经验,希望能给大家带来一些帮助。

另外,O3O站长也详细撰写了一本 Mastodon搭建参考手册,从购买域名开始进行了极为详尽的指导,建议大家参考。

同样推荐新手的搭站方案还包括 Docker搭站方案,本站也包括详细教程,欢迎大家参考。

  

0. 准备

建站之前你需要:

  • 看得懂英文。

  • 最好能够拥有一张信用卡或者PayPal账号。(如果你只有支付宝账号也可以,但是选择会少很多。)

  • 最好能够拥有科学上网工具。(同样,没有也可以,但是很多网站打开会很慢。)

  • 最好能够拥有一个海外邮箱,如Gmail、Outlook、Yahoo、Protonmail.com、Mail.com等。请尽量不要使用126、qq或者sina等国内邮箱。

  • (如果您拥有Google Voice号码可能在接收验证码时更加方便,可以考虑一下万能的淘宝。这一步并非必要。)

如果没什么问题,那我们开始。

  

1. 购买域名

第一步是购买域名。

请注意,您一旦在某域名上搭建完毕,极难更改,请谨慎选择!

关于域名选择,在O3O站长的搭站指南中有更详细完善的步骤,请大家参考。

我个人比较推荐在NameCheap上进行购买,它会免费提供WHOIS个人信息保护服务,让你在购买域名时填写的个人信息不会被随意查询。另外它网站上域名的购买价格也相对比较便宜。支持PayPal和信用卡。

如果你没有PayPal或信用卡,那么Godaddy支持支付宝。

无论你选择哪家域名购买机构、购买何种域名,请都不要使用国内的域名注册商,也不要注册位于国内的域名,如.cn、.ren、.xin、.wang等。具体避雷列表请参考这篇博客

下面以NameCheap为例:

  • 打开网址,你会看到一个大大的搜索框: NameCheap开始界面

    在搜索框中输入你心中想要购买的网址。

    如果您吃不准要使用哪个后缀,可以打开这里,拉到下面的Complete TLDs List,选择“show more”比较所有域名后缀的价格。

  • 当你输入自己心仪的域名之后,可能会出现两种结果:

    1. 域名已经被占用。那你只好更换域名或者域名后缀,或者向域名拥有者提供你愿意购买的价格(不推荐)。

    2. 域名未被占用,恭喜你,可以进行下一步购买了!

  • 进入购物车: NameCheap购买界面

    • Domain Registration选择注册年限。

    • WhoisGuard在NameCheap上免费,请勾选。

    • Comfirm Order

之后会让你进入注册界面,注册之后选择付款方式(信用卡或PayPal),填写个人信息,不再赘述。(这里我同意奈奈,填写个人信息时请不要当老实人。)

  • 当你成功购买域名之后,进入Dashboard可以看到您账号下的域名。点击Manage,然后在页面上方选择“Advanced DNS”。

    Advanced_DNS

    在HOST RECORDS一栏你会看到一些系统自动生成的内容,全部删掉。下拉会看见MAIL SETTINGS,选择Custom MX,待稍后填写。

  

2. 邮件服务

可选的邮件服务有很多家,如Sendgrid、MailGun、Sparkpost等,各有缺点,如Sendgrid热爱锁账号,Sparkpost自动屏蔽.xyz域名、Mailgun可能收费(也有小伙伴说绑卡之后每月有一千多封免费额度)等。这里给大家推荐的是Zoho Mail。请注意,Zoho Mail免费方案可能无法应对短时大量的邮件请求,更适合小型站点,大型站点可以考虑Mailgun等其他邮件服务。

  

2.1 注册Zoho Mail

  • 打开ZohoMail

    选择Business Email,点击注册。 Zohomail注册

    点开之后它会显示一系列付费计划,不要管,往下拉,看到下图的“Forever Free Plan”,点击注册。 ForeverFreePlan

  • 进入后,填写你拥有的域名,注册,填写个人信息。设置你的邮箱名(如“admin@你的域名”),注册。

    注意:这里请不要用Google直接登录,否则你还需要自己设置密码,操作上会有些麻烦。

  

2.2 验证域名

注册完毕之后,会自动跳转让你验证你的域名,也可以在 这里,点击你在Zoho中添加的域旁边的验证图标 (!),进入验证设置向导。

  • 验证域名时选择 “TXT方法”

    回到NameCheap的Advanced DNS Setting,在HOST RECORDS那一栏点击Add New Record,选择TXT Record,“Host”如果你没有子域名的需求就填写“@”,“Value”填写Zoho提供的Value,TTL选择最小时间,确定。

    等待DNS生效,这可能要花费一些时间,你可以先把后面的MX记录、SPF、DKIM一起设置完毕。

  • 在设置MX记录时,在Namecheap中需要下拉到MAIL SETTINGS这一栏,选择Custom MX进行填写。(如果你在其他地方如Godaddy购买域名,那么一般直接在DNS设置里添加MX记录即可。)当你填写完一条之后,可以点击“Add New Record”继续添加。一般Zoho会要求你设置3条MX记录。TTL同样也选择最小时间。

    MX记录

  • 同上述方法依次设置SPF和DKIM,这两个都会让你在HOST RECORDS添加TXT Record,请按照要求填写。注意DKIM会让你在host填写【xxx】._domainkey,有些其他网站的设置向导会在后缀将你的域名也带上,填写的时候需要删除。

    DKIM设置

最后填写的结果,你应该有3个TXT记录和3个MX记录

等待一段时间后在Zoho进行验证,生效,域名邮箱设置成功!

您可以直接用您这个管理员邮箱进行邮件发送,也可以到用户详情中添加另一个专门用于发送注册邮件的邮箱并设置密码。

无论你用什么邮箱,请先测试一下,保证你本人能够通过这个邮箱发送邮件。

  

3. 购买服务器

在这一步,如果你在之后愿意使用Docker搭建站点(详见本站的Docker搭建指南,同样适合新手),或者跟着官方文档的一步一步用命令行搭建,那你可选的服务器商很多,如国人常用的Vultur、Digital Ocean,或者位于德国的Contabo、Hetzner等。你可以参考主机测评网站)以及O3O站长搭站指南

同样,无论你选择哪家服务器,请都不要使用位于国内的服务器,最好不要选择国内的服务器提供商,否则你可能会面临无法与其他站点互联互通、甚至站点下线的风险。

而本文要介绍的是DigitalOcean一键安装,要求只能在DigitalOcean上注册。再次重申,DigitalOcean本身也是比较老牌的服务器提供商,但价格不算优惠,且近来时有超售、压缩性能等现象,可能会影响用户体验,因此请仔细考虑后再选择。另外,DO的一键安装版本为3.1.3,而Mastodon现今版本已经为3.4以上,后续升级对新手也并不容易,因此不再推荐本方法,请从这步开始移步Docker搭站方案

以下内容仅作为存档。


在注册DigitalOcean时我碰到了一个问题,就是注册后如果我选择使用PayPal,就会立刻锁定我的账号,但朋友并没有碰到这个问题,这可能与我PayPal账号地址与IP地址不统一有关。另外,可能会要求你通过第三方网站验证护照身份证信息,据说和使用Protonmail,同IP多账号,或者使用代理有关。

注册时,如果你不想填写真实的国家,请避开这些国家,这些国家会对你征收税费。

注册完毕后会要求你选择付款方式然后扣取一定数额美元。这只是验证你可以付款,事后会退还给你。

一切完毕之后,打开DO控制面板,右上角Create - Droplet,横栏中选择Marketplace搜索Mastodon,选择。

Droplet购买

下拉选择Plan。这里DO会默认把页面停在第二页(40刀/月),往前拉,就可以看到便宜的计划。对于个人实例,如果你不开全文搜索功能,那每月5刀足够。如果你要开启全文搜索或者有计划拉一些朋友,那推荐你选择每月10刀(1CPU,2G RAM)配置。当然,如果你选择不在DO而是其他服务商购买,还会看到更便宜且性能更好的选项。

DO_Plan

下拉,选择服务器地址,Authentication一栏你如果没有任何知识基础就选择Password,如果你已经知道SSH是什么也可以选择SSH(更安全)。点击Create。

  

4. 配置Mastodon

点开你刚刚生成的Droplet,你会在左上角看到你服务器的IP地址。 IP地址

复制,回到Namecheap的Advanced DNS Setting,在HOST RECORDS添加一个A Record,Host填写@(如果没有子域名需求),Value填写你服务器的IP地址,点击确定。

请注意:此时你的DNS Setting里除了你刚才亲自设置的内容之外,别的任何由Namecheap自动生成内容请都删光。

你可以使用Xshell等软件,通过输入密码等方式进行服务器远程控制(推荐)。或者你可以回到DigitalOcean,左侧选择Access,点击Launch Console。第一次登陆会让你输入用户名和密码。用户名为root,密码是你刚刚设置的那个。(如果忘了也可以在面板选择Reset Root Passward,会自动生成密码发到你邮箱。)

请注意,这里输入密码什么都不会显示,所以大胆输就行了。第一次登陆会提醒你修改密码。

改完密码之后,按照提示依次输入:

Domain Name: 输入你的域名

要不要把文件储存到云端?先填No,这个我们可以以后再设置。

然后配置邮箱。以Zoho为例:

SMTP server: smtp.zoho.eu
port: 587
user: 你第二步设置的邮箱名
password: 你第二步对该邮箱设置的密码
authentication: plain
OpenSSL verify mode: none(这两步可以按两下回车)
from: 你第二步设置的邮箱名

之后它会让你发一封测试邮件测试一下这个配置能否发送邮件,如果不对,可以修改邮箱配置。

其他邮件服务的SMTP设置可以参考这篇文章

之后是创建管理员用户(用户名和邮箱),创建证书(输入邮箱),完成。

至此,你的Mastodon实例已经建成啦!快打开看看吧!

  

5. 当你拥有了一个实例……

当你拥有了第一个实例,你接下来还能做什么?

首先,了解一些基本命令:

su - mastodon    #进入Mastodon用户
exit             #从mastodon用户退出,回到root用户
cd 文件夹         #进入文件夹。你对mastodon的设置操作一般都在mastodon用户的live文件夹中。
nano 文件名       #编辑文件。Ctrl+X可退出保存。
ls -a            #列出所在文件夹中所有的文件名(包括隐藏文件)

此外,如果你遇到了一些问题,有时候能通过重启解决:

systemctl restart mastodon-sidekiq
systemctl reload mastodon-web
systemctl restart mastodon-streaming       #偶尔需要

在你了解了这些基本命令之后

  • 首先我推荐的第一步,就是尽快设置SSH,较密码登录而言安全性更高。在Windows上你可以使用Xshell,Mac上可以选择Termius等等,可以自行搜索,都比在DigitalOcean上方便很多。

    SSH具体配置方法

  • 第二步,则推荐大家立刻设置SWAP(在root用户内操作)

    设置SWAP教程

    请让你的内存+SWAP至少达到4G以上。可以在root用户下通过free -h查看。

  • 第三步,我个人建议大家如果未来有魔改打算(如提高字数上限等),则最好先升级到官方最新版本v3.2.1(具体版本号请参见官方文档)。现行操作过魔改的小白朋友在升级到这一版本时,都多多少少出现了一些问题。可能与官方作了较大改动有关。

    在升级之前,请先su - mastodon进入mastodon用户,cd live进入live文件夹,用rm lib/tasks/digitalocean.rake删除这个文件,这是刚才帮助你初始设置的文件,但在未来可能会影响你的升级。

    如果你没有进行过任何魔改,那么请在开启了足够SWAP的基础上,参考官方的 升级教程进行升级。

  • 第四步,推荐大家可以使用Cloudflare加速,尤其对于DigitalOcean来说,大多数地区都可以通过Cloudflare获得速度提升的效果。大致步骤如下:

    Cloudflare官网注册账号,选择Add Website输入你自己的域名,Cloudflare会自动读取你的DNS记录并且要求你修改域名服务器(NameServer)。如果你是NameCheap上购买的域名,则点开你的域名,在Domain那一栏下面选择Custom DNS,填入Cloudflare提供的两个NameServer,静静等待生效即可。如果是其他地方购买的域名,Cloudflare也提供了相应教程,通常非常简单就能完成。

    NameCheap设置

    生效之后会有邮件通知,这时打开Cloudflare,进入你的域名。

    点开“速度/Speed - 优化”,下图Auto Minify的三个勾勾请勿选上。

    AutoMinify

    注意(2020-12-01更新):Auto Minify在3.3.0版本之后会影响网页打开,请勿勾选!

    同时请注意Rocket Loader™这个开关,请务必确保它关闭,否则你的Mastodon会变成白屏。

    RocketLoader

    打开SSL设置,将模式改成Full/完全:

    SSLSetting

    现在请打开测试,您的网站速度有没有变快?每个人每个地区情况可能不同,对我而言确实有肉眼可见的速度提升,对于各位可能需要测试。如果速度反而变慢,可以直接在Cloudflare的DNS设定中将橘色的云朵按灰,即可取消代理。

  更详细的设置可以参见 O3O搭站指南

  • 无论如何,请仔细阅读 官方文档,里面的一切都很有用。

  

在进行了这几步之后,我相信你对一些操作也逐渐熟悉,可以开始进行其他改动,比如使用Git在编辑器中提交和推送自己的改动、开启全文搜索、修改字数上限、媒体上限、投票上限、添加主题、媒体文件上云、添加备用域名等等。这些,在未来的博文中会详细写出。

现在,将你原先账号的关注对象都转移到自己站内,在自己的站点愉快享受Mastodon的冲浪生活吧!