您自己的社交网络:如何在Linux上设置Mastodon实例

厌倦了Twitter?受够了Facebook吗?在线滥用和NSFW内容会让您失望吗?只是想在反对您的人的眼神中交换想法?

Mastodon是答案。并且由于其开放源代码性质,可以设置自己的Mastodon实例,实现任何主题的对话,并为用户提供各种巨魔的安全和隐私保护。

不熟悉Mastodon,这是基本知识。鸣叫就像推文一样,最多可以包含500个字符(而不是Twitter的140个字符限制)。查看我们最近对Mastodon的研究,以了解其工作原理。

您需要什么

以下是创建您自己的Mastodon实例的必要条件:

设置Mastodon需要三个主要元素:

(反向代理允许服务器代表客户端从一台或多台其他服务器检索资源或数据。在许多情况下,这是一种安全措施,可以保护服务器。)

您还需要与服务器的SSH连接。可通过Linux(或macOS)中的终端使用。如果您在Windows上使用SSH,请下载并安装PuTTY。

建立SSH连接并安装Docker

您需要通过SSH连接到服务器并使用通常的管理员凭据。完成此操作后,创建一个名为“ mastodon"的用户,分配root特权,然后切换到新用户:

adduser mastodonusermod -aG sudo mastodonsu - mastodon

下一步,更新软件包数据库并安装管理工具:

sudo apt-get updatesudo apt-get install apt-transport-https software-properties-common

Docker仓库需要一个GPG密钥,您可以使用

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

获取它,然后将Docker存储库添加到源中,然后再次更新。

sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'sudo apt-get update

确保此方法有效正确地,Docker需要安装自己的存储库,而不是官方Ubuntu 16.04存储库中的版本。该策略将确保发生这种情况:

sudo apt-cache policy docker-engine

您现在可以安装Docker:

sudo apt-get install -y docker-engine

在此过程完成时等待。安装包含一个守护程序,该守护程序在服务器启动时运行Docker。使用

sudo systemctl status docker

检查状态,您将看到几行文字-查找“活动(运行)"以确认一切都应该正确。

Configure with Docker Compose

创建新每次在此配置中运行Docker指令时,该用户组都会节省输入sudo命令的时间。使用

sudo usermod -aG docker $(whoami)

执行此操作,通过退出SSH设置(退出)完成此操作,然后重新登录。

Docker提供了Compose,用于管理多容器Docker应用程序的运行。在github.com/docker/compose/releases,您可以找到最新的发行版本。记下该数字,因为您需要在下一个命令中输入该数字,然后将其替换为“ xxx":

sudo curl -o /usr/local/bin/docker-compose -L "https://github.com/docker/compose/releases/download/x.x.x/docker-compose-$(uname -s)-$(uname -m)"

使其可执行:

sudo chmod +x /usr/local/bin/docker-compose

您可以检查安装了Docker Compose的

docker-compose -v

然后将显示版本号,并且该版本号应与您下载的版本匹配-请注意您要替换的数字以进行确认。

安装Mastodon

所有准备工作都已完成。现在您可以安装Mastodon了。切换到mastodon子目录:

cd /home/mastodon

下一步,将mastodon.git克隆到该目录中,然后打开该位置并制作.env.production.sample文件的副本。

git clone https://github.com/tootsuite/mastodon.gitcd mastodoncp .env.production.sample .env.production

您可以稍后使用该文件。首先,构建Docker映像。

docker-compose build

这需要一段时间。完成后,您可以使用此命令创建三个秘密密钥:

docker-compose run --rm web rake secret

运行此命令三次,将每个唯一密钥复制并粘贴到文本编辑器中。准备好所有三个文件后,在nano中运行.env.production文件。

sudo nano .env.production

查找以下字段:PAPERCLIP_SECRET,SECRET_KEY_BASE和OTP_SECRET。其中每个都应插入一个秘密密钥。

添加您的Mailgun设置

是时候添加Mailgun电子邮件帐户的详细信息了。转到https://app.mailgun.com/app/domains,然后单击域。找到默认SMTP登录默认密码,然后将详细信息复制到.env.production文件中,作为SMTP_LOGIN和SMTP_PASSWORD的条目。

下一步,查找SMTP_FROM_ADDRESS,并确保该条目的名称以“ notifications"开头,例如[email protected]。最后,查找LOCAL_DOMAIN并添加用于该项目的域名。

完成后,按 CTRL + X 保存并关闭,然后重建Docker。

p>

docker-compose build

以下命令将确保数据迁移和资产预编译按预期进行。

docker-compose run --rm web rails db:migratedocker-compose run --rm web rails assets:precompile

