Appearance
修改环境变量配置文件
使用你喜欢的编辑器打开 .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=63794. 配置 PostgreSQL
ini
DB_HOST=/var/run/postgresql
DB_USER=mastodon
DB_HOST=db
DB_USER=postgresql
DB_NAME=mastodon_production
DB_PASS=
DB_PORT=54325. 填写在生成的加密参数
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