<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Mastodon/长毛象 — Fediverse中文论坛</title>
        <link>https://fediverse.eu.org/</link>
        <pubDate>Tue, 18 Aug 2026 08:05:48 +0000</pubDate>
        <language>zh</language>
            <description>Mastodon/长毛象 — Fediverse中文论坛</description>
    <atom:link href="https://fediverse.eu.org/categories/mastodon/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Mastodon 全文搜索中文优化手把手指南</title>
        <link>https://fediverse.eu.org/discussion/12/mastodon-%E5%85%A8%E6%96%87%E6%90%9C%E7%B4%A2%E4%B8%AD%E6%96%87%E4%BC%98%E5%8C%96%E6%89%8B%E6%8A%8A%E6%89%8B%E6%8C%87%E5%8D%97</link>
        <pubDate>Fri, 29 Apr 2022 04:18:29 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>iamthesenate</dc:creator>
        <guid isPermaLink="false">12@/discussions</guid>
        <description><![CDATA[<p><strong>注：此文写于2021.2.8, 适用于Mastodon v3.3.0, 其内容，包括文中涉及的一些服务版本可能已有变化，请使用时注意甄别</strong></p>

<p>因为<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fdocs.joinmastodon.org%2Fadmin%2Foptional%2Felasticsearch%2F">官方文档</a> 的全文搜索和中文优化部分写的稍微有些简略（aka 不能只靠复制粘贴完成），我补充一下有哪些缺失的东西。</p>

<hr /><p>在我的<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fthesenate.cc%2F%40iam%2F105492080254201489" title="原toot">原toot </a>基础上修改了一下格式后发布。</p>

<hr /><p>中文搜索优化需要安装两个Elasticsearch 插件  elasticsearch-analysis-ik 和elasticsearch-analysis-stconvert 但是文档里并没有说怎么安装。<br />
两个插件的github 界面写了安装方法可以<br /><code spellcheck="false" tabindex="0">./bin/elasticsearch-plugin install XXXX</code><br />
来安装，但是对于小白来说这条命令并不够。它需要你先找到bin/elasticsearch-plugin 的位置。<br />
我在linode 找到了<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwww.linode.com%2Fdocs%2Fguides%2Fa-guide-to-elasticsearch-plugins%2F" title="相关内容">相关内容</a>。</p>

<p>所以你需要的是<br /><code spellcheck="false" tabindex="0">cd /usr/share/elasticsearch/</code><br />
目录后输入<br /><code spellcheck="false" tabindex="0">bin/elasticsearch-plugin install XXXXXX</code><br />
XXXX 为上面的github 地址<br />
另外需要注意的是，插件的版本需要和你自己Elasticsearch 的版本一致，不然会报错。如果报错了，你就到两个插件的github page --&gt;Releases --&gt;tags 找到符合的版本号，然后右键.zip 文件--&gt; copy link address 代替上面XXXXX 部分即可。</p>

<p>两个插件装完后是修改Mastodon 的源码。官方文档上是用git 的写法表现的。如果没用git 的人（或是看到git 三个字母根本就???? 的人 ），只要能看懂文档是什么意思，是可以自己手动修改的。具体是vim 还是nano 还是Xshell 随意，我猜到这一步的人应该不是第一次用某种编辑器了。</p>

<p>那一段代码中，<br />
diff  --git 开头的指的是需要修改的文件名。此次需要修改的是<code spellcheck="false" tabindex="0">app/chewy/accounts_index.rb</code>, <code spellcheck="false" tabindex="0">app/chewy/statuses_index.rb</code>, <code spellcheck="false" tabindex="0">app/chewy/tags_index.rb</code> 三个文件。这三个文件都在 live 目录中。可以通过<br /><code spellcheck="false" tabindex="0">su - mastodon</code> <br />
进入Mastodon 账号后 <br /><code spellcheck="false" tabindex="0">cd live</code> 进入。</p>

<p><code spellcheck="false" tabindex="0">@@</code> 开头的行表明的是修改将要发生的行数，可以帮你更快的找到。不过此次修改的文件都不大，通过上下文很好找。</p>

<p><code spellcheck="false" tabindex="0">@@ -4,7 +4,7</code> 意味着在这个文件的第四行后删去了7行，并又增加了七行，aka 行数没变，只是有内容变化。<br />
随后，左边有加号意味着需要新加一行，减号+红色意味着要删掉这行。</p>

<p>最后，以上的中文语言优化需要在创建新索引前执行。<br />
（或者可以在花了两个小时创建完后再优化再创建一次，反正我就是这么做的 <img src="https://fediverse.eu.org/resources/emoji/tongue.png" title=":p" alt=":p" height="20" />)</p>

<p>最最后，我装Elasticsearch 或Mastodon 都没有什么奇怪的操作只是按照官方文档，所以如果你有文件的位置不在我写的地方，那我也不知道它会在哪里 <img src="https://fediverse.eu.org/resources/emoji/tongue.png" title=":p" alt=":p" height="20" /></p>

<hr /><p>感谢<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmonado.ren%2F%40chasedream1129%2F105492462764080604">ChaseDream1129</a> 在我的原toot 下补充的两点：<br />
1.如何查看Elasticsearch版本？<br /><code spellcheck="false" tabindex="0">cd /usr/share/elasticsearch/lib</code><br />
然后<br /><code spellcheck="false" tabindex="0">ls</code><br />
查看elasticsearch-X.X.X.jar的版本号</p>

<p>2.关于git diff<br />
git diff出的内容不用手动修改，是可以直接导入的。<br />
具体方法如下:<br />
创建一个文本xxx.diff，将diff出的内容写进去(也就是官方文档的代码框里的内容)<br />
然后在Mastodon目录导入diff:<br /><code spellcheck="false" tabindex="0">cd /home/mastodon/live</code><br /><code spellcheck="false" tabindex="0">git apply path/to/xxx.diff</code></p>
]]>
        </description>
    </item>
    <item>
        <title>咨询一下nginx升级</title>
        <link>https://fediverse.eu.org/discussion/43/%E5%92%A8%E8%AF%A2%E4%B8%80%E4%B8%8Bnginx%E5%8D%87%E7%BA%A7</link>
        <pubDate>Sun, 31 Jul 2022 03:06:06 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>admin</dc:creator>
        <guid isPermaLink="false">43@/discussions</guid>
        <description><![CDATA[<p>我是使用docker安装方式安装的mastodon。最近nginx有人在说有0day，我想问一下这个nginx咋升级到最新版本啊?</p>
]]>
        </description>
    </item>
    <item>
        <title>Mastodon Sidekiq 队列分离</title>
        <link>https://fediverse.eu.org/discussion/9/mastodon-sidekiq-%E9%98%9F%E5%88%97%E5%88%86%E7%A6%BB</link>
        <pubDate>Fri, 29 Apr 2022 01:49:07 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>salt</dc:creator>
        <guid isPermaLink="false">9@/discussions</guid>
        <description><![CDATA[<p>Mastodon实例的一个常见问题是sidekiq队列的积压。这可以通过分割Sidekiq服务文件来解决。</p>

<p>下面的方法是假设你的 Mastodon 不是 Docker 运行，且安装在<code spellcheck="false" tabindex="0">/home/mastodon/live</code>。</p>

<h1 data-id="n-a">步骤</h1>

<p>将<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fgist.github.com%2Fo3o-ca%2F1c78c3e12847b9cf34809687625415e2">这里的4个.service文件</a>都放入 <code spellcheck="false" tabindex="0">/etc/systemd/system/</code>.</p>

<p>根据你的服务器配置，调整<code spellcheck="false" tabindex="0">ExecStart=</code>行中`-c'后面的进程数。</p>

<p>重新加载deamon并启用所有进程。</p>

<pre spellcheck="false" tabindex="0">systemctl daemon-reload
systemctl enable --now mastodon-sidekiq-default-@1.service mastodon-sidekiq-push-@1.service mastodon-sidekiq-mailers-@1.service mastodon-sidekiq-pull-@1.service
</pre>

<h2 data-id="n-a-1">参考</h2>

<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmstdn.social%2F%40stux%2F108205677683509274">@stux</a></p>

<p><a rel="nofollow" href="https://bgme.me/@bgme/108131035489990122">@bgme</a></p>
]]>
        </description>
    </item>
    <item>
        <title>联邦宇宙漫游指南3 从twitter到mastodon</title>
        <link>https://fediverse.eu.org/discussion/37/%E8%81%94%E9%82%A6%E5%AE%87%E5%AE%99%E6%BC%AB%E6%B8%B8%E6%8C%87%E5%8D%973-%E4%BB%8Etwitter%E5%88%B0mastodon</link>
        <pubDate>Thu, 02 Jun 2022 07:39:39 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>jiangshanghan</dc:creator>
        <guid isPermaLink="false">37@/discussions</guid>
        <description><![CDATA[<p>本篇首发于<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwp.me%2FpbKqHZ-SO">我的博客</a>，为注册用户（而非站点管理员/建设者）角度的使用指南。因贴图无法完成，这里只保留重点信息的文字版。若有更新，需进入原文查看。</p>

<hr /><p><strong>太长不看版（推特老司机特供）</strong></p>

<p>转/评/赞/书签功能同理。</p>

<p>发帖的时候可以单独加锁。</p>

<p>这边的锁号会和锁推有些许差别。</p>

<p>没有广告推广项目，不存在限流，全都是时间排序。要想被别人发现，你得活跃。</p>

<p>在注册前，务必查看站规，确保你能接受再进入。如果以后哪天你觉得这里不再适合你，可以随时搬家或删号。</p>

<hr /><p><strong>萌新开荒版</strong></p>

<p>以PC端网页版为例。手机浏览器网页版同理。</p>

<p>其实不必下载任何APP也可使用。</p>

<h1 data-id="n-a">第一单元：注册、登录</h1>

<p>重要提醒：在注册前，务必查看站规，确保你能接受再进入。</p>

<p>如果以后哪天你觉得这里不再适合你，可以随时搬家或删号。</p>

<p>本文将以fandom.ink（我称之为“饭墨”站）为例。由于其采用了mastodon的最基本的框架，可以说没有增加或去除太多功能，所以用来作为示例。然而，fediverse中的mastodon项目下并非只有这一个实例。在此，强烈建议读者不要集中去注册某一个特定的实例，“不要把鸡蛋全放在同一个篮子里”，以免给站长造成严重的负担。</p>

<h2 data-id="n-a-1">第一节：注册</h2>

<p>首先在浏览器输入域名，来到这个实例的网页中。左边是申请注册，右边是登录。</p>

<p>重要提醒：在注册前，务必查看站规，确保你能接受再进入。如果以后哪天你觉得这里不再适合你，还可以随时搬家或删号。不要集中去注册某一个特定的实例，“不要把鸡蛋全放在同一个篮子里”，以免给站长造成严重的负担。</p>

<p>用户名：只能是（半角）英文字符或数字。</p>

<p>电子邮件地址：理论上是各种的邮箱都可以。不过最近听说网易邮箱会有报错，甚至连垃圾箱都收取不到。我觉得可以用microsoft的邮箱。</p>

<p>“你为什么想要加入？”——由于饭墨站长主要使用英语，我当时是用英语写的申请。确实看不懂英语和没法写英语申请的人，请选择主要使用中文的那些实例。</p>

<p>发完申请之后，看电子邮箱收件，以验证账号。因为只有验证完了之后才能进站发帖。收件箱没有的，看垃圾箱。再没有的，可能站长这会儿没在——请耐心等待，或者换一家。</p>

<p>在申请被通过、并验证完了账号之后，你会收到第二封邮件，其内容是告知你的ID（格式：<a href="https://fediverse.eu.org/profile/%E7%94%A8%E6%88%B7%E5%90%8D" rel="nofollow">@用户名</a><a href="https://fediverse.eu.org/profile/%E5%AE%9E%E4%BE%8B%E5%9F%9F%E5%90%8D%EF%BC%89%E5%92%8C%E5%85%A5%E9%97%A8%E6%93%8D%E4%BD%9C%E6%8A%80%E5%B7%A7%EF%BC%8C%E5%8A%A1%E5%BF%85%E4%BB%94%E7%BB%86%E7%9C%8B%E5%AE%8C%E3%80%82" rel="nofollow">@实例域名）和入门操作技巧，务必仔细看完。</a></p>

<h2 data-id="n-a-2">第二节：登录（需在收到注册成功的邮件后才可进行）</h2>

<p>这个似乎没啥好说的？这一步的操作和其他很多网站都是同理的。</p>

<p>继续用域名打开网页之后，就可以进行登录了。</p>

<p>登陆成功后，会进入“主页”。“主页”的主要区域：左侧栏：搜索、发帖、网站框架；中间栏：看帖；右侧栏：选项卡、热门话题。</p>

<h1 data-id="n-a-3">第二单元：隐私选项</h1>

<p>刚登录进之后，会进入首页。</p>

<p>首先请前往左侧发帖输入框上方的“修改个人资料”。</p>

<p>改头像、介绍、显示名称这些就先不急着说了，大家都会。这些随时按照你的喜好设置（注意不要违反站规）就行。</p>

<h2 data-id="n-a-4">隐私选项</h2>

<p>在“首选项”-“其他”中进行隐私设置。</p>

<p>勾选以下：禁止搜索引擎建立索引（防止被随意爬取），隐藏你的社交网络（防止一些奇怪的人沿着关注表骚扰他人）</p>

<p>取消以下：展示你用来发嘟的应用。</p>

<p>另外，这一页中还可以设置“公共时间轴”的语言过滤（还是这一页，往下翻就有）</p>

<p>只勾选中文，你的“跨站时间线”就会变成只显示中文帖子。</p>

<h2 data-id="ip">保护你的IP</h2>

<p>请随时清除你的登录IP记录。</p>

<p>步骤：修改个人资料-账号-账户设置，在“会话”区域中点击IP数字串后边的“注销”即可。</p>

<h1 data-id="n-a-5">第三单元：发帖选项</h1>

<h2 data-id="n-a-6">输入框在哪？</h2>

<p>发帖的输入框在你登录后的首页的左上方。</p>

<p>输入框下方有4个按钮：回形针=添加图片，三条杠=发起投票，地球=贴文公开权限，CW=贴文折叠</p>

<p>帖文的公开权限再不明白的，可以随便发点什么（不违反站规的内容）试验一下。</p>

<h2 data-id="n-a-7">转评赞</h2>

<p>首先找到一条有趣的贴文。</p>

<p>贴文下方有4个按钮：左转箭头=回复（评论），循环箭头=转发（不能带文字转发），五角星=点赞（可以当做收藏夹用），省略号=更多（点击一下会出现更多操作的菜单：展开=看评论区，嵌入=引用，添加书签=收藏；其他的看字面意思就懂）</p>

<h1 data-id="n-a-8">第四单元：搜索、关注</h1>

<h2 data-id="n-a-9">第一节：搜索内容</h2>

<p>Mastodon的搜索功能没有微博那么强（除非站长开启了权限，否则没有“全文搜索”），所以不会有“因为贴文中带大名，而被粉丝找到并霸凌”的情况发生。</p>

<p>唯有在帖文中标记了hashtag（标签规则：在文字前加1个# 符号，在前边和后边分别都带1个空格），并且该贴文的阅读权限为“公开”的前提下，方可搜到内容。</p>

<p>在这里推荐一些时不时会有人发fediverse使用教程的tag：#长毛象中文使用指南 #mastodon #feditips #misskey #fediverse</p>

<p>敬请注意：如果您只是想保存标签 给自己查找方便，请不要将该条帖文设为“公开”，以免造成无实际内容的信息刷屏，稀释信息。</p>

<h2 data-id="n-a-10">第二节：关注别人</h2>

<p>在首页左上方“搜索”输入ta的ID。格式：<a href="https://fediverse.eu.org/profile/%E7%94%A8%E6%88%B7%E5%90%8D" rel="nofollow">@用户名</a><a href="https://fediverse.eu.org/profile/%E5%AE%9E%E4%BE%8B%E5%9F%9F%E5%90%8D%EF%BC%8C%E6%AF%94%E5%A6%82%EF%BC%9A" rel="nofollow">@实例域名，比如：</a><a href="https://fediverse.eu.org/profile/xxx%40shili" rel="nofollow">@xxx@shili</a>.com</p>

<p>在这里推荐一个经常发一些fediverse使用教程的账号：<a href="https://fediverse.eu.org/profile/feditips%40mastodon" rel="nofollow">@feditips@mastodon</a>.social （它主要是讲英语的。看不懂的请自行用翻译机。）</p>

<h1 data-id="n-a-11">第五单元：导入/导出、搬家、删号</h1>

<p>导入/导出数据的步骤：修改个人资料-导入和导出</p>

<p>搬家（迁移）的步骤：修改个人资料-账号-账户设置-迁移</p>

<p>然后根据提示操作。</p>

<p>迁移：要从别处搬过来的话，先在本处创建账号别名，也就是输入别处的ID。具体格式会在点进“创建账号别名”之后有提示，根据提示操作即可。</p>

<p>删号按钮也在同一页。删号操作是无法复原的，会把你的账号注册信息和帖子全部删除。请谨慎使用。</p>

<h1 data-id="n-a-12">第六单元：一些连接</h1>

<h2 data-id="n-a-13">第一节：引用帖文</h2>

<p>从mastodon上的嘟文三个点“更多”选项里复制“嵌入”里的代码，然后在WP上选custom html（自定义html）粘贴就行了。CSS熟的话还可以自己改一下style（比如默认宽度400可以自己修改成其他数字）</p>

<h2 data-id="n-a-14">第二节：链接变绿</h2>

<p>仅以在Word Press托管的博客（既然免费套餐能有，收费套餐也同理）为例。若需用其他平台，您可自行搜寻有无相关资料。</p>

<p>第一步：打开Mastodon的“修改个人资料”，在“个人资料-外观”页中找到“验证”区域，复制这个框里的代码串备用。</p>

<p>第二步：打开WP的后台“WP管理”，或直接在WP主页右下方点“自定义”按钮，找到“小工具”后在html中粘贴前面复制的那个代码串（记得保存）</p>

<p>第三步：回到Mastodon的个人后台，在“修改个人资料”页“个人资料页附加信息”输入WP主页链接，并点击保存。（如果是以前已经加过链接的，可以再点一次保存，以确保2网站之间会互相连接成功）</p>

<p>最后效果是：带有刚做的html组件的那个页面会变成绿色的。（虽然不绿也不是不可以用，但是我感觉这样看起来会更炫）</p>

<p>如果本身使用的是Misskey的站点，则不需要进行这项操作，因为Misskey自带配色这个……就不太需要加入html的标记。当然，也可以放置。就是按照截图里“元数据”那串代码的格式（把引号中的实例域名及ID替换成在Misskey的域名及ID）其他照旧即可。</p>
]]>
        </description>
    </item>
    <item>
        <title>为什么我的站点使用gif作为头像动不起来呢？需要额外设置吗？</title>
        <link>https://fediverse.eu.org/discussion/33/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E7%AB%99%E7%82%B9%E4%BD%BF%E7%94%A8gif%E4%BD%9C%E4%B8%BA%E5%A4%B4%E5%83%8F%E5%8A%A8%E4%B8%8D%E8%B5%B7%E6%9D%A5%E5%91%A2-%E9%9C%80%E8%A6%81%E9%A2%9D%E5%A4%96%E8%AE%BE%E7%BD%AE%E5%90%97</link>
        <pubDate>Thu, 05 May 2022 12:20:31 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>MstdnHomes</dc:creator>
        <guid isPermaLink="false">33@/discussions</guid>
        <description><![CDATA[<p>首先gif是可以上传哒，但是动不起来啊？mastodon版本是3.5.2，docker布置的。想问问gif头像是需要额外设置吗？谢谢。自己站点的头像动不起来，看别人动起来的头像好羡慕。<br /><img src="https://fediverse.eu.org/uploads/editor/wx/cu3zscd2k93r.png" alt="" title="" /></p>
]]>
        </description>
    </item>
    <item>
        <title>新手站长想问一下 secure mode 相关</title>
        <link>https://fediverse.eu.org/discussion/32/%E6%96%B0%E6%89%8B%E7%AB%99%E9%95%BF%E6%83%B3%E9%97%AE%E4%B8%80%E4%B8%8B-secure-mode-%E7%9B%B8%E5%85%B3</link>
        <pubDate>Thu, 05 May 2022 12:15:42 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>MstdnHomes</dc:creator>
        <guid isPermaLink="false">32@/discussions</guid>
        <description><![CDATA[<p>我是先看到了文章<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.bgme.me%2Fposts%2Fthe-necessity-of-chinese-instance-to-enable-secure-mode%2F">中文长毛象实例开启secure mode的必要性</a>，有一些疑问</p>

<p>关于 <code spellcheck="false" tabindex="0">authorized_fetch</code></p>

<p>我看了下这部分的<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fdocs.joinmastodon.org%2Fadmin%2Fconfig%2F%23authorized_fetch">官方文档</a>：</p>

<blockquote><div>
  <p>当设置为 true 时，Mastodon将停止内联签名活动，并要求远程服务器在拉取公开（public）和不公开（unlisted）的嘟文时进行身份验证。</p>
  
  <p>这可以阻止被屏蔽的域名拉取你的公开嘟文，但代价是可能增加计算量，并与不支持附带签名的拉取请求的软件不兼容（如低于3.0版本的Mastodon）。</p>
</div></blockquote>

<p>请问这样会影响中继服务吗？我开启以后，才能获取到同样<strong>开启了</strong>的 <code spellcheck="false" tabindex="0">secure mode</code> 的其他实例嘟文是吧？同时我也可以避免其他 <code spellcheck="false" tabindex="0">suspend</code> 的域名获取我这边公开的嘟文，那没有开启<code spellcheck="false" tabindex="0">secure mode</code> 的其他实例也<strong>无法拉取</strong>我这边的嘟文？</p>

<p>不知道我的理解对不对？谢谢大家。</p>
]]>
        </description>
    </item>
    <item>
        <title>小白请教如何通过管理命令行创建用户并完成邮箱认证？</title>
        <link>https://fediverse.eu.org/discussion/31/%E5%B0%8F%E7%99%BD%E8%AF%B7%E6%95%99%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E7%AE%A1%E7%90%86%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7%E5%B9%B6%E5%AE%8C%E6%88%90%E9%82%AE%E7%AE%B1%E8%AE%A4%E8%AF%81</link>
        <pubDate>Sat, 30 Apr 2022 11:13:04 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>HiCmx</dc:creator>
        <guid isPermaLink="false">31@/discussions</guid>
        <description><![CDATA[<p>本人新手小白，自己摸索着搭建一个长毛象，目前好多东西都要学习，暂时只想身边朋友什么的玩玩，企业邮箱暂时不想设置。</p>

<p>看官方文档可以通过命令行手动创建用户并完成邮箱认证步骤，但不是很清楚，大神能否列出具体代码举个例子？谢谢！</p>
]]>
        </description>
    </item>
    <item>
        <title>为什么应该屏蔽“殆知阁”站 (mao.mastodonhub.com)</title>
        <link>https://fediverse.eu.org/discussion/13/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BA%94%E8%AF%A5%E5%B1%8F%E8%94%BD-%E6%AE%86%E7%9F%A5%E9%98%81-%E7%AB%99-mao-mastodonhub-com</link>
        <pubDate>Fri, 29 Apr 2022 04:25:44 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>salt</dc:creator>
        <guid isPermaLink="false">13@/discussions</guid>
        <description><![CDATA[<p>为什么应该屏蔽“殆知阁”站 (mao.mastodonhub.com)</p>

<p>TL;DR:</p>

<p>Key reasons why you should block Mao (aka: Daizhige, domain: *.mastodonhub.com) Mastodon instances:</p>

<ol><li>Generating fake accounts by continuously duplicating at least hundreds of real Mastodon accounts from other instances without the permission of the original account owners.</li>
<li>Mislead users by claiming to be the very only official Mastodon instance, without mentioning that the most important feature of Mastodon is decentralization.</li>
<li>Jeopardized other instance admins who live in China by publishing their site information on a heavily censored Chinese social media.</li>
<li>Arbitrarily censoring and deleting user-posted contents and accounts in favour of the Chinese Communist Party (CCP).</li>
</ol><h1 data-id="duplicating-accounts-from-other-instances-without-any-permission">Duplicating accounts from other instances without any permission</h1>

<p>Mao (<a rel="nofollow" href="/home/leaving?target=http%3A%2F%2Fmao.mastodonhub.com%2F">mao.mastodonhub.com</a>) has been <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpawoo.net%2F%40manul%2F105365327122838407">duplicating</a> at least hundreds of Mastodon accounts from <a rel="nofollow" href="/home/leaving?target=http%3A%2F%2Fpawoo.net">Pawoo.net</a> and other instances to its own instance without the permission of the original account owners.</p>

<p>To find out whether your account has been duplicated, you can type “mao.mastodonhub.com/<a href="https://fediverse.eu.org/profile/your_mastodon_handle%E2%80%9D" rel="nofollow">@your_mastodon_handle”</a> in the address bar. Replace <code spellcheck="false" tabindex="0">your_mastodon_handle</code> by your account handle.</p>

<p>The mirror accounts have been <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmastodon.online%2F%40nebulamoe%2F105365549000251788">cached from the Fediverse</a> since 2018 and generated by processing in the background of Mao's server. To validate this theory, <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fb612.me%2F%40star%2F105367643441202235">someone</a> built a test server and successfully <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fb612.me%2F%40star%2F105367643441202235">replicated this process</a> - those accounts were deliberately mirrored and were not created by mistake.</p>

<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmastodon.social%2F%40daisyn0925%2F105367889441725674">One of the distinguishable differences</a> between the mirrored accounts and the original accounts is that the <code spellcheck="false" tabindex="0">&lt;p&gt;</code> and <code spellcheck="false" tabindex="0">&lt;br&gt;</code> tags are retained in the mirrored accounts.</p>

<p>Example of an account mirrored from Pawoo.net :</p>

<p><img src="https://i.imgur.com/AslgSak.png" alt="Mirrored" /></p>

<p>On December 13, 2020, <strong>Mao's admin made <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Farchive.is%2FR02Ua">an announcement</a> stating that he refuses to take any responsibility or proactively delete these fake accounts.</strong> If users want to delete the mirrored accounts and contents, <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fm.cmx.im%2F%40Soyelena%2F105368235720685381">they need to contact Mao's admin</a> and make a request.</p>

<h1 data-id="intentionally-misleading-its-users">Intentionally misleading its users</h1>

<p>Mao <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fweb.archive.org%2Fweb%2F20200518153618%2Fhttps%3A%2F%2Fwww.bolebook.com%2Fmastodon%2Fmanuelofmastodoncn.html">openly advertises its own instance as the only Chinese instance</a>, and all other Chinese instances are branches of its site. They are intentionally misleading new users who have not known Mastodon's decentralization  mechanism.</p>

<p>In its user guide, Mao <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fweb.archive.org%2Fweb%2F20200715052422%2Fhttps%3A%2F%2Fwww.bolebook.com%2Fmastodon%2Fmanuelofmastodoncn.html%23%25E7%258C%25AB%25E7%25AB%2599">claims</a> itself to be the "largest Chinese mastodon instance" and uses "嘟嘟长毛象" (Toot, Mastodon) to name the mobile apps they developed, thus creating a false image of themselves as the "official Mastodon platform", without mentioning that the most important feature of mastodon is the decentralized private instances, and so called "official platform" simply doesn't exist.</p>

<h1 data-id="arbitrary-service-interruption-without-notice">Arbitrary service interruption without notice</h1>

<p>In early 2020, Mao had it servers <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Ftelegra.ph%2F%25E6%25AE%2586%25E7%259F%25A5%25E9%2598%2581%25E8%25BF%2590%25E8%2590%25A5%25E6%2596%25B9%25E4%25BF%25A1%25E6%2581%25AF%25E8%25BF%25BD%25E6%25BA%25AF-05-25">located in Beijing, China mainland</a>.</p>

<p>On May 25, 2020, Mao suddenly shut down its service (for <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fdonotban.com%2F%40tommylibra%2F104227916723233840">unjustifiable reasons</a>) without properly informing users in advance. The instance was shut down <a rel="nofollow" href="https://bgme.me/@bgme/104227760618216048">only 30 minutes</a> after Mao's <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fweb.archive.org%2Fweb%2F20200525061226if_%2Fhttps%3A%2F%2Fmao.mastodonhub.com%2F%40daizhige%2F104227495834927101">announcement</a>, leaving its users no time for backups.</p>

<p>The instance went live again in July 2020 and moved its servers to Hong Kong.</p>

<h1 data-id="jeopardizing-other-chinese-language-instances">Jeopardizing other Chinese-language instances</h1>

<p>Mao published a list of instance info (including alternate domains that are used to circumvent the Chinese Great Firewall) on Weibo (Chinese social media), which is heavily censored by the Chinese government. This would very likely jeopardize those instance admins who live in China.</p>

<h1 data-id="intention-to-monetize-commercial-background">Intention to monetize &amp; commercial background</h1>

<p>Mao intends to sell its Mastodon hosting service through subdomains of mastodonhub.com.</p>

<p>Based on an <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Ftelegra.ph%2F%25E6%25AE%2586%25E7%259F%25A5%25E9%2598%2581%25E8%25BF%2590%25E8%2590%25A5%25E6%2596%25B9%25E4%25BF%25A1%25E6%2581%25AF%25E8%25BF%25BD%25E6%25BA%25AF-05-25">analysis</a> of its ICP license and IP addresses, it appears that Mao is controlled by, or at least affiliated with, a China-based <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwww.qcc.com%2Ffirm%2F9fe1032b8da990b66574bf3f4d416954.html">public company</a> with registered capital of ¥18,250,000 and total operating revenue of ¥24,542,198 in FY 2019.</p>

<h1 data-id="proprietary-mobile-app">Proprietary mobile app</h1>

<p>Mao created <a rel="nofollow" href="/home/leaving?target=http%3A%2F%2Fdudu.today%2Findex.html">a microblog-like, non-open source proprietary Mastodon App</a> which requests for unnecessary permission that may potentially violate user's privacy. It also advertised only its own instance in the app interface when it was published.</p>

<h1 data-id="obscured-terms-of-service">Obscured terms of service</h1>

<p>Mao's <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Farchive.is%2F7rxpv">terms of service</a> does not clearly define its terms or privacy policy.</p>

<p>It also outlines that the admins can do whatever they want and they don't accept any criticism. If you disrespect the admin, your account will get deleted.</p>

<h1 data-id="censorship">Censorship</h1>

<p>Mao <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Ffuten.work%2F%400%2F105367204866963355">censors and deletes</a> user-posted contents and accounts in favour of the Chinese Communist Party (CCP).</p>

<h1 data-id="how-to-block-mao-instances-as-instance-admin">How to block Mao instances as instance admin</h1>

<p>Known instances of Mao:</p>

<pre spellcheck="false" tabindex="0">- [mao.mastodonhub.com](http://mao.mastodonhub.com/) (main site)
- [test.mastodonhub.com](http://test.mastodonhub.com/)
- [daizhige.mastodonhub.com](http://daizhige.mastodonhub.com/)
- [moyu.mastodonhub.com](http://moyu.mastodonhub.com/)
- [meow.mastodonhub.com](http://meow.mastodonhub.com/)
- [outerspace.mastodonhub.com](http://outerspace.mastodonhub.com/)
</pre>

<p>Known server IPs:</p>

<pre spellcheck="false" tabindex="0">- 148.66.58.42, 148.66.57.10
</pre>

<p>Block by user agent (Nginx):</p>

<pre spellcheck="false" tabindex="0">    # Block MAO UA
      if ($http_user_agent ~* "mastodonhub.com") {
            return 403;
       }
</pre>

<p>Block IPs in Nginx:</p>

<pre spellcheck="false" tabindex="0">    # Block MAO IP
      deny 148.66.58.42;
      deny 148.66.57.10;
</pre>

<p>Block with iptables:</p>

<pre spellcheck="false" tabindex="0">    iptables -A INPUT -s 148.66.58.42 -j DROP
    iptables -A INPUT -s 148.66.57.10 -j DROP
</pre>
]]>
        </description>
    </item>
    <item>
        <title>Mastodon Rclone 自动异地备份脚本</title>
        <link>https://fediverse.eu.org/discussion/10/mastodon-rclone-%E8%87%AA%E5%8A%A8%E5%BC%82%E5%9C%B0%E5%A4%87%E4%BB%BD%E8%84%9A%E6%9C%AC</link>
        <pubDate>Fri, 29 Apr 2022 02:52:56 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>salt</dc:creator>
        <guid isPermaLink="false">10@/discussions</guid>
        <description><![CDATA[<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Frclone.org%2F">Rclone</a>是一个命令行程序，用于管理云存储的文件。它是一个功能丰富的云供应商网络存储界面的替代品。超过40个云存储产品支持Rclone，包括S3对象存储、商业和消费者文件存储服务，以及标准传输协议。</p>

<h1 data-id="n-a">步驟</h1>

<p>先<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Frclone.org%2Finstall%2F">安装rclone</a></p>

<p>使用<code spellcheck="false" tabindex="0">rclone config</code>来添加新的配置，并为你的rclone配置设置密码。</p>

<p>新建目录</p>

<pre spellcheck="false" tabindex="0">mkdir -p /opt/mastodon-backup/
mkdir -p /opt/mastodon-backup/logs
mkdir -p /home/mastodon/S3_backup
</pre>

<p>安装7-Zip</p>

<pre spellcheck="false" tabindex="0">apt install p7zip-full
</pre>

<p>添加备份脚本到 <code spellcheck="false" tabindex="0">/opt/mastodon-backup/backup.sh</code>，设置一个cron job定时运行（如 <code spellcheck="false" tabindex="0">0 3 * * * bash /opt/mastodon-backup/backup.sh &gt; /opt/mastodon-backup/logs/backup.log 2&gt;&amp;1</code>）</p>

<p>可执行权限</p>

<pre spellcheck="false" tabindex="0">chmod +x /opt/mastodon-backup/backup.sh
</pre>

<h1 data-id="n-a-1">备份脚本</h1>

<pre spellcheck="false" tabindex="0">#!/bin/bash

umask 027

# Replace the values below with your Rclone config

rclone_config_name="scaleway"
rclone_config_pass="yourpassword"
s3_bucket_name="yourbucketname"
backup_time="$(date +"%Y_%m_%d_%I_%M_%p")"

# Remove old backup directory
rm -rf /home/mastodon/S3_backup/*
rm -rf /home/mastodon/live/db_*.dump

# Create temporary backup directory
backup_file_name=${backup_time}_$RANDOM
backup_direcotry=/home/mastodon/S3_backup/${backup_file_name}
[ -e ${backup_direcotry} ] || mkdir -p ${backup_direcotry}

# Generate a database dump backup
su - mastodon -c "cd /home/mastodon/live &amp;&amp; pg_dump -Fc mastodon_production &gt; db_${backup_time}.dump"

# Move the database dump
mkdir -p $backup_direcotry/database_dump/ &amp;&amp; mv /home/mastodon/live/db_${backup_time}.dump $backup_direcotry/database_dump/

# Copy files
mkdir -p $backup_direcotry/mastodon_env/ &amp;&amp; cp /home/mastodon/live/.env.production $backup_direcotry/mastodon_env/backup.env.production
mkdir -p $backup_direcotry/redis/ &amp;&amp; cp /var/lib/redis/dump.rdb $backup_direcotry/redis/
mkdir -p $backup_direcotry/nginx/ &amp;&amp; cp /etc/nginx/sites-available/* $backup_direcotry/nginx/
mkdir -p $backup_direcotry/elasticsearch/ &amp;&amp; cp /etc/elasticsearch/jvm.options $backup_direcotry/elasticsearch/
mkdir -p $backup_direcotry/backup_script/ &amp;&amp; cp /opt/mastodon-backup/backup.sh $backup_direcotry/backup_script/

# Compress
7z a /home/mastodon/S3_backup/${backup_file_name}.7z $backup_direcotry

# Load the rclone password
export RCLONE_CONFIG_PASS=$rclone_config_pass

# Upload the backup
rclone move /home/mastodon/S3_backup/${backup_file_name}.7z $rclone_config_name:$s3_bucket_name/

# Remove backup directory
rm -rf /home/mastodon/S3_backup/*
</pre>
]]>
        </description>
    </item>
    <item>
        <title>To什么也不懂的技术小白：搭建Mastodon手把手指南</title>
        <link>https://fediverse.eu.org/discussion/19/to%E4%BB%80%E4%B9%88%E4%B9%9F%E4%B8%8D%E6%87%82%E7%9A%84%E6%8A%80%E6%9C%AF%E5%B0%8F%E7%99%BD-%E6%90%AD%E5%BB%BAmastodon%E6%89%8B%E6%8A%8A%E6%89%8B%E6%8C%87%E5%8D%97</link>
        <pubDate>Fri, 29 Apr 2022 05:13:36 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>pullopen</dc:creator>
        <guid isPermaLink="false">19@/discussions</guid>
        <description><![CDATA[<p>最近根据v3.5.1的变化把这个指南大修了一遍，感谢此方勘误，也希望大家继续纠错/提问~</p>

<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2Fcatalog%2F">https://pullopen.github.io/catalog/</a></p>

<p>发展到现在v3.5.1，最早通过Digital Ocean镜像自动搭建的方法已经远远过时。目前我对运维新手主要还是推荐Docker建站：</p>

<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E5%259F%25BA%25E7%25A1%2580%25E6%2590%25AD%25E5%25BB%25BA%2F2020%2F10%2F19%2FMastodon-on-Docker.html">https://pullopen.github.io/基础搭建/2020/10/19/Mastodon-on-Docker.html</a></p>

<p>相对而言，Docker稳定性比较高，配合自动备份不容易彻底搞坏，重启重装都比较方便。而新手的魔改需求也比较轻量，一般而言也不需要反复debug，所以Docker是比较适合新手的方案。</p>

<p>希望大家多多建站~</p>
]]>
        </description>
    </item>
    <item>
        <title>我流长毛象中文使用指北：从调整设置开始逐步熟悉Mastodon</title>
        <link>https://fediverse.eu.org/discussion/18/%E6%88%91%E6%B5%81%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97-%E4%BB%8E%E8%B0%83%E6%95%B4%E8%AE%BE%E7%BD%AE%E5%BC%80%E5%A7%8B%E9%80%90%E6%AD%A5%E7%86%9F%E6%82%89mastodon</link>
        <pubDate>Fri, 29 Apr 2022 05:01:48 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>Mantyke</dc:creator>
        <guid isPermaLink="false">18@/discussions</guid>
        <description><![CDATA[<p>原链接：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmantyke.icu%2F2021%2F386276df%2F">我流长毛象中文使用指北</a></p>

<p>​</p>

<h2 data-id="n-a">那么进入正文</h2>

<p>长毛象是一个<strong>去中心化的SNS平台</strong>。它的使用逻辑和推特类似，区别在于，推特只有一个，而 Mastodon 允许用户用它的代码建立不同的站点，各个站点内信息相对互通，你可以随意挑选一个站点住下来，关注本站和其他站的用户，也可以随意在不同站点内注册、注销账号或者搬家，<strong>但行为需要符合各个站点自行设立的使用条款</strong>，如果有相关技术实力，更可以建立一个属于自己的站点，并且和其他站点互通。</p>

<p>如果有进一步了解的需要，可以阅读<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fdocs.joinmastodon.org%2Fzh-cn%2F">长毛象中文文档</a>。</p>

<p>由于长毛象宇宙自身的性质，你完全拥有你的数据，即便某个站点被墙，你也可以打包自己的信息转移到其他站点，这些信息包括一键导入关注列表和引导他人关注你的新账号，当然还有你的嘟文内容文件和媒体文件。</p>

<p>像微博叫微博，发微博叫发微博一样，我们称呼长毛象宇宙里发送的内容叫嘟文，而发嘟文叫作嘟嘟——<strong>嘟嘟！</strong></p>

<p>​</p>

<h2 data-id="n-a-1">我该如何注册？</h2>

<p>直接放出可供注册的站点列表是<strong>不礼貌并具有风险</strong>的，找朋友私下问一问可能是更好的方式。或者可以先注册一些较为官方性质的实例，比如由长毛象开发者运营的mastodon.social等。等到对中文实例有所了解之后，再搬家至自己心仪的实例。</p>

<p>注意一些基础的<strong>安全措施</strong>：使用非国内平台的邮箱账号或者临时邮箱，在账号信息、自我介绍乃至嘟文内容上，最好与其他平台相隔离：不要使用和微博一模一样的账号信息包括头像，也不要在微博上直接放出你的长毛象账号。</p>

<p><strong>截图长毛象内容（哪怕码掉发布人的信息）发送到微博上是被抵制的行为</strong>，反过来，安全起见，也请尽量避免在两个平台发送同样的内容。</p>

<p>注意，注册时输入的“用户名”（通常后跟<a href="https://fediverse.eu.org/profile/%E7%AB%99%E7%82%B9%E5%9F%9F%E5%90%8D%EF%BC%89%E6%98%AF%E4%BD%A0%E5%9C%A8%E9%95%BF%E6%AF%9B%E8%B1%A1%E7%9A%84%E8%BA%AB%E4%BB%BD%E6%A0%87%E8%AF%86%EF%BC%8C%E5%AE%83%E4%B8%8D%E8%83%BD%E8%A2%AB%E4%BF%AE%E6%94%B9%EF%BC%8C%E5%90%8C%E6%97%B6%EF%BC%8C%E5%88%A0%E9%99%A4%E8%B4%A6%E5%8F%B7%E5%90%8E%E4%B9%9F%E4%B8%8D%E8%83%BD%E5%9C%A8%E5%90%8C%E4%B8%80%E7%AB%99%E7%82%B9%E5%86%8D%E6%B3%A8%E5%86%8C%E5%90%8C%E4%B8%80%E7%94%A8%E6%88%B7%E5%90%8D%E3%80%82%E8%80%8C%E6%88%91%E4%BB%AC%E9%80%9A%E5%B8%B8%E5%AF%B9%E5%A4%96%E6%98%BE%E7%A4%BA%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%88%E6%98%B5%E7%A7%B0%EF%BC%89%EF%BC%8C%E6%B3%A8%E5%86%8C%E5%90%8E%E6%98%AF%E5%8F%AF%E4%BB%A5%E9%9A%8F%E6%84%8F%E4%BF%AE%E6%94%B9%E7%9A%84%EF%BC%8C%E5%AD%97%E7%AC%A6%E9%95%BF%E5%BA%A6%E9%99%90%E5%88%B6%E6%A0%B9%E6%8D%AE%E5%90%84%E7%AB%99%E7%82%B9%E7%9A%84%E8%AE%BE%E5%AE%9A%E6%9C%89%E6%89%80%E4%B8%8D%E5%90%8C%E3%80%82" rel="nofollow">@站点域名）是你在长毛象的身份标识，它不能被修改，同时，删除账号后也不能在同一站点再注册同一用户名。而我们通常对外显示的名称（昵称），注册后是可以随意修改的，字符长度限制根据各站点的设定有所不同。</a></p>

<p>​</p>

<h2 data-id="n-a-2">注册了，然后呢？</h2>

<p>我们来调整一些（我注册新账号后习惯调整的）设置，并在调整设置的过程中认识一些长毛象方便的功能。</p>

<p>长毛象本身是<strong>网页平台</strong>，移动设备上，虽然也有层出不穷的 APP，但<strong>直接将网页发送到手机</strong>使用，体验最好，介绍也会全部以网页端为基础进行讲解。</p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471685/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx1_sn14xp.png" alt="" /></p>

<p> 修改个人资料是我比较习惯的进入设置页面路径。除此之外，也可以点击齿轮图标，或者（自己稍微找一下在哪儿的）首选项进入。 自己主页也有很多入口可以进设置页面，条条大路都通罗马。</p>

<p>​</p>

<h2 data-id="n-a-3">第一步：锁不锁嘟？</h2>

<p>进入路径：个人资料-外观</p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471685/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx2_lsjuvd.png" alt="" /></p>

<p>勾选“<strong>保护你的账户（锁嘟）</strong>”后，他人关注你需要经过你审核同意，配合嘟文发布范围中的“仅关注者-只有关注你的用户能看到”选项，可以实现一些嘟文的被阅读范围筛选。</p>

<p>锁嘟<strong>并不代表</strong>你在长毛象世界无法被搜索或他人无法看到你的公开嘟文，除了关注你需要同意，和不锁嘟没有更大的区别。</p>

<p>​</p>

<h2 data-id="n-a-4">第二步：调整外观界面</h2>

<p><strong>路径：首选项-外观</strong></p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx3_avrpdr.png" alt="" /></p>

<p>​</p>

<h3 data-id="web">高级web界面</h3>

<p>高级 web 界面是更适宜电脑用户进行浏览的界面，它允许用户将不同的信息轴固定在页面上，实现更好的浏览体验。</p>

<p>这是我设置后的高级 web 界面，可以看到它分别固定了发送框、主页轴、本站轴、跨站轴、开始使用。</p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx4_dtpdod.png" alt="" /></p>

<p>​</p>

<h3 data-id="n-a-5">一些名词解释</h3>

<p><strong>信息轴</strong>：长毛象没有所谓的“广场”概念，同时极大弱化搜索功能（简单地说，只能搜索附加相应话题tag、或自己发布过、或互动过的嘟文），与此相对，所有发布范围为“公开-所有人可见，并会出现在公共时间轴上”的嘟文，都会进入以纯时间顺序进行排列的信息轴当中，你不需要关注任何人就可以看到它们。而根据接收信息的来源不同，分为主页轴、本站轴和跨站轴。</p>

<p><strong>主页轴</strong>：你关注用户发布的内容，包括原创嘟文、转嘟（类似转推）、以及评论（如果双方你都关注了的话）。</p>

<p><strong>本站轴</strong>：本站用户的内容，只包括原创嘟文，另外，如果嘟文发布者自己回复了自己，也会显示在本站轴上。</p>

<p><strong>跨站轴</strong>：其他站点用户所发布的嘟文，具体能看到哪些站点，根据所注册的站点有所不同。</p>

<p>在这里摘录一段官方文档中对跨站机制的阐释：</p>

<blockquote><div>
  <p>为了让你发现潜在的有趣内容，Mastodon提供了一种浏览所有公共嘟文的方法。当然，所有Mastodon服务器之间并不会全局共享嘟文，因此无法同时浏览<em>所有</em>公共嘟文。当你浏览<strong>跨站公共时间轴</strong>时，你将看到你所在的服务器所知道的所有公共嘟文。你的服务器可以通过多种方式发现嘟文，但其中大部分是来自你服务器上的其他用户关注的人。</p>
</div></blockquote>

<p>​</p>

<h3 data-id="n-a-6">嘟文发送范围</h3>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx5_tgauba.png" alt="" /></p>

<p>如果我回复时勾选了“仅关注者”，但被我回复的人没有关注我怎么办？</p>

<p>没关系，只要回复时<a href="https://fediverse.eu.org/profile/%E4%BA%86TA%EF%BC%8CTA%E5%B0%B1%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E4%BD%A0%E7%9A%84%E4%BF%A1%E6%81%AF%E3%80%82" rel="nofollow">@了TA，TA就可以看到你的信息。</a></p>

<p>​</p>

<h4 data-id="n-a-7">*为什么长毛象极大弱化搜索功能？</h4>

<p>以下摘自 bgme 的《谈谈长毛象那些奇怪的设计——写给长毛象新用户》</p>

<blockquote><div>
  <p>“这样的设计同样也是为了<strong>防止欺凌与骚扰</strong>。<br />
  不知你是否在使用新浪微博的过程中经历过这样的事情，在自己没几个人关注的帐号里自言自语评论了一下某明星或大 V，然后莫名其妙的就有一些人跑到你的自言自语下面评论甚至辱骂。这些人怎么过来的呢？其中一个重要的途径就是搜索。搜索一些关键词，然后顺着搜索结果挨个评论轰炸。<br />
  长毛象将搜索功能限制为只能在自己发出的嘟文以及自己互动过的嘟文中进行搜索，彻底杜绝了通过搜索某些关键词，不请自来的对用户进行骚扰或欺凌的可能。”</p>
</div></blockquote>

<p>​</p>

<h4 data-id="n-a-8">*搜索功能的补充</h4>

<p>如果需要自己的嘟文被搜索到，可以给嘟文加上相应<strong>tag</strong>，其他用户可以通过搜索tag来读到它（例如#中文长毛象使用指南。</p>

<p>以及，长毛象有类似转发bot的<strong>群组</strong>功能，在发布框输入【<strong>组名<a href="https://fediverse.eu.org/profile/gup" rel="nofollow">@gup</a>.pe</strong>】，即可建成一个群组主页，此后只要在嘟文内附带艾特这个组名，主页就会<strong>转发</strong>你发布的内容。</p>

<p>2022.2.27更新：<code spellcheck="false" tabindex="0">gup.pe</code>目前已停止使用，群组功能请使用【<strong>组名<a href="https://fediverse.eu.org/profile/ovo" rel="nofollow">@ovo</a>.st</strong>】</p>

<p>​</p>

<h3 data-id="gif">自动播放GIF动画</h3>

<p>大部分站点都允许用户使用透明背景头像和 GIF 动画头像，因此勾选自动播放 GIF 动画以后，你会快乐地发现许多用户的头像——还有TA们使用的表情——都欢快地动了起来！</p>

<p>我超喜欢这个功能的！</p>

<p>（顺便一提，只要复制一下站点表情的代码，前面插入一个空格，昵称里也可以使用表情图标）</p>

<p>​</p>

<h3 data-id="n-a-9">敏感媒体展示</h3>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx6_ye1otw.png" alt="" /></p>

<p>默认选择第一项，长毛象允许标记媒体为<strong>敏感内容</strong>（NSFW-Not Safe For Work），标记后，<strong>点击图片才会显示图片内容</strong>，应对色情或暴力信息，或者干脆就是嘟嘟时觉得没必要直接对外展示的内容而言非常好用。</p>

<p>但——如果有些账户就是不对媒体进行敏感内容标记怎么办呢？跨站轴颇有一些发色图的机器账号，这些内容显然不太适合在公开场合出现。</p>

<p>此时选择“<strong>总是隐藏所有媒体</strong>”，就可以解决这一忧虑。</p>

<p>​</p>

<h4 data-id="n-a-10">始终展开具有内容警告的嘟文</h4>

<p>默认不选择。CW 内容警告是长毛象针对文字信息推出的折叠功能，一般用于折叠色情或暴力内容，也可以用来折叠黑泥、剧透等不太想被直接看到的内容，如果嘟文太长（一些站点单条嘟文字数限制相当宽松，有的高达2000字以上），折叠起来避免影响版面是很不错的选择。</p>

<p>如果点选“始终展开具有内容警告的嘟文”，那么所有被折叠的嘟文都会自动打开，我不太推荐这么做。</p>

<p>​</p>

<h4 data-id="nsfw">*如何标记敏感媒体及打NSFW标记？</h4>

<p>如果选择CW嘟文，那么同时插入的图片就会自动被标记为敏感内容 。</p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx7_tjvmdm.png" alt="" /></p>

<p>​</p>

<h2 data-id="n-a-11">第三步：调整隐私设置</h2>

<p><strong>路径：首选项-其他</strong></p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx8_ert0vs.png" alt="" /></p>

<p>这几项都是字面意思，可以根据个人需要勾选。需要讲一下的是，勾选“禁止搜索引擎建立索引”后，能极大减少自身内容直接被百度/google 到的概率——并不是杜绝，如果有所互动的朋友没有勾选，那么还是有几率被检索到互动内容——总比完全不勾选好多了。</p>

<p>​</p>

<h2 data-id="muteblock">第四步：过滤器、mute和block</h2>

<p>过滤器路径：设置界面-过滤器-点击：添加新的过滤器</p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx9_kobpya.png" alt="" /></p>

<p><strong>过滤器</strong>相当于“屏蔽关键词”，只是长毛象对关键词的屏蔽做得更细致也更好。用户可以自由选择失效时间（在短期屏蔽热门讨论时非常有用），斟酌是否“丢弃而非隐藏”（不勾选时，信息轴上对于过滤信息会显示“已过滤”占位），也可以对屏蔽的生效场景进行筛选，避免误伤。</p>

<p>​</p>

<h3 data-id="mute-block">MUTE 和 BLOCK</h3>

<p>路径：某篇具体嘟文/嘟主个人主页菜单</p>

<p>与屏蔽关键词相对的，是隐藏/屏蔽某个具体的用户。</p>

<p><strong>Mute=隐藏</strong>：选择 mute 后，将看不到被隐藏账户发布的嘟文出现在信息轴。</p>

<p><strong>Block=屏蔽</strong>：选择 block 后，信息轴上不仅看不到被屏蔽账户发布的嘟文，同时，被屏蔽账户也无法在信息轴上看到你的嘟文。这两项设置只针对信息轴中的嘟文，如果专门点进去主页还是能看到的。</p>

<p>​</p>

<h3 data-id="n-a-12">有关书签，点赞和转发</h3>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx12_ivegtw.png" alt="" /></p>

<p>回复转发逻辑类似推特：回复会在个人主页“嘟文以及回复”页面中列出，转发仅转发原嘟文，无法添加转评。</p>

<p>星星是点赞的意思，但不局限于“你说得很好”，在实际使用过程中，当有人给你的嘟文点星星，TA们也有可能是在表达“抱抱”“鼓励”“安慰”等情绪。一些长毛象用户也有在一段回复讨论结束后点赞对方的最后一句表示对话结束的习惯。</p>

<p>​</p>

<h2 data-id="n-a-13">最后：存档、迁移、或者注销</h2>

<p>长毛象支持用户对自己的数据进行储存和迁移，通过迁移功能，可以方便地更换不同站点的账号（嘟文无法带走，但关注列表和被关注列表都可以一键导入），也可以简单地注销账号，注销后，使用过的用户 ID（不是昵称）不能再被注册。</p>

<p> </p>

<h3 data-id="n-a-14">存档</h3>

<p>路径：设置-导出-请求你的存档</p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx10_iwotuj.png" alt="" /></p>

<p>导出的数据为 ActivityPub 格式，可以使用存档阅读工具进行阅读。</p>

<p>​</p>

<h3 data-id="n-a-15">迁移</h3>

<p>关于迁移，我之前写过一篇详细说明迁移操作和机制的嘟文：</p>

<blockquote><div>
  <p>长毛象的账号迁移功能，实质上是将新旧两个账号链接，从而把旧账号的关注者移动到新账号。<br />
  所以要完成长毛象的一键搬家，所需要的步骤应该是【一键迁移】+【导出关注者/屏蔽列表csv，在新账号中导入】。</p>
  
  <p>详细如下：<br />
  1. 在新账号中，打开【首选项-账号-从其它帐号迁移】<br />
  它会引导你创建用户别名，这个用户别名实际上就是旧账号的地址，便于后续将新旧账号关联。<br />
  2. 在旧账号中，打开【首选项-账号-迁移到另一个帐户】<br />
      在【处理新账号】一栏中输入新账号的地址。<br />
  3. 在旧账号中，打开【首选项-导入与导出-导出】，下载需要导入到新账号的csv文件。<br />
  4. 在新账号中，打开【首选项-导入与导出-导入】，导入刚刚下载的csv文件。</p>
</div></blockquote>

<p>&gt;</p>

<blockquote><div>
  <p><strong>注意：</strong></p>
  
  <ul><li>嘟文无法转移至新账号，因此推荐事先对旧账号的嘟文档案进行导出*</li>
  <li>导入关注列表实际上是向csv文件中的账号重新发送关注申请，因此如果有朋友锁嘟，需要锁嘟的朋友重新通过新账号的关注申请。</li>
  <li>迁移账号有30天的CD。</li>
  </ul></div></blockquote>

<p>​</p>

<h3 data-id="n-a-16">注销</h3>

<p><strong>路径：设置-账户-账户设置-删除账户</strong></p>

<p><img src="https://res.cloudinary.com/mantyke/image/upload/v1630471686/210227%E9%95%BF%E6%AF%9B%E8%B1%A1%E4%B8%AD%E6%96%87%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8C%97/20210227cmx11_bcfdg4.png" alt="" /></p>

<ul><li><p>需要注意的是，由于长毛象去中心化的机制，嘟文一经发出便有可能被别的服务器缓存，因此删除账户后，可能<strong>仍有服务器留存有被删除的嘟文数据</strong>。</p>

<p><br /></p></li>
</ul><h2 data-id="n-a-17">致谢</h2>

<p>感谢千遥帮忙找了许多资料，您就是哆啦A梦(<em>^▽^</em>)</p>

<p>​</p>

<p>​</p>

<p>  \那么，嘟嘟愉快！！/  </p>
]]>
        </description>
    </item>
    <item>
        <title>小球飞象站建站过程及相关笔记，Docker建站，建站时间2021年11月底</title>
        <link>https://fediverse.eu.org/discussion/17/%E5%B0%8F%E7%90%83%E9%A3%9E%E8%B1%A1%E7%AB%99%E5%BB%BA%E7%AB%99%E8%BF%87%E7%A8%8B%E5%8F%8A%E7%9B%B8%E5%85%B3%E7%AC%94%E8%AE%B0-docker%E5%BB%BA%E7%AB%99-%E5%BB%BA%E7%AB%99%E6%97%B6%E9%97%B42021%E5%B9%B411%E6%9C%88%E5%BA%95</link>
        <pubDate>Fri, 29 Apr 2022 04:55:55 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>Mantyke</dc:creator>
        <guid isPermaLink="false">17@/discussions</guid>
        <description><![CDATA[<p>原链接：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmantyke.icu%2F2021%2Fmastodon-bulid%2F">Mastodon | 小球飞象建站笔记</a><br />
标建站方式和建站时间是因为建站过程中发现已有的部分教程，因为时间间隔较久，有部分步骤需要稍作调整，供后来站长一并参考。</p>

<p>踩在2021年的尾巴上也当了站长，在魔改前总之先记一下建站过程。</p>

<p><br /></p>

<h2 data-id="n-a">参考教程和鸣谢</h2>

<p>小球飞象的搭建总体以<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Flala.im%2F7634.html">Docker快速部署Mastodon</a>教程为基础，参考<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E5%259F%25BA%25E7%25A1%2580%25E6%2590%25AD%25E5%25BB%25BA%2F2020%2F10%2F19%2FMastodon-on-Docker.html">pullopen</a>的部分配置，象友<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.tantalum.life%2Fabout%2F">Roelxy</a>和<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmoe.tips%2F">纯之</a>手把手教学，前后大约花费16小时，重装VPS 3次。</p>

<p>两位象友都是搭博客过程中认识的，都给予了非常重要的帮助，非常感谢！</p>

<p><br /></p>

<h2 data-id="n-a-1">搭建过程</h2>

<h3 data-id="vps">购买VPS</h3>

<p>之前看建站教程，大部分推荐Vultr，但被象友告知，Vultr的5刀套餐不怎么好用，只有1G的内存和25G的SSD，内存太小需要开虚拟内存，硬盘太小也很容易装满，再升级就是每月10刀，又有点贵。不如换Contabo的7刀套餐，8G内存、200G SSD和1个快照，建完站还能搭点别的服务。</p>

<p>于是等到黑五，购买前先把价格修改成欧元，黑五期间免设置费，一次购买12个月免1个月，同时美国机房免附加费用。最后买了4.99欧/月的套餐，机房选了西雅图，后面的全部默认，用Visa付款，最终费用为54.88欧/年，大概是400人民币？</p>

<p>Contabo人工审核比较严格，一旦审核不通过则需要真实身份信息，所以要以真实IP购买，同时填写身份地址信息时不要太扯（。</p>

<p>我自己的审核非常快，付款后不到10分钟就发来了VPS信息邮件，这封邮件里有Contabo账号和VPS IP、密码等信息，收到后最好保存起来。</p>

<p><br /></p>

<h3 data-id="termius">Termius</h3>

<p>Termius是个终端，可以远程连接服务器，多平台通用，挺好看。</p>

<p>下载后先换个快捷键，Termius默认复制粘贴快捷键是<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">Shift</code>+<code spellcheck="false" tabindex="0">C</code>/<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">Shift</code>+<code spellcheck="false" tabindex="0">V</code>，为了方便起见改成熟悉的<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">C</code>和<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">V</code>。然后点New host，在adress部分输入Cantabo提供的IP address，双击新增的host，输入账号密码。</p>

<p>注：西风提醒我说终端不用<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">C</code>作复制的快捷键，是因为在终端中，<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">C</code>的作用是“中断当前进程”，后面也用到了它中断当前进程的功能，我临时把快捷键改了回来。</p>

<p><br /></p>

<h3 data-id="n-a-2">开始搭建</h3>

<p>从买VPS到搭站成功一共16小时，不清楚是不是Pullopen站的教程过期，总之二八法则诚不欺我，差不多13小时都在踩坑，很多坑最后我也没弄明白怎么回事，非常稀里糊涂，能跑起来真是谢天谢地谢Roelxy耳提面命一步一步教命令和确认结果，谢纯之教会我遇事不决重装VPS，谢我自己周天早上一拍脑门换参考教程。</p>

<p>这里只记一下大概的步骤流程，本来打算把所有命令的反馈和检查也记一下的，但我不小心把终端整个儿关了查不到历史记录，非常遗憾。</p>

<p>域名我之前就有，更换名称服务器为Cloudfare的名称服务器，在Cloudfare激活站点，之后新添子域名，A记录指向VPS IP，将代理状态改为仅限DNS。</p>

<p>邮件用了Zoho的邮箱服务，但没有配置好，暂时先搁置了。</p>

<hr /><p>首先在Contabo控制面板重装VPS（之前没搞定，有残留且删不掉的数据库，干脆重装），重装时系统换成Debian10（之前用Ubuntu20.04也总报错，不确定是不是Ubuntu的问题，但据纯之说他用Debian10没问题，玄学一下）</p>

<p>之后按<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Flala.im%2F7634.html">Docker快速部署Mastodon</a>的教程来，补充了一些操作时看的内容，仅供参考：</p>

<p>安装需要用到的软件包：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwww.ruanyifeng.com%2Fblog%2F2019%2F09%2Fcurl-reference.html">Curl 的用法指南</a></p>

<pre spellcheck="false" tabindex="0">apt -y update
apt -y install curl git nginx python-certbot-nginx
</pre>

<p>安装Docker：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwww.ruanyifeng.com%2Fblog%2F2016%2F03%2Fsystemd-tutorial-commands.html">Systemd 入门教程：命令篇</a></p>

<pre spellcheck="false" tabindex="0">curl -sSL https://get.docker.com/ | sh
systemctl enable --now nginx docker
</pre>

<p>安装Docker-compose：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwww.runoob.com%2Flinux%2Flinux-comm-chmod.html">Linux chmod命令</a></p>

<pre spellcheck="false" tabindex="0">curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
</pre>

<p>之后检查一下是不是装好了：</p>

<pre spellcheck="false" tabindex="0">docker -v //检查Docker版本
Docker version 20.10.11, build dea9396 //返回内容
docker-compose --version //检查Docker-compose
docker-compose version 1.27.4, build 40524192 //返回内容
</pre>

<p>按Lalaim的教程，长毛象配置文件夹（也就是yml所在的文件夹）是<code spellcheck="false" tabindex="0">/opt/mastodon</code>，所以之后拉取文件在opt目录下进行，拉取后定位到<code spellcheck="false" tabindex="0">/opt/mastodon</code>再操作其他的。</p>

<pre spellcheck="false" tabindex="0">cd /opt
git clone https://github.com/tootsuite/mastodon.git
cd mastodon/
</pre>

<p>复制配置文件，再重命名原来自带的配置文件：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwww.runoob.com%2Flinux%2Flinux-comm-cp.html">Linux cp 命令</a>、<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fwww.runoob.com%2Flinux%2Flinux-comm-mv.html">Linux mv 命令</a></p>

<pre spellcheck="false" tabindex="0">cp .env.production.sample .env.production
mv docker-compose.yml docker-compose.yml.bak
</pre>

<p>编辑<code spellcheck="false" tabindex="0">docker-compose.yml</code></p>

<pre spellcheck="false" tabindex="0">nano docker-compose.yml
</pre>

<p>之后开始修改配置，这里要参考<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E5%259F%25BA%25E7%25A1%2580%25E6%2590%25AD%25E5%25BB%25BA%2F2020%2F10%2F19%2FMastodon-on-Docker.html">Pullopen的教程</a>，把数据库版本之类的改一改：</p>

<pre spellcheck="false" tabindex="0">version: '3.5'

services:
  mastodon-db:
    image: postgres:9.6-alpine //这里把9.6换成12.5
    shm_size: 256mb
    environment:
      POSTGRES_DB: mastodon //注意名称为mastodon
      POSTGRES_USER: 设置为你想要的数据库用户名
      POSTGRES_PASSWORD: password //数据库密码
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
    volumes:
      - ./postgres:/var/lib/postgresql/data
    restart: unless-stopped

  mastodon-redis:
    image: redis:6.0-alpine
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
    volumes:
      - ./redis:/data
    restart: unless-stopped

  mastodon-web:
    image: tootsuite/mastodon //改为image: tootsuite/mastodon:latest
    env_file: .env.production
    command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
    depends_on:
      - mastodon-db
      - mastodon-redis
    healthcheck:
      test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:3000/health || exit 1"]
    ports:
      - "127.0.0.1:3000:3000"
    volumes:
      - ./public/system:/mastodon/public/system
    restart: unless-stopped

  mastodon-streaming:
    image: tootsuite/mastodon //改为image: tootsuite/mastodon:latest
    env_file: .env.production
    command: node ./streaming
    depends_on:
      - mastodon-db
      - mastodon-redis
    healthcheck:
      test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"]
    ports:
      - "127.0.0.1:4000:4000"
    restart: unless-stopped

  mastodon-sidekiq:
    image: tootsuite/mastodon //改为image: tootsuite/mastodon:latest
    env_file: .env.production
    command: bundle exec sidekiq
    depends_on:
      - mastodon-db
      - mastodon-redis
    volumes:
      - ./public/system:/mastodon/public/system
    restart: unless-stopped
</pre>

<p>然后开始配置Mastodon，运行：</p>

<pre spellcheck="false" tabindex="0">docker-compose run --rm mastodon-web bundle exec rake mastodon:setup
</pre>

<p>出现Domain name时，依次输入以下配置</p>

<pre spellcheck="false" tabindex="0">Domain name: # Mastodon域名
Do you want to enable single user mode? # Yes //这里也可以用no，单人模式下不开放注册页面，访问域名会直接跳转到你的Mastodon主页
Are you using Docker to run Mastodon? # Yes
PostgreSQL host: # mastodon-db //注意名称
PostgreSQL port: # 5432 //默认端口，直接回车就行
Name of PostgreSQL database: # mastodon //注意名称
Name of PostgreSQL user: 刚刚填的数据库用户名
Password of PostgreSQL user: # 刚刚写的数据库密码，填写时不显示填写内容，盲敲后回车就行，出错/成功时都有很明显的提示
Redis host: # mastodon-redis //注意名称
Redis port: # 6379 //默认端口，直接回车
Redis password: # 留空，直接回车
Do you want to store uploaded files on the cloud? # No //这里是问文件要不要上云存储，可以暂时先不上，之后再根据情况做修改
Do you want to send e-mails from localhost? # Yes //是不是从主机发邮件？
Send a test e-mail with this configuration right now? # No //问是不是要发测试邮件，No掉它
Save configuration? Yes //是否保存
</pre>

<p>Yes后会立刻返回一大段内容，格式和上面这段代码块差不多，立刻保存下来，之后要用。</p>

<p>看到这段提示后退出来，教程说<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">C</code>退出，但之前我把<code spellcheck="false" tabindex="0">Ctrl</code>+<code spellcheck="false" tabindex="0">C</code>改成了复制键，这里改回来也很简单，Termius有不同的快捷键文件，暂时改回原来的文件就好。</p>

<pre spellcheck="false" tabindex="0">Prepare the database now? (Y/n)
</pre>

<p>之后清空默认配置，并编辑配置文件，把刚刚保存的配置内容复制进去：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.csdn.net%2Fxukai871105%2Farticle%2Fdetails%2F35834703">如何使用echo指令向文件写入内容</a></p>

<pre spellcheck="false" tabindex="0">echo &gt; .env.production
nano .env.production
</pre>

<p>再重新运行一次配置向导，确保配置和上面保持一致</p>

<pre spellcheck="false" tabindex="0">docker-compose run --rm mastodon-web bundle exec rake mastodon:setup
</pre>

<pre spellcheck="false" tabindex="0">Prepare the database now? (Y/n) # Yes
Compile the assets now? (Y/n) # Yes
Do you want to create an admin user straight away? Yes //创建管理员账号，这一步会为你创建一个Mastodon账号
Username:Mastodon账号名
E-mail: 填个常用邮箱吧
You can login with the password:这部分是Mastodon密码，记得保存
You can change your password once you login.
</pre>

<p>开启容器内服务，把public的目录所有者改为容器内的</p>

<pre spellcheck="false" tabindex="0">docker-compose up -d
chown -R 991:991 public
</pre>

<p>复制nginx的站点配置文件并编辑</p>

<pre spellcheck="false" tabindex="0">cp /opt/mastodon/dist/nginx.conf /etc/nginx/conf.d/mastodon.conf
nano /etc/nginx/conf.d/mastodon.conf
</pre>

<p>改动配置文件内容如下：</p>

<pre spellcheck="false" tabindex="0">……

server {
    if ($host = toot.mantyke.icu) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


  listen 80;
  listen [::]:80;
  server_name Mastodon域名; 
  root /opt/mastodon/public; //改为public目录的绝对路径
  location /.well-known/acme-challenge/ { allow all; }
  location / { return 301 https://$host$request_uri; }


}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name Mastodon域名;

  ……

  root /opt/mastodon/public; //改为public目录的绝对路径

  ……
</pre>

<p>最后签发SSL证书，有一些需要选择的部分看情况选就行了</p>

<pre spellcheck="false" tabindex="0">certbot --nginx
</pre>

<p>稍等一会儿，刷新Mastodon域名，就看到站点上线了，Hello World！</p>

<p><br /></p>

<h3 data-id="n-a-3">遇到的坑</h3>

<p>这里大概写一下遇到的坑……遇到挺多坑的，大部分也没搞清楚，总之于遇事不决上VPS控制面板重装机器，人是光脚不愁嘛。</p>

<p>一开始走到最后一步发现域名只能显示Nginx页面，可能是数据库出错。想把数据库删掉，但用了各种方法都还残留了一部分。只能重装机子后再搞，但证书又装不上，装上了又有个什么服务在不断重启启动失败，伴随着全过程的zoho邮箱配置失败，总之焦头烂额。</p>

<p>常用重启功能：</p>

<pre spellcheck="false" tabindex="0">docker-compose down
docker-compose up -d
</pre>

<p>猜测Zoho配置失败是因为SMTP server用了欧洲版的地址（smtp.zoho.eu），改成国际版（smtp.zoho.com）可能就可以了，暂时不考虑开放注册，因此再说再说。</p>

<p>通过<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fdocs.joinmastodon.org%2Fzh-cn%2Fadmin%2Ftootctl%2F">管理命令行</a>也可以增加账号，不打算增加太多用户的话，好像也没必要一定配置邮件功能。</p>

<p><strong>4.29日补充</strong>：数据库出错，不断重启，之后找到了一个解决办法（没有尝试过）可能有效：列出资料库容器并删除相关数据，命令如下：</p>

<pre spellcheck="false" tabindex="0">docker volume ls -q 列出资料库容器
docker volume rm 容器名称 #删除数据
</pre>

<p>Zoho配置失败的猜想是正确的，是因为SMTP server需要配置为国际版的地址，附上我之后使用的配置做参考：</p>

<pre spellcheck="false" tabindex="0">SMTP_SERVER=smtp.zoho.com
SMTP_PORT=587
SMTP_LOGIN=admin@mantyke.icu（设定好的zoho发件邮箱）
SMTP_PASSWORD=密码
SMTP_AUTH_METHOD=plain
SMTP_OPENSSL_VERIFY_MODE=none
SMTP_FROM_ADDRESS=mastodon &lt;admin@mantyke.icu&gt;
</pre>

<p><br /></p>
]]>
        </description>
    </item>
    <item>
        <title>给新站长：建站后可参考的运维及装修相关操作</title>
        <link>https://fediverse.eu.org/discussion/15/%E7%BB%99%E6%96%B0%E7%AB%99%E9%95%BF-%E5%BB%BA%E7%AB%99%E5%90%8E%E5%8F%AF%E5%8F%82%E8%80%83%E7%9A%84%E8%BF%90%E7%BB%B4%E5%8F%8A%E8%A3%85%E4%BF%AE%E7%9B%B8%E5%85%B3%E6%93%8D%E4%BD%9C</link>
        <pubDate>Fri, 29 Apr 2022 04:40:56 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>Mantyke</dc:creator>
        <guid isPermaLink="false">15@/discussions</guid>
        <description><![CDATA[<p>把我的Mastodon建站后运维及装修手册搬过来！<br />
原地址：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmantyke.icu%2F2022%2Fmastodon_mammota%2F">Mastodon | 给新站长：建站后的运维及装修手册</a></p>

<p>一些基础说明：</p>

<ol><li>我的 Mastodon 站点以 Docker 搭建，运行在搭载 Debian 10 系统的 VPS 上，VPS 购买于 Contabo，选择 5 欧元的基础套餐，搭建过程见建站笔记。</li>
<li>本文涉及的绝大部分内容均来源于 Fedi 内的朋友们手把手教学，本文仅作记录 / 汇总 / 补充，万分感谢！</li>
<li>本文内容基于以 Docker 搭建的 Mastodon 站点写作。</li>
</ol><hr /><h2 data-id="tootctl">使用tootctl命令</h2>

<p>在根据教程进行改动（照抄）之前，首先学会使用<code spellcheck="false" tabindex="0">tootctl</code>命令。具体流程可参考：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.tantalum.life%2Fposts%2Fhow-to-run-your-mastodon-by-docker%2F%23%25E4%25BD%25BF%25E7%2594%25A8alias%25E8%2584%259A%25E6%259C%25AC%25E7%25BC%25A9%25E5%2586%2599tootctl%25E5%2591%25BD%25E4%25BB%25A4">使用alias脚本缩写tootctl命令</a></p>

<p>教程写的已经很清楚明白，补充一点我操作过程中遇到的问题：</p>

<blockquote><div>
  <ol><li>脚本中的<code spellcheck="false" tabindex="0">docker-compose run --rm web bin/tootctl</code>一行，需要根据自己的实际web容器名称来修改，运行<code spellcheck="false" tabindex="0">docker ps</code>查看正在运行的容器，寻找看起来最靠谱的一项替换即可。比如我的web容器名称为<code spellcheck="false" tabindex="0">mastodon_mastodon-web_1</code>，这一行我写作<code spellcheck="false" tabindex="0">docker-compose run --rm mastodon-web bin/tootctl</code></li>
  <li>运行<code spellcheck="false" tabindex="0">tootctl</code>后，可能会出现很长一段<code spellcheck="false" tabindex="0">warning</code>警告信息，其中包括类似<code spellcheck="false" tabindex="0">ruby</code>一类的关键词，不要惊慌，无视即可，这是Mastodon镜像自己的问题：使用了ruby2.7版本，升级为3.0版本之后就不会有这些报错了。一些站长的魔改镜像中进行了ruby的升级，不升级也可以。</li>
  <li>可以尝试使用<code spellcheck="false" tabindex="0">tootctl help</code>命令来验证是否已经设置成功。</li>
  </ol></div></blockquote>

<p>通过<code spellcheck="false" tabindex="0">tootctl</code>命令，我们可以在命令行上进行实例设置以及管理操作，Mastodon的命令行文档为<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fdocs.joinmastodon.org%2Fzh-cn%2Fadmin%2Ftootctl%2F">使用管理命令行</a></p>

<p><br /></p>

<h2 data-id="n-a">必修：备份、清理、升级</h2>

<h3 data-id="n-a-1">站点数据库/媒体文件备份</h3>

<p>搭建站点后，做好数据库备份工作非常重要，防止因为误操作丢失站点数据。备份分为数据库备份/站点媒体备份两种，备份途径可以选择本地备份/云端备份。如何选择备份策略？在这里，我给出一点不成熟的参考：</p>

<p><strong>关于数据库大小</strong>：我的站点日常活跃5人左右，截至文章发布时间，共运行3个月，全站嘟文约4K，每天备份一次数据库，保留七天以内的备份，目前总存储量1.31G，每天的存储大小约为190M，每天增长约3M。</p>

<p><strong>关于媒体文件大小</strong>：在打开三个中继的前提下，我曾经约一个半月没有清理过站点媒体存储，当时的硬盘占用可以参考如下数据：</p>

<pre spellcheck="false" tabindex="0">tootctl media usage #一个命令，用于计算被Mastodon消耗的硬盘空间。
Attachments:  92.7 GB (18.9 MB local) 
Custom emoji: 209 MB (1.1 MB local)
Preview cards: 999 MB
Avatars:      1.44 GB (88.4 KB local)
Headers:      3.39 GB (0 Bytes local)
Backups:      0 Bytes
Imports:      0 Bytes
settings:     0 Bytes
</pre>

<p>站点运行三个月并执行完相关清理命令后，我的站点硬盘占用为：</p>

<pre spellcheck="false" tabindex="0">Attachments:    4.17 GB (116 MB local)
Custom emoji:   153 MB (4.58 MB local)
Preview cards:  938 MB
Avatars:        2.04 GB (980 KB local)
Headers:        4.73 GB (2.46 MB local)
Backups:        63.8 MB
Imports:        0 Bytes
Settings:       1.15 MB
</pre>

<p>云端备份选择很多，较为流行的选择是Scaleway，提供75G的免费储存空间，每月75G流量，超出部分按0.01刀/G/月计算。具体步骤可参考：</p>

<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E7%25AB%2599%25E7%2582%25B9%25E7%25BB%25B4%25E6%258A%25A4%2F2020%2F07%2F22%2FMove-mastodon-media-to-Scaleway.html">如何将Mastodon媒体上传至Scaleway云储存</a><br /><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Ftech.konata.co%2F2022-02-20-mastodon-backup%2F">Mastodon 媒体存储和数据库备份</a></p>

<p>顺便提一个卡了我一会的东西：教程中的<code spellcheck="false" tabindex="0">Create an OS Bucket</code>实际上就是点击<code spellcheck="false" tabindex="0">creat</code>后点击<code spellcheck="false" tabindex="0">Object Storage Bucket</code>，当时没反应过来……<br />
数据是留存在本地还是上云建议尽快决定，如果本地存储达到一定量，上云时迁移过程会很长，如果上云，由于Scaleway按照流量计费，记得定期上去看一眼，并做好相关的网络防护措施（一般来说，把Cloudfare的小橙云打开就可以起到一定的防护作用，其他的防护手段就需要自行学习了）</p>

<p><br /></p>

<h3 data-id="n-a-2">站点媒体清理</h3>

<p>Mastodon的跨站轴机制决定了会有很多来自其他站的远程媒体文件，如果不执行清理，它们有可能会塞爆你的存储导致媒体功能受到影响，因此经常清理/设置一个定时清理也很重要。</p>

<p>一些经常会用到的清理相关<code spellcheck="false" tabindex="0">tootctl</code>命令，介绍来自官方：</p>

<blockquote><div>
  <p><code spellcheck="false" tabindex="0">tootctl media usage</code> ：计算被Mastodon消耗的硬盘空间。<br /><code spellcheck="false" tabindex="0">tootctl cache clear</code> ：清除缓存存储。<br /><code spellcheck="false" tabindex="0">tootctl media remove</code> ：移除本地缓存的其它实例媒体附件。<br /><code spellcheck="false" tabindex="0">tootctl media remove-orphans</code> ：扫描出不属于任何媒体附件的文件并移除他们。请注意，某些存储提供商会对列出对象所必需的API收取费用。另外，此操作需要遍历每个文件，因此速度很慢。<br /><code spellcheck="false" tabindex="0">tootctl statuses remove</code> ：从数据库中删除未被引用的嘟文，例如来自中继的或来自本地用户不再关注的用户的嘟文，同时没有被回复的或以其他方式与之互动的。这是一个计算量很大的操作，其会开始之前创建额外的数据库索引，并在结束后删除它们。默认清除90天之前的嘟文，也可以通过--days来进行指定，例如tootctl statuses remove --days30</p>
</div></blockquote>

<p>也可以设置一个定时清理文件从而解放双手，此处可以参考<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.tantalum.life%2Fposts%2Fhow-to-run-your-mastodon-by-docker%2F%23%25E5%25AE%259A%25E6%259C%259F%25E6%25B8%2585%25E7%2590%2586%25E5%25A4%2596%25E7%25AB%2599%25E5%25AA%2592%25E4%25BD%2593%25E6%2596%2587%25E4%25BB%25B6">定期清理外站媒体文件</a></p>

<p><br /></p>

<h3 data-id="n-a-3">站点版本和升级</h3>

<p>Mastodon版本仍在不断更新中，可以通过他们的<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fgithub.com%2Fmastodon%2Fmastodon">Gtihub仓库</a>来查看版本更新说明。</p>

<p>如果你的站点完全使用<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fhub.docker.com%2Fr%2Ftootsuite%2Fmastodon">官方镜像</a>，那么升级非常简单，只需要执行以下几个命令：</p>

<pre spellcheck="false" tabindex="0">docker pull tootsuite/mastodon:latest #下载最新镜像
docker-compose down #下线镜像
docker-compose up -d #重新启动镜像
</pre>

<p>如果使用了其他站长修改的镜像，确认站长更新过镜像之后，修改上面步骤中的<code spellcheck="false" tabindex="0">tootsuite/mastodon:latest</code>为你使用的镜像，其他步骤一致<br />
如果自己魔改了站点，合并过Github仓库后，将<code spellcheck="false" tabindex="0">tootsuite/mastodon:latest</code>修改为魔改后的自己的镜像，其他步骤一致。</p>

<p><br /></p>

<h2 data-id="n-a-4">选修：添加站点功能</h2>

<p>注意：以下功能均非必须，可以根据自己喜好来挑选使用。</p>

<h3 data-id="n-a-5">开启全文搜索</h3>

<p>步骤可以根据蓝盒子站长的文章进行操作：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E5%259F%25BA%25E7%25A1%2580%25E6%2590%25AD%25E5%25BB%25BA%2F2020%2F10%2F19%2FMastodon-on-Docker.html">开启全文搜索</a></p>

<p>注意：Mastodon中的全文搜索的概念与新浪微博等平台的搜索功能不同，以下是文档描述：</p>

<blockquote><div>
  <p>Mastodon的全文搜索允许登录用户从他们自己的嘟文、他们喜欢的嘟文、他们的书签和他们被提及的嘟文中查找相应结果。Mastodon有意禁用了在全数据库搜索任意关键词的功能。</p>
</div></blockquote>

<p>原因可以参考bgme站长的《谈谈长毛象那些奇怪的设计——写给长毛象新用户》：</p>

<blockquote><div>
  <p>“这样的设计同样也是为了<strong>防止欺凌与骚扰</strong>。 不知你是否在使用新浪微博的过程中经历过这样的事情，在自己没几个人关注的帐号里自言自语评论了一下某明星或大 V，然后莫名其妙的就有一些人跑到你的自言自语下面评论甚至辱骂。这些人怎么过来的呢？其中一个重要的途径就是搜索。搜索一些关键词，然后顺着搜索结果挨个评论轰炸。 长毛象将搜索功能限制为只能在自己发出的嘟文以及自己互动过的嘟文中进行搜索，彻底杜绝了通过搜索某些关键词，不请自来的对用户进行骚扰或欺凌的可能。”</p>
</div></blockquote>

<p><br /></p>

<h3 data-id="n-a-6">加入站点中继</h3>

<p>根据Mastodon的跨站机制，跨站公共时间轴上的信息并非所有联邦宇宙中的公共信息，而是显示所在的服务器所知道的所有公共嘟文，这些信息一般来自于所在服务器上用户的关注的人。<br />
也就是说，如果站点为个人使用/用户不多，跨站轴上的内容就会相应变少，为此，可以使用Mastodon中继服务来扩充跨站轴上的信息，更好地与联邦宇宙互通。</p>

<p>官方说明如下：</p>

<blockquote><div>
  <p><strong>中继服务器</strong>是一个信息统合服务器，各服务器可以通过订阅中继服务器和向中继服务器推送信息来交换大量公开嘟文。<strong>它可以帮助中小型服务器发现联邦宇宙中的其他服务器的内容</strong>，而无需本站用户手动关注其他远程服务器上的用户。</p>
</div></blockquote>

<p>出于安全考虑，这里不公开中继地址，如有需要，可以自行摸索。</p>

<p><strong>注意</strong>：开启中继后，小实例可能会出现跨站消息堵塞（中继中有大站点，信息流太频繁，堵塞了小实例的sidekiq），跨站时间轴混乱（来自更远时间前的内容插入了当前跨站时间轴）等情况，请确认能够接受（基本无伤大雅）。同时，添加的中继多，会导致服务器的PostgreSQL数据库体积增加。</p>

<p>可以通过以下路径查看数据库空间：管理-PgHero-space，可以查看到目前未使用的索引/档案大小和七天增长。</p>

<h4 data-id="sidekiq">增加sidekiq线程数</h4>

<p>sidekiq是后台任务处理系统，这里引用bgme站长的<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.bgme.me%2Fposts%2Fthe-experience-of-mastodons-follows-and-followers-managing-function%2F">文章</a>，解释一下跨实例接收嘟文的机制（原文写的是跨实例关注，实际差不多）</p>

<blockquote><div>
  <p>比方说，位于BGME实例的账号A关注了位于CMX实例的账号B。 关注之后，账号A可以接收到账号B的动态（新嘟文、点赞 转发等）。</p>
</div></blockquote>

<p>&gt;</p>

<blockquote><div>
  <p>其背后的机制则是这样的：账号B有新动态，CMX实例服务器根据关注列表（订阅列表）生成推送任务，<code spellcheck="false" tabindex="0">mastodon-sidekiq</code> 执行推送任务。 BGME实例接收到动态推送，将新动态存入实例数据库，同时根椐本实例关注账号B的用户列表，生成相应账号的时间线与通知。</p>
</div></blockquote>

<p>所以，如果由于大实例嘟文数量过多，造成了小实例的嘟文堵塞，可以通过增加sidekiq线程数来提高处理能力，如何判断合适的线程数可以参考bgme的<a rel="nofollow" href="https://bgme.me/@bgme/104811829396720912">嘟文</a></p>

<p>具体操作方法，参考南狐的<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fnote.southfox.me%2F%23%2Fpage%2Fmastodon%2520%25E5%25A2%259E%25E5%258A%25A0%2520sidekiq%2520%25E7%25BA%25BF%25E7%25A8%258B">mastodon 增加 sidekiq 线程</a></p>

<p><br /></p>

<h3 data-id="n-a-7">开启安全模式</h3>

<p>相关操作步骤及介绍见<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.bgme.me%2Fposts%2Fthe-necessity-of-chinese-instance-to-enable-secure-mode%2F">中文长毛象实例开启 secure mode 的必要性</a>，简单一句话就是可以阻止站点嘟文流入你不想它流入的站点。</p>

<p><strong>注意</strong>：安全模式开启后，站点将无法使用中继服务，对于需要中继服务来扩充跨站轴的个人站/小站点来说不够友好，另外，由于兼容性问题，将无法接收到站点版本在v3.0.0以下的站点的消息。最后，有站长提到过，它也会造成额外的服务器计算压力。</p>

<h3 data-id="n-a-8">进阶站点安全措施</h3>

<h4 data-id="n-a-9">屏蔽特定浏览器/设备/服务访问</h4>

<p>参考草莓酱的屏蔽规则<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fm.cmx.im%2F%40strawberry%2F107752003412174851">嘟嘟</a></p>

<h4 data-id="nginx">使用nginx隐藏特定用户主页/嘟文</h4>

<p>参考faketaoist的nginx规则<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmstd.dansmonorage.blue%2F%40faketaoist%2F107764913542021116">嘟嘟</a></p>

<p><br /></p>

<h2 data-id="n-a-10">选修：站点魔改</h2>

<p>站点魔改有两种：使用其他站长提供的现成镜像/自己Fork官方仓库，修改代码。</p>

<h3 data-id="n-a-11">使用现成镜像</h3>

<p>参考：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.tantalum.life%2Fposts%2Fnotes-on-modifying-mastodon-in-docker%2F%23%25E5%258A%25A0%25E5%2585%25A5%25E9%25AD%2594%25E6%2594%25B9%25E9%2585%258D%25E7%25BD%25AE">Mastodon | 记录大型魔改过程</a>的步骤进行。</p>

<p><strong>注意</strong>：如果使用小森林站长的魔改镜像， 需要注意下这个镜像的编辑嘟文功能，目前编辑后的嘟文只能在实装这个功能的站点之内互通，也就是说，如果对方站点没有更新编辑嘟文功能，就只能看到编辑前的内容，看不到编辑后的嘟文内容。</p>

<p>另外特别提醒：迁移镜像很有可能会碰到<code spellcheck="false" tabindex="0">500报错</code>，即无法发送嘟文，左下角弹出500提示，此时需要根据<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.tantalum.life%2Fposts%2Fnotes-on-modifying-mastodon-in-docker%2F%23%25E5%2590%258E%25E7%25BB%25AD%25E5%25B7%25A5%25E4%25BD%259C">后续工作</a>的代码进行数据库迁移（web同样需要改为自己的web容器名称）：</p>

<pre spellcheck="false" tabindex="0">docker-compose run --rm web rails db:migrate
</pre>

<p>之后如果还是有问题，尝试多次<code spellcheck="false" tabindex="0">docker-compose down</code> &amp;<code spellcheck="false" tabindex="0">docker-compose up -d</code>，在实操中，我遇见过重启镜像2-3次后恢复正常的情况，原因不明。</p>

<h3 data-id="n-a-12">自己魔改镜像</h3>

<p>参考：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E8%25BF%259B%25E9%2598%25B6%25E9%25AD%2594%25E6%2594%25B9%2F2020%2F11%2F01%2FMastodon-on-Docker-2.html">如何利用Docker搭建Mastodon实例（二）：进阶魔改篇</a></p>

<p>如果你想在其他站长镜像上进行进一步修改，只需要把“Fork官方代码仓库”这一步修改为“Fork 你使用的镜像代码仓库”即可。</p>

<p>另外，此方介绍了一种可以在容器内修改代码并实时生效的方式，可以让调试变得更轻松，参考：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Ftech.konata.co%2F2022-02-23-mastodon-debug-in-container%2F">Docker 部署的 mastodon 在容器内 debug</a></p>

<p><br /></p>

<h3 data-id="n-a-13">一些常用的修改</h3>

<p>修改字数上限、媒体上限、投票上限、添加自定义主题、界面用语等修改，参考蓝盒子站长的<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E8%25BF%259B%25E9%2598%25B6%25E9%25AD%2594%25E6%2594%25B9%2F2020%2F11%2F14%2Fmastodon-modify.html">轻量魔改方法</a><br />
常用自定义CSS同样参考蓝盒子站长的<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E7%25AB%2599%25E7%2582%25B9%25E7%25BB%25B4%25E6%258A%25A4%2F2020%2F11%2F26%2Fmastodon-manage.html">如何装饰你的站点</a></p>

<h4 data-id="n-a-14">修改昵称字数上限</h4>

<p>参考鳗鱼的这份<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fgithub.com%2Frararwg%2Fmastodon%2Fcommit%2Ff12b89fb3d3694223f5e55ae8907636c190b8de4">commit</a>进行修改</p>

<h4 data-id="favicon">修改站点 Favicon</h4>

<p>（待补）</p>

<h4 data-id="n-a-15">修改注册提示语</h4>

<p>如果你开启了“注册时需要批准”功能，想在“你为什么想要加入？”下加入一段注册提示语：<br />
路径：<code spellcheck="false" tabindex="0">mastodon/config/locales/simple_form.zh-CN.yml</code>，找到<code spellcheck="false" tabindex="0">invite_request</code>项，修改<code spellcheck="false" tabindex="0">text</code>的内容。<br /><img src="https://res.cloudinary.com/mantyke/image/upload/v1645953330/%E4%BD%A0%E4%B8%BA%E4%BB%80%E4%B9%88%E6%83%B3%E8%A6%81%E5%8A%A0%E5%85%A5_pd6mp7.png" alt="修改注册提示语" /></p>

<h4 data-id="n-a-16">调整吉祥物位置</h4>

<p>吉祥物就是发嘟页面最下方（手机可以看到/浏览器页面调窄也可以看到）的图片，站长可以自主上传，同时也会出现在“关于本站”“站点公告”中</p>

<p>吉祥物默认居左，如果想让它居右</p>

<pre spellcheck="false" tabindex="0">/*站点吉祥物*/
.drawer__inner__mastodon&gt;img {
    object-position: right bottom;
    margin-left: auto;
}
</pre>

<p>如果想让它居中：</p>

<pre spellcheck="false" tabindex="0">/*站点吉祥物*/
.drawer__inner__mastodon&gt;img {
    object-position: bottom;
    margin: auto;
}
</pre>

<p>另外，也可以调节大小：</p>

<pre spellcheck="false" tabindex="0">/*站点吉祥物*/
.drawer__inner__mastodon&gt;img {
    width: 65%;
    height: 100%;
}
</pre>

<p><br /></p>

<h2 data-id="n-a-17">手册：使用站点后台管理</h2>

<p>站长可以使用站点后台管理界面来对站点进行修改，包括本站名称/本站简介等等，这里简单写一点可以参考的部分。</p>

<h3 data-id="n-a-18">网站设置</h3>

<h4 data-id="n-a-19">区分三种站点介绍</h4>

<p>服务器一句话介绍：出现在站点首页右下方、嘟文页面的右侧</p>

<p>本站简介：不出现在网页中，而是由API读取，如果使用APP搜索实例，就会读到这里设置的内容</p>

<p>本站详细介绍：出现在“关于本站”中，可以用html标题进行分栏</p>

<h4 data-id="n-a-20">推荐勾选的设置</h4>

<p>推荐勾选“默认不让用户被搜索引擎索引”，可以避免用户内容被搜索引擎爬取，对隐私更友好。</p>

<h4 data-id="n-a-21">自定义使用条款</h4>

<p>和“实例规则”的区别是：填写实例规则后，会在“关于本站”页面最上方增加一个二级标题：服务器规则，并以引用形式加入实例规则内容。而使用条款则只会出现在“使用条款”页面中。</p>

<p><br /></p>

<h3 data-id="n-a-22">自定义表情</h3>

<h4 data-id="n-a-23">拉取别站表情</h4>

<p>可以通过这项设置远程拉取别站的表情到自己的服务器，操作步骤如下：<br />
1. 前提：确保站点拉取到了你想要的表情，新站点与外界联通有限的情况下，可以考虑开几天中继，让服务器接收足够的外站表情。<br />
2. 搜索表情短代码，例如常用的blob{{&lt; emoji name="ablobattention" ext="gif" width="40" &gt;}}<br />
3. 全选，之后点击复制，表情就会被复制到本站。<br />
4. 位置选择为本站，搜索刚刚复制来的表情，全选，新建一个分类名称，然后选择保存更改。</p>

<p>注：部分表情包可能为他站自用，或者有授权问题，copy前最好先和出处站点<strong>确认</strong>一下，并给出credit。</p>

<p><strong>可以找到出处的方法有</strong>：</p>

<ol><li>在界面，表情的最右方，会显示一个站点名称，“可能”是表情包的来源站点（不能完全肯定是，有一些表情包会显示多个来源站点，可能是和服务器拉取有关系）</li>
<li>可以根据右方的站点地址找到拥有这个表情的站点，查看他们的“关于本站”界面，大部分站长会把自定义表情包来源写在这里，或者也可以询问该站表情包出处。</li>
<li>如果你拥有来源站点的账号，也可以看他们的表情包分类，分类中也可能写有出处。</li>
</ol><p>如果对方同意你使用这些表情，<strong>复制表情后可以做的事情是</strong>：</p>

<ol><li>在站点表情分类中写出表情包来源。</li>
<li>在“网站设置-本站详细介绍”中写明表情包来源。</li>
</ol><h4 data-id="n-a-24">不解析特定表情</h4>

<p>如果有表情引起你的不适，可以设置不显示这个表情，步骤如下：<br />
1. 复制这个表情到输入框，获取表情短代码。<br />
2. 在自定义表情中搜索这个短代码，勾选，点击停用。<br />
3. 之后别人再发送这个表情，表情就不会被解析为图片，而是显示为表情短代码。</p>

<h4 data-id="n-a-25">批量上传自定义表情</h4>

<p>如果想上传新的表情，可以使用兔子老师的偷表情神器，步骤参见：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E7%25AB%2599%25E7%2582%25B9%25E7%25BB%25B4%25E6%258A%25A4%2F2020%2F11%2F26%2Fmastodon-manage.html">自定义表情</a></p>

<p><br /></p>

<h2 data-id="mastodon-bot">附加题：Mastodon bot</h2>

<p>请注意：请合理使用bot功能，包括但不限于：不要未授权转载私人账号内容，不使用bot功能对其他用户进行监听、骚扰。</p>

<h3 data-id="mastodon">微博转发到Mastodon</h3>

<p>可以使用小森林站长写的python脚本：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fgithub.com%2Fmashirozx%2Fweibo2toot">weibo2toot</a></p>

<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmantyke.icu%2F2022%2Fweibo2toot%2F">Mastodon | 微博转发到 Mastodon bot</a></p>

<h3 data-id="bot">其他bot功能</h3>

<p>可以参考的内容：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmastodonpy.readthedocs.io%2Fen%2Fstable%2F">mastodon.py</a>，一个python的mastodon api包。</p>

<p>另外，也可以使用<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fcheapbotstootsweet.com%2F">Cheap Bots</a>来简单实现推送/应答的功能。</p>

<p><br /></p>

<h2 data-id="n-a-26">参考资料：</h2>

<p>Mastodon搭建指南：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2Fcatalog%2F">链接</a></p>

<p>Mastodon | 采用docker建站后的使用与维护：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.tantalum.life%2Fposts%2Fhow-to-run-your-mastodon-by-docker%2F%23%25E4%25BD%25BF%25E7%2594%25A8alias%25E8%2584%259A%25E6%259C%25AC%25E7%25BC%25A9%25E5%2586%2599tootctl%25E5%2591%25BD%25E4%25BB%25A4">链接</a></p>

<p>Mastodon | 记录大型魔改过程：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fblog.tantalum.life%2Fposts%2Fnotes-on-modifying-mastodon-in-docker%2F">链接</a></p>

<p>使用 Mastodon 搭建个人信息平台：前篇：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fsoulteary.com%2F2022%2F01%2F24%2Fbuilding-a-personal-information-platform-with-mastodon-part-1.html">链接</a></p>

<p>使用 Mastodon 搭建个人信息平台：调优篇：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fsoulteary.com%2F2022%2F01%2F25%2Fbuilding-a-personal-information-platform-with-mastodon-part-2.html">链接</a></p>

<p>Mastodon 的基本维护：<a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Ftand.me%2F36117">链接</a></p>

<p><br /></p>
]]>
        </description>
    </item>
    <item>
        <title>长毛象（Mastodon）社区搭建详解</title>
        <link>https://fediverse.eu.org/discussion/8/%E9%95%BF%E6%AF%9B%E8%B1%A1-mastodon-%E7%A4%BE%E5%8C%BA%E6%90%AD%E5%BB%BA%E8%AF%A6%E8%A7%A3</link>
        <pubDate>Fri, 29 Apr 2022 01:44:45 +0000</pubDate>
        <category>Mastodon/长毛象</category>
        <dc:creator>salt</dc:creator>
        <guid isPermaLink="false">8@/discussions</guid>
        <description><![CDATA[<p>本教程使用的方法是从源安装，如想要更简便的Docker安装方式，请参阅下方“其他搭建方式”。</p>

<h1 data-id="n-a">目录</h1>

<p>第〇章：搭建之前应该思考的问题</p>

<p>第一章：选购域名</p>

<p>第二章：Cloudflare 的接入与配置</p>

<p>第三章：服务器的选购与部署</p>

<p>第四章：部署邮件 SMTP 服务</p>

<p>第五章：安装长毛象服务器（从源代码安装）</p>

<p>第六章：部署媒体文件外部存储服务</p>

<p>第七章：定期异地备份数据库和关键配置</p>

<h1 data-id="n-a-1">阅读本教程</h1>

<p>👉 <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Frobust-corn-375.notion.site%2FMastodon-042a05ee29a048df8b2c1afd49e4c49b">长毛象（Mastodon）社区搭建详解</a></p>

<h1 data-id="n-a-2">其他搭建方式</h1>

<p>本教程是的目的是写给（和我一样）非 IT 技术背景但又不想使用一键安装/托管服务的嘟友们，如果你觉得本教程不适合你的需求，请参考以下资源：</p>

<h2 data-id="docker">利用 Docker 安装</h2>

<p><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E5%259F%25BA%25E7%25A1%2580%25E6%2590%25AD%25E5%25BB%25BA%2F2020%2F10%2F19%2FMastodon-on-Docker.html">如何利用Docker搭建Mastodon实例</a> by <a href="https://fediverse.eu.org/profile/flyover%40pullopen" rel="nofollow">@flyover@pullopen</a>.xyz</p>

<p>该教程开头解释了使用 Docker 安装的优缺点，在选择安装方式前可作参考。</p>

<h2 data-id="yunohost">YunoHost 一键安装</h2>

<p><strong>适用于任何操作系统为 Debian 10.x，内存不少于 512 MB 的新创建纯净的服务器。</strong></p>

<ol><li>根据 <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fyunohost.org%2F%23%2Finstall">官方教程</a> 安装 YuhoHost，如果要安装在 VPS 上，选择 <code spellcheck="false" tabindex="0">Install on a remote server</code></li>
<li>根据指示操作安装完成后，在后台界面 Application 中找到 Mastodon，一键安装即可。</li>
</ol><h2 data-id="digital-ocean-vps">Digital Ocean VPS 一键安装</h2>

<p><strong>如果你想使用一键安装方式来安装长毛象，请参考以下其他嘟友们撰写的教程</strong>：</p>

<p>- <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fpullopen.github.io%2F%25E5%259F%25BA%25E7%25A1%2580%25E6%2590%25AD%25E5%25BB%25BA%2F2020%2F07%2F19%2FHow-to-build-a-mastodon-instance.html">技术小白如何搭建Mastodon实例</a> by <a href="https://fediverse.eu.org/profile/flyover%40pullopen" rel="nofollow">@flyover@pullopen</a>.xyz<br />- <a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmarketplace.digitalocean.com%2Fapps%2Fmastodon">官方文档</a></p>

<h2 data-id="n-a-3">长毛象全托管服务</h2>

<p>除此之外，你也可以使用一些长毛象托管服务，免去安装维护长毛象的烦恼，但可能价格较高：</p>

<ul><li><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fhostdon.jp%2F%23%2Fmastodon%2Fabout">https://hostdon.jp/#/mastodon/about</a></li>
<li><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fmasto.host%2F">masto.host/</a></li>
<li><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fhostdon.jp%2F">https://hostdon.jp/</a></li>
<li><a rel="nofollow" href="/home/leaving?target=https%3A%2F%2Fapp.spacebear.ee%2Fmastodon">https://app.spacebear.ee/mastodon</a></li>
</ul>]]>
        </description>
    </item>
   </channel>
</rss>
