Docker 部署 Mastodon - 一个去中心化的社交平台

2023-11-05 09:39:14 浏览数 (1)

在当今互联网时代,社交媒体已经成为人们生活的重要一部分,然而,传统社交媒体平台通常集中于单一中央服务器,这引发了一些问题,包括隐私担忧、数据泄露风险以及广告和跟踪滥用。然而,现在有一种新的社交网络正在崭露头角,它将互联网的去中心化精神引入了社交媒体世界 - 那就是 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.keytest.cuiwei.net.pem

如果你只是想本地跑一下,也行

  • 修改hosts:127.0.0.1 test.cuiwei.net
  • web、streaming、sidekiq 这3个服务增加extra_hosts,如下:
代码语言:javascript复制
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

上一步执行成功,会启动dbredis两个容器,同时会提示你输入域名(先别输),先进到db容器创建一个给mastodon用的数据库,如下创建一个用户和数据库,名称都是mastodon,密码为空

代码语言:javascript复制
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

其他

  1. .env.production 从何而来?

下载官方代码

代码语言:javascript复制
git clone git@github.com:mastodon/mastodon.git

根目录有个.env.production.sample文件,改名为 .env.production,(必须的)

如果是初次运行,记得把里面LOCAL_DOMAIN, PostgreSQLredis这些你知道的都配好(不配也可以,只是最后一步创建管理员账号会失败)

参考

https://github.com/mastodon/mastodon

https://blog.csdn.net/halobug/article/details/131704066

https://docs.joinmastodon.org/admin/install/#setting-up-nginx

0 人点赞