在线统计

在线会员
0
在线游客
20
会员总计
20
  • 游客:您有一个20余烬兑换码:202506015318有效期7天.请尽快兑换.

什么是 Mastodon?

从源中安装

前提条件​

  • 一台你有root访问权限的运行 Ubuntu 18.04 的机器
  • 一个用于Mastodon站点的域名(或一个子域名),例如:example.com
  • 一个电子邮件发送服务提供商,或其他SMTP服务器
你需要使用root用户运行命令。如果你现在不是root用户,请切换至root用户:

软件仓库​


首先确保已经安装curl:

Node.js​

代码:
curl -sL https://deb.nodesource.com/setup_12.x | bash -

yam​


代码:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

软件包​

代码:
apt update

apt install -y \

  imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \

  g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \

  bison build-essential libssl-dev libyaml-dev libreadline6-dev \

  zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \

  nginx redis-server redis-tools postgresql postgresql-contrib \

  certbot python-certbot-nginx yarn libidn11-dev libicu-dev libjemalloc-dev

安装 Ruby

因为使用 rbenv 可以更容易的获得正确的版本并在新版本发布后进行更新,我们将使用 rbenv 来管理Ruby版本。rbenv 必须安装在单个Linux用户中,因此,我们首先需要使用以下命令创建一个Mastodon用户:

代码:
adduser --disabled-login mastodon

切换到mastodon用户:

代码:
su - mastodon

执行以下步骤安装 rbenv 和 rbenv-build:

代码:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv

cd ~/.rbenv && src/configure && make -C src

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

exec bash

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

上述操作完成,我们便可以安装正确的 Ruby 版本:

代码:
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.6
rbenv global 2.6.6

我们同样需要安装 bundler:

代码:
gem install bundler --no-document

返回root用户:

代码:
exit

配置​


配置 PostgreSQL​

性能调优(可选)​

为了优化性能,你可以使用 pgTune 生成一个合适的配置文件。编辑 /etc/postgresql/9.6/main/postgresql.conf 中的相应数值并使用 systemctl restart postgresql 命令重启 PostgreSQL。

创建帐户​

你需创建一个供Mastodon使用的PostgreSQL帐户。创建一个使用“ident”认证方式的帐户是最容易的配置方法,即PostgreSQL帐户不需要独立的密码并由同名Linux用户使用。

打开控制台:

代码:
sudo -u postgres psql

在控制台中执行:

代码:
CREATE USER mastodon CREATEDB;
\q

完成!

配置 Mastodon​

现在该下载Mastodon代码了。切换至mastodon用户:su - mastodon

检出代码​

使用git下载最新稳定版Mastodon:

代码:
git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

安装依赖​

现在,安装Ruby和JavaScript依赖:

代码:
bundle config deployment 'true'

bundle config without 'development test'

bundle install -j$(getconf _NPROCESSORS_ONLN)

yarn install --pure-lockfile

两个bundle config命令仅仅第一次安装依赖时需要。如果你之后进行升级或重安装依赖,只需要bundle install就够了。

生成配置文件​

运行交互式安装向导:RAILS_ENV=production bundle exec rake mastodon:setup

它将:

  • 创建一个配置文件
  • 预编译静态文件
  • 创建数据库schema
配置文件被保存在.env.production。如果你愿意的话,你可以查看并编辑这个文件。请参阅配置文件的文档

你已经完成需使用mastodon用户进行的操作,请切换回root用户:exit

配置 nginx​

从Mastodon目录复制配置文件模版到nginx:

代码:
cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon

编辑 /etc/nginx/sites-available/mastodon

  1. 替换 example.com 为你自己的域名
  2. 启用 ssl_certificate 和 ssl_certificate_key 这两行,并把它们替换成如下两行(如果你使用自己的证书的话则可以忽略这一步)
代码:
ssl_certificate     /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

  1. 你还可以根据自己的需求做出其它的一些调整。
重载 nginx 以使变更生效:

获取SSL证书​

我们将使用 Let’s Encrypt 获取一个免费的SSL证书:certbot --nginx -d example.com

这个命令将获取一个证书,自动更新 /etc/nginx/sites-available/mastodon 以使用新证书并重载nginx以使变更生效。

现在你应该能够通过浏览器访问你的域名,然后看到一只大象锤击电脑屏幕的错误页面。这是因为我们还没有启动Mastodon进程。

配置 systemd 服务​

从Mastodon目录复制systemd服务模版:cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/

然后修改以下文件,以保证用户名与路径是正确的:

  • /etc/systemd/system/mastodon-web.service
  • /etc/systemd/system/mastodon-sidekiq.service
  • /etc/systemd/system/mastodon-streaming.service
最后,启动新systemd服务并将该服务设为开机自动激活:

代码:
systemctl daemon-reload
systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
systemctl enable mastodon-*

他们将在开机启动时自动开始运行。

评论

目前没有任何评论.

笔记文章信息

作者
波坤太叔
查看
175
最后更新

More entries in 经验折腾

More entries from 波坤太叔

分享这个文章页面

社区
规则 帮助 用户
  • 目前没有人在聊天。
  • 波坤太叔 @ 波坤太叔:
    @dindacantik2 有安装说明文档
  • 波坤太叔 @ 波坤太叔:
    (AI 提示) 如何部署 cloudflare 与 xenforo 的 Workers
  • DeepSeek @ DeepSeek:
    @波坤太叔, # 部署 Cloudflare Workers 与 XenForo 的集成指南

    要将 Cloudflare Workers 与 XenForo 论坛软件集成,您可以按照以下步骤操作:

    ## 基本设置步骤

    1. **准备工作**
    - 确保您拥有 Cloudflare 账户且您的域名已通过 Cloudflare 管理
    - 拥有 XenForo 管理员权限

    2. **创建 Cloudflare Worker**
    - 登录 Cloudflare 仪表板
    - 导航
  • W @ William:
    这是deepseek吗
  • 波坤太叔 @ 波坤太叔:
    William 说:
    这是deepseek吗
    是的
  • 狼哥 狼哥:
    William 已离开房间。
      狼哥 狼哥: William 已离开房间。
      Cart