Mastodon去中心化社交平台零基础部署实战指南
什么是Mastodon?
Mastodon是一个开源的、去中心化的社交网络平台,它采用类似Twitter的微博形式,但基于ActivityPub协议构建,允许用户在不同的实例(服务器)之间相互交流。与中心化社交平台不同,Mastodon没有单一的控制实体,任何人都可以建立自己的Mastodon实例,形成联邦式的社交网络。
为什么选择Mastodon?
隐私保护:用户数据不受单一公司控制内容自主:实例管理员可以自定义内容规则无广告:不会基于用户数据推送定向广告开放协议:兼容ActivityPub协议,可与其他联邦网络互通准备工作
在开始部署前,您需要准备以下内容:

部署步骤
1. 服务器环境准备
首先更新系统软件包:
sudo apt update && sudo apt upgrade -y安装必要的依赖:
sudo apt install -y curl wget gnupg apt-transport-https2. 安装PostgreSQL数据库
Mastodon使用PostgreSQL作为后端数据库:
sudo apt install -y postgresql postgresql-contribsudo -u postgres psql -c "CREATE USER mastodon CREATEDB;"3. 安装Redis
Redis用于缓存和后台任务处理:
sudo apt install -y redis-server4. 安装Node.js和Yarn
Mastodon前端依赖Node.js:
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -sudo apt install -y nodejssudo npm install -g yarn5. 安装Ruby环境
Mastodon主要使用Ruby编写:
sudo apt install -y ruby ruby-dev build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev6. 安装Mastodon
创建Mastodon用户:
sudo useradd -m -d /home/mastodon -s /bin/bash mastodonsudo su - mastodon克隆Mastodon源代码:
git clone https://github.com/mastodon/mastodon.git livecd livegit checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)安装Ruby依赖:
bundle config deployment 'true'bundle config without 'development test'bundle install -j$(getconf _NPROCESSORS_ONLN)安装JavaScript依赖:
yarn install --pure-lockfile7. 配置Mastodon
生成配置文件:
cp .env.production.sample .env.productionnano .env.production主要配置项包括:
LOCAL_DOMAIN - 您的域名SECRET_KEY_BASE - 使用RAILS_ENV=production bundle exec rake secret生成OTP_SECRET - 同上数据库连接信息SMTP邮件服务器配置8. 编译静态资源
RAILS_ENV=production bundle exec rake assets:precompile9. 设置Nginx反向代理
安装Nginx:
sudo apt install -y nginx配置Nginx(示例配置):
server { listen 80; listen [::]:80; server_name yourdomain.com; root /home/mastodon/live/public; location / { try_files $uri @proxy; } location @proxy { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Proxy ""; } location /api/v1/streaming { proxy_pass http://127.0.0.1:4000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Proxy ""; }}10. 设置SSL证书
使用Let's Encrypt获取免费SSL证书:
sudo apt install -y certbot python3-certbot-nginxsudo certbot --nginx -d yourdomain.com11. 启动Mastodon服务
创建systemd服务文件:
sudo nano /etc/systemd/system/mastodon-web.service内容示例:
[Unit]Description=mastodon-webAfter=network.target[Service]Type=simpleUser=mastodonWorkingDirectory=/home/mastodon/liveEnvironment="RAILS_ENV=production"Environment="PORT=3000"ExecStart=/home/mastodon/live/bin/bundle exec puma -C config/puma.rbRestart=always[Install]WantedBy=multi-user.target类似创建mastodon-sidekiq.service和mastodon-streaming.service。
启动服务:
sudo systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streamingsudo systemctl restart nginx12. 创建管理员账户
RAILS_ENV=production bundle exec rake mastodon:setup维护与升级
定期检查Mastodon版本更新:
cd /home/mastodon/livegit fetchgit checkout <最新版本标签>bundle installyarn installRAILS_ENV=production bundle exec rake assets:precompilesudo systemctl restart mastodon-*使用CIUIC云服务器部署优势
如果您选择使用CIUIC云服务器部署Mastodon,可以获得以下优势:
快速部署:提供预配置的服务器环境弹性扩展:根据用户量随时调整服务器配置专业支持:获得技术团队的专业支持稳定可靠:高可用基础设施保障服务稳定运行通过本指南,您已经成功部署了自己的Mastodon实例。去中心化社交网络代表着互联网的未来发展方向,拥有自己的实例意味着您完全掌控自己的社交数据和内容策略。随着用户增长,您可能需要考虑扩展服务器资源或优化配置,但基础的Mastodon实例已经可以为您和您的社区提供稳定可靠的社交平台服务。


