Skip to content

使用 Docker Compose 安装

INFO

如果你使用 Podman,可以参考使用 Podman Quadlet 安装

1. 准备数据存储目录

本文档将使用绑定挂载方式完成数据目录的配置。如果你对卷的概念比较熟悉,可以改为使用卷来存储数据。

假设我们使用的发行版为 Debian Trixie,使用 /var/lib/mastodon 来存储数据。我们当前所使用的用户是一个具有 sudo 权限的用户 gargron

bash
sudo mkdir /var/lib/mastodon
sudo chown gargron:gargron /var/lib/mastodon
cd /var/lib/mastodon

2. 准备配置文件

你可以在这里 看到 UnivTown Mastodon 提供的默认 Docker Compose 配置。我们将其下载到数据目录。

bash
# 当前所在的目录应该是 /var/lib/mastodon
wget https://git.univ.town/univtown/mastodon/raw/branch/main/docker-compose.yml
# 如果终端报错“找不到 wget”,需要使用 apt install wget 进行安装。

接下来,创建 docker compose 中要求的目录。

bash
# 创建必需服务要求的数据目录
mkdir -p postgres14 redis public/system
## 根据需要创建可选的服务的数据目录
## 本文档不涉及可选服务的配置,对应可选服务的配置参见进阶配置部分
## Elasticsearch
# mkdir elasticsearch
## Tor
# mkdir priv-config

接下来,下载示例环境变量配置文件,并将其修改为我们正式使用的文件名。

bash
wget https://git.univ.town/univtown/mastodon/raw/branch/main/.env.production.sample
mv .env.production.sample .env.production

3. 生成必要的加密参数

生成基础密钥:

bash
docker compose run --rm web bundle exec rails secret

记下输出的基础密钥。

接下来生成 Active Record 加密参数:

bash
docker compose run --rm web bin/rails db:encryption:init

记下输出的三个参数,注意每个参数要和对应的环境变量名对应。

接下来生成 Web 推送密钥:

bash
docker compose run --rm web bundle exec rails mastodon:webpush:generate_vapid_key

4. 修改环境变量配置文件

参见修改环境变量配置文件

5. 首次启动实例

执行数据库迁移:

bash
docker compose run --rm web bundle exec rails db:migrate

首先在前台启动实例,观察日志中是否出现错误

bash
docker compose up

如果没有错误,按下 Ctrl + C 停止服务。

如果遇到错误且无法解决,可以向其它管理员或 admin@univ.town 寻求帮助。

6. 创建管理员账户

假设我们要创建的管理员账户用户名是 @admin,邮箱是 xxx@xxx.xxxx,那么需要执行:

bash
docker compose run --rm web tootctl accounts create admin --email xxx@xxx.xxxx --role Owner --confirmed

7. 启动实例

确定没有问题后,在后台启动实例

bash
docker compose up -d

8. 配置反向代理

参见配置反向代理


至此,服务部署完成,你可以访问你的网站并登录账户了。后续的管理与配置参见安装后续配置