马上黑五了--你的小鸡新用途mastodon!

还在为搭建mastodon而烦恼嘛?手把手的新手教程!

Mastodon(又称长毛象或万象)是一个免费开源的去中心化的分布式WB客社交网络。它的用户界面和操作方式跟推特和WB类似,但是整个网络并非由单一机构运作,却是由多个由不同营运者独立运作的服务器以联邦方式交换数据而组成的去中心化社交网络。每个Mastodon的营运站点被称为“实例(Instance)”,用户可到任何开放登记的实体登记,任何一个实体上的用户可以与其他实体上的用户沟通。用户在推特中发布的内容称为“推文”,而在Mastodon中发布的内容则称为“嘟文(Toot)”,用户可以调整隐私设置限制嘟文被其他人或实体读取或查看。

由于使用docker便捷,而且迁移方便我更推荐用docker部署mastodon

1.服务器的选购建议

    由于长毛象需要的配置较高而且较吃硬件,要想运行长毛象,你必须要有一个较高配置的服务器(1核1G就别想了,老老实实miiskey吧)。我推荐的配置是2核4g加上2GB的swap,和较大的硬盘(80G以上),这里我推荐几个卖服务器的好去处。

1.1 腾讯云香港轻量应用服务器

腾讯云,国内大厂稳定性自然不用说,而且香港的线路也足够好,日常使用完全没有问题。建议购买67块钱的那一款,2核AMD的U,4G内存,80GB硬盘也完全够用。

优点:国内访问优秀,稳定性好,可以和腾讯云其他产品配套使用(例如COS等等,24小时工单,退款迅速(山鸡即可

2.服务器的基础环境配置(以腾讯云centos7.6为例

2.1购买服务器

轻量购买传送门:https://buy.cloud.tencent.com/lighthouse

购买步骤如图(建议选择centos7.6,debian或者ubuntu系统

2.2 重置服务器密码,放行安全组

点击添加规则按钮

点击确定

在这个区域点击重置密码

会弹出来这个页面,输入你的新密码,等待重启即可!

2.3链接服务器SSH

有很多服务器SSH终端:putty,Xshell,termius....等等

我这里以Xshell为例

Xshell安装步骤

2.3.1安装xshell

访问xshell官网 https://**sarang.com/zh/free-for-home-school/

填写你的邮箱,姓名(随便写呗,又没人查),选择xshell,下载链接会发送到你的邮箱里,点开下载就行。(下的慢就科学呗)

2.3.2链接服务器ssh

点击如图所示的圈圈,填入服务器ip,用户名填root

后面会弹出来是否接受服务器密钥,点击保存,之后的界面框输入你的重置的密码即可

出现这样的界面即为链接成功!链接成功后运行以下命令

    yum install curl git #centos
    apt install curl git #ubuntu debian

3.安装docker和docker-compose

命令如下(直接复制粘贴到xshell,注意一个命令一个命令复制

    curl -fsSL https://get.docker.com | bash #安装docker
    curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  #安装docker-compose
    chmod +x /usr/local/bin/docker-compose  #赋予docker-compose可执行权限
    docker -v
    docker-compose -v

最后输入docker-v和docker-compose  -v后有版本显示即为安装成功

4.拉取mastodon源码

这里我计划把mastodon文件放在    /root/mastodon     文件路径下,你也可以自行修改

    git clone https://github.com/tootsuite/mastodon.git   #从github克隆源码
    cd mastodon
    cp .env.production.sample .env.production        #复制一份.env.production文件
    rm -rf  docker-compose.yml #删除源码自带的docker-compose.yml

下面我们自己写一份docker-compose.yml文件

    touch docker-compose.yml #创建docker-compose.yml文件
    nano docker-compose.yml #编辑文件

写入以下内容

    version: '3'

    services:
     db:
        image: postgres:9.6-alpine
        shm_size: 256mb
        environment:
          POSTGRES_DB: mastodon
          POSTGRES_USER: mastodon
          POSTGRES_PASSWORD: 改成你的密码
        healthcheck:
          test: ["CMD", "pg_isready", "-U", "postgres"]
        volumes:
          - ./postgres:/var/lib/postgresql/data
        restart: unless-stopped

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

      mastodon-web:
        image: tootsuite/mastodon
        env_file: .env.production
        command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
        depends_on:
          - db
          - 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
        env_file: .env.production
        command: node ./streaming
        depends_on:
          - db
          - 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
        env_file: .env.production
        command: bundle exec sidekiq
        depends_on:
          - db
          - redis
        volumes:
          - ./public/system:/mastodon/public/system
        restart: unless-stopped

使用组合键ctrl+s保存,再使用ctrl+x退出

5.mastodon配置smtp邮件发送(搬运自这位博主)

建议参考这位博主的例子:   传送门(我就懒得重复造轮子)

大致来说配置zoho邮箱----解析域名---配置发件域名-----获取smtp即可

总体来说你需要拿到以下信息:

1.你的smtp server

2.你的邮箱名

3.你的邮箱密码

示例如下

    SMTP server: smtp.zoho.eu
    port: 587
    user: 你设置的邮箱名
    password: 你对该邮箱设置的密码
    authentication: plain
    OpenSSL verify mode: none(这两步可以按两下回车)
    from: 你设置的邮箱名

其实QQ邮箱,gmail,outlook都支持,大家具体可以搜索一下配置smtp的方法

6.根据mastodon的引导安装mastodon

    cd /root/mastodon
    docker-compose run --rm mastodon-web bundle exec rake mastodon:setup #启动mastodon安装向导

    Domain name: # 填写你的域名
    Do you want to enable single user mode? # Yes
    Are you using Docker to run Mastodon? # Yes
    PostgreSQL host: # db
    PostgreSQL port: # 5432
    Name of PostgreSQL database: # mastodon
    Name of PostgreSQL user: # mastodon
    Password of PostgreSQL user: # 填你在compose内设置的密码
    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
    Save configuration? Yes

然后会引导你设置管理员账号和密码注意保存哦!

7.正式运行mastodon

这一切都弄好之后就可以运行mastodon啦!

    chown -R 991:991 public#赋予public目录权限
    docker-compose up -d

运行完后使用命令  docker ps  可以看到如下容器运行

8.使用nginx配置反向代理

    yum install nginx #centos
    apt install nginx  #debian,ubuntu
    cd /etc/nginx/conf.d/
    nano mastodon.conf

打开      https://github.com/mastodon/mastodon/blob/main/dist/nginx.conf

fork一份nginx.conf并且修改

1.将example.com改为你的域名

2.将/home/mastodon/live/public路径改为/root/mastodon/live/public

3.将SSL证书的注释去掉(如下图),并且把证书目录改为你自己的路径

并且使用命令nginx -t查看是否设置成功

9.域名访问

用你配置的域名访问mastodon吧!enjoy it!

10.我自己搭建遇到的问题----使用cloudflare后CSS下不来

原因:由于mastodon开启了CSS验证,但cloudflare会压缩CSS,导致MD5值不正确,所以会出现白屏。

解决办法:cloudflare关闭CSS压缩即可

特别感谢以下两位大佬文章

LALA https://lala.im/7634.html

https://pullopen.github.io/

腾讯云双十一会场有好多活动啊,大佬们去看看。有好多福利!

https://cloud.tencent.com/act/double11

 

本文作者:纯之@hostloc

评论区
头像