Docker Compose 部署 Mastodon 记录

Posted by

on

前言

从去年开始就陆续开始尝试部署 Mastodon。最早是自己手动使用 Docker 跑起来的,并没有使用 Compose。

这次参照一个内容农场(日文)的内容,用 compose 在一台全新的机器跑 Mastodon,并启用 elastic。

由于内容农场并没有标注出处,且日语奇怪,推测应该是原文为英文的文章。将标题换成英语继续搜索发现英文文章也来自内容农场…

部署

由于是内容农场的文章,直接作为参考链接有点不妥,便直接做成 PDF 版本缓存下来,供以后查阅。

「Ubuntu 22.04 LTS に Docker を使用して Mastodon Social Network をインストールする方法」

其他

保护通信安全

在这些内容的基础上,额外利用 Cloudflare Warp 来保护 Mastodon 与外部服务器的通信。

写了一些脚本来处理 warp 客户端与容器之间的路由与网络问题。(原因:这台机器无法使用 wgcf,只能使用官方客户端。官方客户端的 warp 模式会全局灌输路由表并设置 ip rule,导致机器瞬间丢失远程连接。后转为考虑 proxy 模式配合 tun2socks 来曲线救国。)

#!/bin/bash

/usr/bin/warp-cli set-mode proxy
/usr/bin/warp-cli connect
/usr/bin/warp-cli disable-dns-log

ip link del dev wg-warp
ip tuntap add mode tun dev wg-warp
ip addr add 169.254.111.1 dev wg-warp
ip link set dev wg-warp up

function setrules () {
        ip rule $1 from 172.17.0.0/24 lookup wgwarp
        ip rule $1 from 172.17.2.0/23 lookup wgwarp
        ip rule $1 from 172.17.0.1 lookup main
        ip rule $1 from 172.17.2.1 lookup main
        ip rule $1 to 172.17.0.1 lookup main
        ip rule $1 to 172.17.2.1 lookup main
        ip rule $1 to 1.1.1.1 lookup main
        ip rule $1 to 1.0.0.1 lookup main
        ip rule $1 to 10.0.0.0/8 lookup main
        ip rule $1 to 172.20.0.0/14 lookup main

        ip route $1 0.0.0.0/0 via 169.254.111.1 dev wg-warp metric 1 table wgwarp
}

setrules del
setrules add

nohup /data/tun2socks/tun2socks -device wg-warp -proxy socks5://127.0.0.1:1080 -interface eth0 >/dev/null 2>&1 &

exit 0

其他:warp-svc 会一直在 syslog 里面拉屎。暂时没有解决方案。后续考虑做一个 wrapper,将其输出送入 /dev/null。

参考

  1. 可能仍然不是最终出处的英文原版:https://www.howtoforge.com/how-to-install-mastodon-social-network-with-docker-on-ubuntu-22-04/
  2. 步骤相似,内容有差异,具有参考价值的,来自 vultr 的资料:https://www.vultr.com/docs/how-to-install-mastodon-with-docker-on-ubuntu-22-04/

Leave a Reply

Your email address will not be published. Required fields are marked *