Mastodon开源社交网络服务器软件 Ruby+JavaScript源码

Mastodon开源社交网络服务器软件 Ruby+JavaScript源码

系统介绍

Mastodon(乳齿象)是一款由Ruby on Rails框架开发的开源、分布式社交网络服务器软件。它并非任何中心化平台的外挂或分支,而是一个独立、自由的去中心化社交网络解决方案。该项目旨在解决传统社交媒体平台数据垄断、算法不透明和言论管控等问题,通过联邦化(Fediverse)协议赋予用户和社区对自身数据和社交环境的完全控制权。

Mastodon创造了一个类似微博客但更为开放的网络生态。任何个人或组织都可以轻松部署自己的Mastodon实例(服务器),形成一个独立的社交社区。这些分散的实例之间又可以通过ActivityPub等开放协议互联互通,构成了一个庞大而自由的联邦社交网络。该平台由德国开发者Eugene Rochko于2025年发起并维护,其命名灵感来源于他所喜爱的同名重金属乐队,象征着强大、独立的声音。

核心功能

  • 联邦化社交网络:基于ActivityPub等开放协议,支持不同Mastodon实例以及Peertube、Pleroma等其他兼容软件间的互联互通,用户可跨实例关注、互动,形成去中心化的社交图谱。

  • 微博客内容发布:用户可发布被称为“嘟文”(Toots)的短文内容,支持文本、图片、视频、链接等多种格式,并附带有内容警告、敏感内容折叠等隐私保护功能。

  • 强大的内容过滤与审核:提供实例级和用户级的多维度内容过滤工具。管理员可设置屏蔽词、限制特定实例的交互;用户可自定义过滤规则,屏蔽不想看到的话题、用户或来源,打造纯净时间线。

  • 丰富的互动形式:完整支持转发、收藏(喜欢)、回复等社交互动。时间线分为首页、本地和联邦三种视图,方便用户浏览关注对象、本实例及整个联邦网络的内容。

  • 隐私与安全控制:提供公开、未列出、仅关注者可见和私密四种嘟文可见性设置。支持端到端加密的私信功能,确保一对一沟通的隐私安全。

  • 多媒体与富文本支持:内嵌图片、GIF、视频播放器,支持描述文本(Alt Text)以提升可访问性。提供可选的富文本编辑器,增强内容排版能力。

  • API与第三方应用生态:提供完善的OAuth 2.0 REST API,支持众多第三方移动客户端和桌面应用,用户可根据喜好选择前端交互界面。

  • 社区自治与管理:每个实例拥有独立的管理员和审核团队,可制定符合自身社区的规则(社区公约),进行用户管理、内容审核和实例封禁等操作,实现真正的社区自治。

技术特性

Mastodon采用现代化的Web技术栈构建,保证了系统的性能、可扩展性和可维护性。后端核心基于Ruby on Rails框架开发,遵循MVC架构,代码结构清晰,便于二次开发和功能定制。数据库方面主要使用PostgreSQL,并利用Redis进行缓存、会话存储和后台作业队列,有效提升高并发场景下的响应速度。

前端界面采用响应式设计,基于React.js等JavaScript库构建,提供流畅的单页面应用(SPA)体验,并完美适配桌面端和移动端浏览器。其实时通信功能依赖于WebSocket协议,确保通知、新消息的即时推送。作为联邦网络的核心,Mastodon深度集成了ActivityPub、WebFinger、WebPush等一批W3C推荐的社会网络开放标准,这是其实现去中心化互联的基石。项目代码托管于GitHub,采用AGPLv3开源协议,拥有活跃的开发者社区和持续迭代的版本更新。

运营管理

Mastodon为实例管理员提供了功能全面的后台管理面板。管理员可以进行详尽的实例数据统计与分析,包括用户增长趋势、活跃度、互动数据和服务器资源使用情况。在内容管理方面,后台提供了强大的审核工具,管理员可以查看和管理所有用户报告,审核并处理违规内容,管理实例级别的过滤词和屏蔽规则。

用户管理模块支持批量操作、角色权限分配(如授予用户审核员或管理员权限)以及账户封禁。管理员还可以对联邦网络中的其他实例进行管理,如屏蔽或限制与特定实例的交互,以维护本实例的网络环境和安全。系统设置中心允许管理员自定义实例名称、描述、外观主题、注册策略(开放或邀请制)以及邮件服务器、文件存储(支持本地和S3兼容对象存储)等各项服务配置。

使用说明

部署Mastodon需要标准的Web服务环境。建议使用Linux服务器(如Ubuntu 20.04 LTS或更高版本),并确保已安装Docker和Docker Compose以简化部署流程。核心依赖包括:Ruby 3.0+运行环境、Node.js 16+环境、PostgreSQL 12+数据库以及Redis 6+缓存服务。

典型部署步骤如下:首先从官方GitHub仓库克隆最新稳定版源码;复制并修改环境配置文件,填入域名、邮件服务、数据库等关键信息;随后运行Docker Compose命令启动所有服务容器;最后执行数据库迁移和初始化命令,完成管理员账户创建。部署成功后,用户可通过浏览器访问实例域名进行注册和使用。管理员需登录后台完成进一步的实例配置和社区规则设定。

图片演示

Mastodon开源社交网络服务器软件 Ruby+JavaScript源码 图片