mastodon/mastodon
Your self-hosted, globally interconnected microblogging community
github.com · mastodon/mastodon
mastodon/mastodon
Your self-hosted, globally interconnected microblogging community
Mastodon 是一款基于 ActivityPub 协议的开源社交网络服务器,让你可以自建「实例(Instance)」并加入联邦宇宙(Fediverse)。用户可发布文字、链接、图片与视频,关注本实例或跨站点的账号;不同服务器之间可互相关注与互动,无需绑定单一商业平台。项目由 Mastodon GmbH 非营利组织维护,采用 AGPL-3.0 许可。
中心化社交平台把社群、算法与数据锁在同一产品里,迁移成本高、规则也不透明。Mastodon 把「社区运营权」交还给实例管理员:你可以为团队、兴趣圈或地区用户搭建独立站点,同时通过联邦协议与全球用户互联。对个人用户,可在 joinmastodon.org 选择公共实例快速入门;对组织,自托管意味着合规、品牌与 moderation 策略完全自控,代价是需要承担运维、SMTP 与 moderation 人力。
Docker Compose(仓库内置配置,适合多数自托管场景):
git clone https://github.com/mastodon/mastodon.git live && cd livegit checkout $(git tag -l | grep '^v[0-9.]*$' | sort -V | tail -n 1)cp .env.production.sample .env.productiondocker compose run --rm web bundle exec rake mastodon:setupdocker compose up -d官方容器镜像:ghcr.io/mastodon/mastodon(稳定版如 v4.6.0)。docker-compose.yml 中请确认 PostgreSQL/Redis 数据卷已持久化,勿在生产环境使用默认 ephemeral 存储。
从源码安装(Ubuntu/Debian 示例):
su - mastodongit clone https://github.com/mastodon/mastodon.git live && cd livegit checkout $(git tag -l | grep '^v[0-9.]*$' | sort -V | tail -n 1)bundle config deployment 'true'bundle config without 'development test'bundle install && yarn installRAILS_ENV=production bin/rails mastodon:setup完整逐步说明见 官方安装文档。Kubernetes 用户可参考 mastodon/chart。
mastodon:setup 向导会生成 .env.production、创建数据库 schema 并预编译前端资源;完成后 docker compose up -d 启动 web、streaming、sidekiq 等服务。dist/nginx.conf 与 dist/mastodon-*.service 到系统目录,配置 SSL(如 certbot),再 systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming。https://<你的域名>/health 或首页,确认 Web 界面可加载且无 502。curl https://<你的域名>/api/v1/instance 应返回实例元数据 JSON。.env.production 密钥:SECRET_KEY_BASE、VAPID 密钥等一旦丢失或变更会导致会话失效;Docker 环境下注意引号转义(见 issue #16895)。docker compose pull 后按说明执行 db:migrate;生产升级前备份数据库与 public/system 媒体目录。