技术小白建站日志(一)——建设个人Mastodon实例时踩过的坑,修改字数,全文搜索,

首先,万分感谢奈奈 @neb 的建站指南(https://i.nebula.moe/posts/2019-09-13-mastodon/ ),让我这个完全不会编程的草履虫也依样画葫芦弄了个自己的站。然而因为本人的计算机水平实在停留在草履虫水平,所以哪怕是照着教程也踩了很多坑。特此分享一下踩坑实录,谨供未来的勇士们参考。

1. 申请域名。

我自己凭着蜜汁自信四处比较了一下价格,在namecheap上申请了域名,但是因为实在太小白,namecheap上主动提供的DNS都没有删,导致第一次彻底失败,以至于后来老老实实又按照教程在godaddy上再买了域名一步一步走终于成功。后来我研究了一下,namecheap并非不行,我一开始不敢删掉它自动的DNS才是问题关键。这里建议大家,拿到Namecheap域名之后,把里面的所有DNS全部删干净再操作。

从现在的角度而言,我觉得Namecheap可能是比Godaddy更好的选择。一方面它比较便宜,另一方面它免费提供了WHOIS的安全服务(在Godaddy上需要收费)。

(而且Godaddy对我强制要求了两步验证……还特地为此下了一个手机两步验证软件。)

2. 邮件服务

这个坑是我耗时最长的坑,也是最让我翻白眼的。不知道是不是用了VPN的缘故,奈奈文中提到的Sendgrid我刚一注册就禁止我登录,换了好几个邮箱都不管用;后来其他站长推荐的Sparkpost,本来验证得好好的,没过几分钟就把我域名屏蔽了。发邮件去问,对方说因为.xyz域名被滥用所以一律不支持。本来还想争取一下,结果对方因为我使用vpn的地址不一致直接停用了我的账号,在我解释一番之后告诉我:对不起,不提供中国客户服务。——行吧!最后使用了Mailgun才顺利通过。后来又发现Mailgun在3个月之后会开始收费,于是改用Zoho免费版

Zoho在这里设置:https://mailadmin.zoho.eu/cpanel/index.do#domains/adddomain

设置完毕后,需要你创建一个用来发邮件的邮箱,设置相应密码。首先需要保证你自己能够用这个邮箱发邮件!

然后下一步再在Mastodon环境设置,设置参考(文中的smtp.zoho.com要改成smtp.zoho.eu):https://www.reddit.com/r/Mastodon/comments/c5er7m/smtp_setup_help_please/

我的设置模板:

SMTP_SERVER=smtp.zoho.eu
SMTP_PORT=587
SMTP_LOGIN=noreply@pullopen.xyz    #你在账号内设置的邮箱
SMTP_PASSWORD=密码
SMTP_AUTH_METHOD=plain
SMTP_OPENSSL_VERIFY_MODE=none
SMTP_FROM_ADDRESS=noreply@pullopen.xyz      #你在账号内设置的邮箱

有大佬提到Yandex和Gmail的邮件服务。Yandex我试过没成功,可以试试。

顺便提一个在验证域名时我踩过的非常小白的坑。许多邮件服务提供的验证方式,在host一栏都是带你自己域名的,在填到namecheap或者godaddy的DNS中时需要把你自己的域名去掉,仅留前面的前缀即可。(比如在Mailgun的host一栏会显示【pic._domainkey.你的域名】,填进godaddy时只要填【pic._domainkey】就可以。如果和你域名一样就填【@】。)这个坑比较白痴,不过也许有些人也会犯这个错误。

3. Digital Ocean

这个坑也是踩得我没脾气——在此对大家表示:注册时会让你验证付款方式,这时最好不要用Paypal——我用PayPal直接锁账号,连操作的机会都不给。我连锁两个账号并且申请解锁也不通过之后没办法只好申请第三个账号用信用卡,然后估计是因为ip或者cookie的缘故发现我申请多账号,要求我拍摄护照/身份证进行验证——真是不想提的遭遇。(但是很奇怪的是朋友用Paypal就没问题,也有人表示只要是Protonmail就会要求验证。)

水平硬气一点就到别家服务器去了,而我之所以还和Digital Ocean折腾,也就是看中了它的一键设定Mastodon包。否则有技术条件的朋友完全可以考虑按照官方文档自己设置,其实上手了以后也不算很难。

另外值得注意的是,在填写billing地址的时候,如果不愿意照实填写,请注意避开这些国家:https://www.digitalocean.com/docs/billing/taxes/ 在这些国家除了服务器费用之外还需要缴纳一定税款。

4. 配置Mastodon

这里按照奈奈的操作步骤来即可。一个不值得推广的经验就是……我一开始卡在邮件服务过不去的时候想着个人站干脆就不设置邮件服务了,结果就是设置好了站长账号之后……不知道它生成的随机密码是什么……然后点忘记密码才意识到收不到邮件。

不过有一个解决方法,可以后台用命令行再创建一个账号( https://docs.joinmastodon.org/zh-cn/admin/tootctl/ )。这时会显示密码,登录进去修改即可。然后可以把原先生成的账号删除。

DO一键生成版本为3.1.3,建议按照官方文档先更新到目前最新版本,再进行之后的魔改。因为等你熟悉了魔改,也多少熟悉了一些git命令。魔改之后升级的步骤会略有不同,具体会在日志(四)中提到。

5. 挺管用的基础小白操作

(有一点点基础的都不用看)

su - mastodon  #转至mastodon用户
exit     #转回root用户
cd 文件夹名     #转到文件夹

systemctl restart mastodon-sidekiq       #重启后台worker
systemctl reload mastodon-web            #重启web进程

systemctl restart mastodon-streaming     #罕见情况下,streaming API服务也会被更新并需要重启

free -h       #看内存 
df -h     #看储存 
ls -a      #列出所有文件夹及文件名

6. 修改字数

请注意:在这一步及开启全文搜索之前最好先开启SWAP,否则很容易爆内存出错!!!

开启SWAP的教程:https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04

*这里正确的操作应该是,首先开SWAP,保证内存+SWAP达到4G,然后按照这里的模板,在live文件夹里用nano命令修改这三个文件,然后

RAILS_ENV=production bundle exec rails assets:precompile     #precompile
exit
systemctl restart mastodon-sidekiq      #重启
systemctl reload mastodon-web

这样就可以成功了。

而我当时的失败主要是因为没开SWAP导致。在此仅留一个失败日志:使用了 @bgme 的脚本:https://bgme.me/@bgme/101707666673270349 第一次上限改成10000之后显示precompile失败,后来再改就一直显示nothing to do。然后按照 https://things.bleu255.com/runyourown/Mastodon#admin_resources 教程用nano命令逐个修改文档,会发现其实文档里的字数已经改成了10000,对外依旧显示500;而第三个文档(app/serializers/rest/instance_serializer.rb)没有改,按照说明改了之后重新precompile依旧显示nothing to do。

*注:这个时候正确的解决方法应该是清除precompile缓存:

RAILS_ENV=production bundle exec rake tmp:cache:clear

后来我的傻瓜操作是干脆再运行一次脚本,ORIGIN_CHARS=10000,MAX_CHARS=5000,这时因为我开了SWAP,所以precompile成功,字数也成功地改成了5000。

7. 全文搜索

按照官方文档操作后,显示启动,但是搜索结果一直为0。

后来在 @star 的帮助下排查错误,主要是2G内存不够的原因(当时我没有开SWAP)。找到 /etc/elasticsearch/jvm.options 这个文件 最开头有个 -Xms512m -Xms1g 这种类似的参数,改成 -Xms384m 后保存重启ElasticSearch,成功。

(排查:ps -ef | grep elas 如果显示只有1行,则Elasticsearch进程没有启动。systemctl status elasticsearch 可看有无报错。)

8. 一些其他的CSS改造:

https://pullopen.xyz/custom.css

↑本站css,分为以下几个部分:

  • 放大emoji
  • 拉宽高级web模式以适应屏幕【推荐】
  • 长图补丁(鼠标放上去放大长图)【强推,建议每个站都可以装一个】
  • 我自己比较喜欢的主题(后被我用可选主题代替,加上了@dmonad的猫耳主题。)
  • tag高亮显示

主题可以参考 https://userstyles.org/styles/browse?search_terms=mastodon&type=false ,复制CSS代码(去掉开头地址和结尾的“}”)

改完记得ctrl+shift+r强制刷新。

最后,万分感谢 @stand @kishinami@digforfire 还有文中各位站长大佬们提供的帮助!

下一步计划可能就是在本站内存快撑不住的时候,设法让本站的媒体储存上云。现在能苟的时候还是先苟一下,能省一点是一点(躺平)——其实也是因为,我看不懂那些操作步骤……

发布者:Pullopen

当我伸出手来,总希望能抓住些什么,不至于落入对空虚无尽的恐慌之中。

One thought on “技术小白建站日志(一)——建设个人Mastodon实例时踩过的坑,修改字数,全文搜索,

  1. 我觉得邮件服务不如使用一些主机商提供的邮件套餐,不会有那么多莫名其妙的风控
    比如我就被mailgun风控过,还要提交项目信息这种东西

    Liked by 1 person

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 登出 /  更改 )

Google photo

您正在使用您的 Google 账号评论。 登出 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 登出 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 登出 /  更改 )

Connecting to %s

在 WordPress.com 上创建您自己的网站
立即开始
%d 博主赞过: