在当今互联网时代,社交媒体已经成为人们生活的重要一部分,然而,传统社交媒体平台通常集中于单一中央服务器,这引发了一些问题,包括隐私担忧、数据泄露风险以及广告和跟踪滥用。然而,现在有一种新的社交网络正在崭露头角,它将互联网的去中心化精神引入了社交媒体世界 - 那就是 Mastodon。
Mastodon 是一种开源、分布式的社交网络平台,以其强调去中心化、用户隐私和自主控制而引起了广泛的关注。与传统社交媒体巨头如 Twitter 和 Facebook 不同,Mastodon 的去中心化设计使其不依赖于单一中央服务器。相反,它由许多相互连接的服务器(或称为实例)组成,每个实例都是一个独立的社交网络社区,用户可以选择在其中注册。这意味着没有单一的权威机构掌握着所有用户数据,从而降低了个人隐私的风险,减少了数据泄露的可能性,并提供了更好的用户控制。
Mastodon 的开源性质也为用户提供了更多的透明度和参与机会。该平台的源代码是开放的,允许社区审查、修改和贡献,确保了平台的发展和改进不受单一实体的控制。此外,Mastodon 不包含广告,也不追踪用户的在线行为,从而提供了一个更加干净和隐私友好的社交媒体环境。
在本文中,我们将深入探讨如何使用 Mastodon,以及如何通过 Docker 轻松部署自己的 Mastodon 实例,让您能够体验到这一去中心化社交媒体平台的强大功能和优势。无论您是关心隐私和数据安全,还是寻求更好的社交媒体用户体验,Mastodon 都是一个备受欢迎的选择,它在社交媒体的未来中扮演着重要的角色。
开始之前
首先,下载我整理好的docker-compose.yml
文件
https://github.com/chudaozhe/docker-compose-samples/tree/main/mastodon
接着,准备一个域名和证书
- 域名:
test.cuiwei.net
- 证书:
test.cuiwei.net.key
、test.cuiwei.net.pem
如果你只是想本地跑一下,也行
- 修改hosts:
127.0.0.1 test.cuiwei.net
- web、streaming、sidekiq 这3个服务增加
extra_hosts
,如下:
extra_hosts:
- "test.cuiwei.net:192.168.11.241"
#192.168.11.241 为宿主机ip
#extra_hosts作用是 往容器内/etc/hosts文件中添加记录,注意格式是相反的
快速开始
初始化
代码语言:javascript复制docker compose -f docker-compose.yml run --rm web bundle exec rake mastodon:setup
上一步执行成功,会启动db
和redis
两个容器,同时会提示你输入域名(先别输),先进到db
容器创建一个给mastodon
用的数据库,如下创建一个用户和数据库,名称都是mastodon
,密码为空
psql -U postgres
CREATE USER mastodon CREATEDB;
create database mastodon owner mastodon encoding UTF8;
接着,按照提示,一步步来
接下来,生成一份配置,需要手动复制到.env.production
文件
最后是导入数据,和创建管理员用户
启动服务
初始化完成,就能启动服务了
代码语言:javascript复制docker compose up -d
访问
https://test.cuiwei.net
其他
.env.production
从何而来?
下载官方代码
代码语言:javascript复制git clone git@github.com:mastodon/mastodon.git
根目录有个.env.production.sample
文件,改名为 .env.production
,(必须的)
如果是初次运行,记得把里面LOCAL_DOMAIN
, PostgreSQL
,redis
这些你知道的都配好(不配也可以,只是最后一步创建管理员账号会失败)
参考
https://github.com/mastodon/mastodon
https://blog.csdn.net/halobug/article/details/131704066
https://docs.joinmastodon.org/admin/install/#setting-up-nginx