这些命令将花费一些时间来完成。完成后,启用容器:

docker-compose up -d

启用Nginx

在此设置中,Nginx用作反向代理。

通过以下方式安装:

sudo apt-get install nginx

Nginx具有默认配置文件,您需要将其删除:

sudo rm /etc/nginx/sites-available/defaultsudo rm /etc/nginx/sites-enabled/default

使用

sudo touch /etc/nginx/sites-available/mastodon

创建新的配置文件下一步,您需要为要访问的配置文件创建符号链接:

sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

然后,您需要将一个配置文件复制到文本编辑器中。访问此Github页并复制内容,然后粘贴到

sudo nano /etc/nginx/sites-available/mastodon

打开文件,找到example.com的每个实例,并将其替换为您使用的域名。确保您省略了“ www"。

点击 CTRL + X 保存并退出。

获取SSL证书并运行Mastodon!

您现在就可以启动Mastodon实例并创建自己的社交网络。但是,要使其受到信任,您将需要SSL证书。

首先通过安装certbot PPA,然后安装certbot本身:

sudo add-apt-repository ppa:certbot/certbotsudo apt-get update sudo apt-get install certbot

下一步,停止Nginx,以便SSL可以生成证书。

sudo systemctl stop nginx.service

使用以下命令,用您自己的域名替换example.com。

sudo letsencrypt certonly --standalone -d example.com

按照提示完成操作。完成后,返回到mastodon目录:

cd /home/mastodon/mastodon

下一步是暂时停止Docker:

docker-compose down

我们快完成了-依次运行以下命令:

docker-compose builddocker-compose run --rm web rails assets:precompile docker-compose run --rm web rails db:migrate docker-compose up -d

等待这些命令完成,然后重新启动Nginx:

sudo systemctl restart nginx.service

现在,如果一切正常,您应该可以打开浏览器窗口并转到新的窗口Mastodon实例可以正常运行!

Any problems here, sadly, will mean repeating what you’ve done so far. If the .env.production is all correct, and Mailgun is working, then simply continue the steps following the last save of .env.production.Note that if your domain isn’t correctly configured with your domain registrar, and with Mailgun, then you won’t be able to run Mastodon until these problems are resolved.

Note that if your domain isn’t correctly configured with your domain registrar, and with Mailgun, then you won’t be able to run Mastodon until these problems are resolved.

您已经启动并运行:自动化任务并管理Mastodon

我们现在快要结束了。再过几分钟,您就可以公布Mastodon实例。

某些任务需要自动化。转到mastodon目录,并为cron作业创建一个新目录-在预定时间运行的指令。

cd /home/mastodonnano mastodon_cron

在文本文件中,添加:

cd /home/mastodon/mastodondocker-compose run --rm web rake mastodon:media:cleardocker-compose run --rm web rake mastodon:push:refreshdocker-compose run --rm web rake mastodon:push:cleardocker-compose run --rm web rake mastodon:feeds:clear

使用< strong> CTRL + Y ,然后输入:

sudo chmod +x mastodon_cron && sudo crontab -e

crontab文件(所有已调度(cron)脚本的控制索引)将打开。在末尾输入以下行:

0 0 * * * /home/mastodon/mastodon_cron > /home/mastodon/mastodon_log

CTRL + X 保存并退出。

刷新SSL

尽管已设置SSL证书,但它将在90天后过期。解决方案是自动更新证书的Cron作业。输入

sudo crontab -e

...然后滚动到文件末尾并将其添加到行:

0 1 * * 1 /usr/bin/letsencrypt renew >> /home/mastodon/letsencrypt.log5 1 * * 1 /bin/systemctl reload nginx

再次,按 CTRL + X t o保存并退出;该说明将在周一的凌晨1点续签超过60天的证书。然后它将重新加载Nginx。

Mastodon管理

一切就绪。任何人都可以前往您的Mastodon实例进行注册并开始发送他们的嘟嘟声。其中包括您-但是,您当然需要具有提升权限的帐户。首先创建您的帐户,然后单击确认电子邮件中的链接。

下一步,返回到mastodon子目录:

cd /home/mastodon/mastodon

使用此命令将用户名提升为管理员级别:<

docker-compose run --rm web rails mastodon:make_admin USERNAME=yourusername

在浏览器窗口中返回Mastodon,并访问您的帐户首选项。找到管理链接以查看用户帐户,并管理Mastodon S ite设置,其中包括标题和描述以及用途。

您自己的社交网络,讨论您的主题!

Twitter受到抨击。

要对此进行处理,您可以加入Mastodon。我们认为您应该这样做,因为您至少会看到如何以不同的方式完成工作。如果愿意,为什么不安装自己的实例?

标签: