Skip to content

修改环境变量配置文件

使用你喜欢的编辑器打开 .env.production。如果你没有喜欢的编辑器,可以使用 nano

bash
nano .env.production
# 如果提示“找不到nano”,需要使用 apt install nano 进行安装

1. 设置服务器域名

假设我们使用的是 xxu.social

ini
LOCAL_DOMAIN=example.com 
LOCAL_DOMAIN=xxu.social 

2. 启用白名单模式

加入互联要求你的实例处于白名单模式。

ini
# Authorized fetch mode (optional)
# Require remote servers to authentify when fetching toots, see
# https://docs.joinmastodon.org/admin/config/#authorized_fetch
# AUTHORIZED_FETCH=true
AUTHORIZED_FETCH=true 

# Limited federation mode (optional)
# Only allow federation with specific domains, see
# https://docs.joinmastodon.org/admin/config/#whitelist_mode
# LIMITED_FEDERATION_MODE=true
LIMITED_FEDERATION_MODE=true 

3. 配置 Redis

ini
REDIS_HOST=localhost 
REDIS_HOST=redis 
REDIS_PORT=6379

4. 配置 PostgreSQL

ini
DB_HOST=/var/run/postgresql 
DB_USER=mastodon 
DB_HOST=db 
DB_USER=postgresql 
DB_NAME=mastodon_production
DB_PASS=
DB_PORT=5432

5. 填写在生成的加密参数

INFO

如果你不知道如何生成加密参数,请回到安装文档查看对应安装途径的生成方式。

假设我们得到了以下参数:

plaintext
# 基础密钥
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd

# Activt Record 加密参数
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=cccccccccccccccccccccccccccccccc

# Web 推送密钥
VAPID_PRIVATE_KEY=eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
VAPID_PUBLIC_KEY=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

那么,这样修改环境变量配置文件:

ini
# Secrets
# -------
# Generate each with the `RAILS_ENV=production bundle exec rails secret` task (`docker-compose run --rm web bundle exec rails secret` if you use docker compose)
# -------
SECRET_KEY_BASE= 
SECRET_KEY_BASE=dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd 

# Encryption secrets
# ------------------
# Must be available (and set to same values) for all server processes
# These are private/secret values, do not share outside hosting environment
# Use `bin/rails db:encryption:init` to generate fresh secrets
# Do NOT change these secrets once in use, as this would cause data loss and other issues
# ------------------
# ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=
# ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=
# ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY= 
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=cccccccccccccccccccccccccccccccc 

# Web Push
# --------
# Generate with `bundle exec rails mastodon:webpush:generate_vapid_key` (first is the private key, second is the public one)
# You should only generate this once per instance. If you later decide to change it, all push subscription will
# be invalidated, requiring the users to access the website again to resubscribe.
# --------
VAPID_PRIVATE_KEY= 
VAPID_PUBLIC_KEY= 
VAPID_PRIVATE_KEY=eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 
VAPID_PUBLIC_KEY=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 

6. 配置校园邮箱白名单

假设我们想要允许使用校园邮箱和校友邮箱的用户注册,校园邮箱的邮箱后缀是 @xxu.edu.cn,校友邮箱的后缀是 @alu.xxu.edu.cn

ini
# EMAIL_DOMAIN_ALLOWLIST=example1.com|example2.de|etc
EMAIL_DOMAIN_ALLOWLIST=xxu.edu.cn|alu.xxu.edu.cn 

7. 设置服务器默认语言

我们将服务器默认语言设置为简体中文。

ini
# DEFAULT_LOCALE=de
DEFAULT_LOCALE=zh-CN 

8. 配置 SMTP

按照你的 SMTP 服务提供商的说明填写下面的环境变量:

INFO

如果你选择个人邮箱进行发件,此处的 SMTP_PASSWORD 很可能应该填入专门的授权码,而非登录密码,具体以你的个人邮箱的 SMTP 配置文档为准。

SMTP_SERVER=
SMTP_PORT=587
SMTP_LOGIN=
SMTP_PASSWORD=
SMTP_FROM_ADDRESS=notifications@example.com