Mastodon长毛象搭建教程

Mastodon长毛象搭建教程
小野引用文章:
- [Mastodon搭建小记](Mastodon搭建小记 | 糖菓·部落 (candinya.com))
- [如何利用Docker搭建Mastodon实例(一):基础搭建篇](如何利用Docker搭建Mastodon实例(一):基础搭建篇 - 技术小白搭建Mastodon站点指南 (pullopen.github.io))
- [CentOS下 Docker、Docker Compose 的安装教程](CentOS下 Docker、Docker Compose 的安装教程_csdn_life18的博客-CSDN博客_centos 安装docker-compose)
安装Docker
Docker要求Centos内核高于3.10,我们通过 uname -r 命令查看当前内核版本是否满足条件
执行sudo yum update升级yum包
安装必要软件
1
sudo yum install -y yum-utils device-mapper-persistent-date lvm2
设置yum源
1
sudo yum-config-manager --add-repo https:``//download.docker.com/linux/centos/docker-ce.repo
查看当前仓库中docker版本
1
yum list docker-ce --showduplicates | ``sort` `-r
安装相关版本,安装稳定版本17.12.1
1
2sudo yum install docker-ce-17.12.1.ce
加入开机启动
1
2sudo systemctl start docker``sudo systemctl enable docker
查看Docker版本验证是否安装成功,运行docker version只要有 client 和 service 两部分则表示 docker 安装启动都成功了)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30[root@VM-0-2-centos ~]# docker version
Client: Docker Engine - Community
Version: 20.10.21
API version: 1.41
Go version: go1.18.7
Git commit: baeda1f
Built: Tue Oct 25 18:04:24 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.9
API version: 1.41 (minimum version 1.12)
Go version: go1.16.8
Git commit: 79ea9d3
Built: Mon Oct 4 16:06:37 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.10
GitCommit: 770bd0108c32f3fb5c73ae1264f7e503fe7b2661
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
[root@VM-0-2-centos ~]#
安装Docker-Compose
方法很多,这里用的pip安装
1
yum -y install python3-pip
1
pip3 install --upgrade pip
s执行安装命令
1
pip3 install docker-compose
查看docker-compose版本
1
docker-compose version
下载Mostodon的Dokcer镜像文件
创建安装目录并拉取镜像
1
2
3mkdir -p /home/mastodon/mastodon
cd /home/mastodon/mastodon
docker pull tootsuite/mastodon:latest #如果需要升级到某稳定版本,请将latest改成v3.5.1等版本号。下载配置文件
1
wget https://raw.githubusercontent.com/tootsuite/mastodon/master/docker-compose.yml
修改配置文件用文本编辑器或者vim都行
1
vim docker-compose.yml
依次找到
web
、streaming
、sidekiq
分类,在每一类的image: tootsuite/mastodon
后添加:latest
或者你刚才拉取的版本号,变成image: tootsuite/mastodon:latest
或image: tootsuite/mastodon:v3.5.1
等等。此外,官方的
docker-compose.yml
文件里写的是7.17.4,但目前elasticsearch的最高版本为7.10.2,需要修改。
:wq保存退出
初始化PostgreSQL数据库
(在v3.5.0以后,请注意Postgres文件夹所在位置有所修改,从原本的postgres改为了postgres14。本教程已更新。)
刚才docker-compose.yml
文件中,数据库(db)部分的地址为./postgres14:/var/lib/postgresql/data
,因此你的数据库绝对地址为/home/mastodon/mastodon/postgres14
。
运行:
1 | docker run --name postgres14 -v /home/mastodon/mastodon/postgres14:/var/lib/postgresql/data -e |
执行完后,使用ls检查/home/mastodon/mastodon/postgres14,应该出现postgres相关的多个文件,不是空文件夹。
然后执行:
1 | docker exec -it postgres14 psql -U postgres |
输入:
1 | CREATE USER mastodon WITH PASSWORD '数据库密码(最好和数据库管理员密码不一样)' CREATEDB; |
创建mastodon用户
1 | \q |
退出数据库,停止Docker
1 | docker stop postgres14 |
修改Mastodon配置
配置文件
在*/home/mastodon/mastodon* 文件夹中创建空白的 .env.production 文件
1
touch .env.production
这个文件是隐藏的
使用root用户运行,下述命令进行配置
1 | docker-compose run --rm web bundle exec rake mastodon:setup |
1 | Domain name: 你的域名 |
接下来会出现**.env.production**的配置,请复制保存下来。后面两个选项是建立数据及编译,都选yes
进入**.env.production** 把刚刚的配置复制进去
更新:在4.0.2版本,需要在.env.production
中增加一行:
1 | REDIS_URL=redis://@mastodon_redis_1:6379 |
ps:我用的mastodon貌似没增加,也没报错,不知道啥缘故有空检查
为文件夹赋权
1
2chown 991:991 -R ./public
chown -R 70:70 ./postgres14启动Mastodon
1
2docker-compose down
docker-compose up -d
开放端口,解析域名
这个 步骤略过,懒得截图贴图
配置Nginx代理设置
1 | server { |
其中conf.d/shared/proxy.conf
为手动创建的通用的代理配置,放置在/etc/nginx/conf.d/shared/proxy.conf
,内容如下:
1 | proxy_http_version 1.1; |
此处仅供参考
我的Nginx的配置是单独设置的,是将不同服务的server块保存为不同的conf配置文件,避免一个服务修改出错全部服务挂掉。
1 | [root@VM-0-2-centos conf]# cd /usr/local/nginx/conf |
1 | http { |
在 http块中添加 include /www/vhost/*.conf; 即可,然后在对应文件夹创建对应配置文件进行设置,此处贴一下我的MastodonNginx配置
1 | server { |
其实中间也遇到了其它一些bug,但是懒得去了,按照这个教程基本上可以完成Mastodon的搭建,欢迎来到我的Mastodon注册玩耍