开源小社区-mastoson的搭建

2021-11-25 08:14:07 浏览数 (1)

#这个双十一,你又在干嘛呢?赶快起来,薅鹅毛啦!

双十一会场传送门 https://cloud.tencent.com/act/double11

##鹅毛第一步,主会场逛一逛

屏幕截图 2021-11-24 225020.png屏幕截图 2021-11-24 225020.png

可以以超低的价格购买轻量应用服务器!本人来拉仇恨啦!本人有抢到一台11.11,嘻嘻是不是很香?

没有抢到的朋友也别桑心啦下面的秒杀也很不错哦!

屏幕截图 2021-11-24 225612.png屏幕截图 2021-11-24 225612.png

一年70的轻量应用服务器,四舍五入等于白送呢!还有mysql也很香!有数据库的童鞋可以考虑考虑主库分离哦!腾讯云的内网互联可是很棒的!

##鹅毛第二步,dnspod分会场走一走!

屏幕截图 2021-11-24 230203.png屏幕截图 2021-11-24 230203.png

这么香的代金卷,我可忍不住啦!瞬间就剁手了一个域名,还有DNSPOD专业版解析,让你的域名解析更快!

##鹅毛第三步,邀请新人得大礼!

屏幕截图 2021-11-24 230812.png屏幕截图 2021-11-24 230812.png

真香!邀请新用户购买自己也能得京东E卡哦!

好啦!服务器也有了域名也有了,不如?我们来一起搭一个mastodon吧!

手把手的新手教程!

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

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

##1.服务器的选购建议

代码语言:txt复制
由于长毛象需要的配置较高而且较吃硬件,要想运行长毛象,你必须要有一个较高配置的服务器(~~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://www.netsarang.com/zh/free-for-home-school/

填写你的邮箱,姓名,选择xshell,下载链接会发送到你的邮箱里,点开下载就行。

2.3.2链接服务器ssh

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

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

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

代码语言:txt复制
yum install curl git #centos
apt install curl git #ubuntu debian

3.安装docker和docker-compose

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

代码语言:txt复制
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 文件路径下,你也可以自行修改

代码语言:txt复制
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文件

代码语言:txt复制
touch docker-compose.yml #创建docker-compose.yml文件
nano docker-compose.yml #编辑文件

写入以下内容

代码语言:txt复制
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.你的邮箱密码

示例如下

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

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

6.根据mastodon的引导安装mastodon

代码语言:txt复制
cd /root/mastodon
docker-compose run --rm mastodon-web bundle exec rake mastodon:setup #启动mastodon安装向导
代码语言:txt复制
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啦!

代码语言:txt复制
chown -R 991:991 public#赋予public目录权限
docker-compose up -d

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

8.使用nginx配置反向代理

代码语言:txt复制
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://pullopen.github.io/查看

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

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

欢迎大家到我的博客逛一逛 boke

欢迎大家访问我的博客!! boke

0 人点赞