管理
/admin 会要求输入管理员密码(没有用户名),并显示服务器的设置:
- 公开网址,以及链接模式或账号模式;
- 密码登录与注册;
- 电子邮件(SMTP);
- Google 与 OpenID Connect 登录;
- Android App 链接;
- 地图与隐私声明;
- 方案与付款(开启时);
- 账号,管理员可以搜索并删除。
更改会立即应用到所有共用同一个数据库的服务器程序。要打开管理页面,请在服务器网址后面加上 /admin,App 里没有这个入口。
来自环境变量的设置
Section titled “来自环境变量的设置”每项设置也都可以写成 .env 里的环境变量。已设置的变量优先:/admin 会显示它的值,但标为固定。若想改由 /admin 管理某项设置,就不要设置该变量。.env.example 以 [admin] 标出哪些设置可以在 /admin 修改。
仅从 .env 读取设置
Section titled “仅从 .env 读取设置”若想把所有设置集中在一个文件里,请设置:
BALNANA_ENV_ONLY=true之后服务器只从环境变量读取每一项 [admin] 设置。在 /admin 保存过的内容会被忽略(但仍留在数据库里),.env 没有写的设置则使用默认值。/admin 仍会显示这些设置,但都变成灰色:环境配置文件下的仅从 .env 读取设置会显示为开启,而且在那里无法修改任何设置。要修改设置,请改 .env 并重启服务器。
方案、商品、账号与付款记录不是设置,不论是否开启,都还是在 /admin 管理。
这个开关只能在 .env 开启或关闭。开启时,只要有一项设置服务器无法接受,服务器就不会启动,日志会指出是哪一项。把这一行去掉并重启后,在 /admin 保存的设置就会再次生效。
导出为 .env
Section titled “导出为 .env”/admin 可以把它保存的设置写成 .env 的内容,开启 BALNANA_ENV_ONLY 之前就不必重新输入一遍:
-
在
/admin选择导出为 .env:顶部栏的下载按钮,或环境配置文件下的条目。 -
再输入一次管理员密码。
/admin会保存一个名为balnana.env的文件。 -
把文件里的每一行加到服务器的
.env。 -
在
.env加上BALNANA_ENV_ONLY=true。 -
重启服务器,让它重新读取文件:
终端窗口 docker compose up -d
文件包含在 /admin 保存的所有设置,机密也在内:SMTP 密码、登录提供方的密钥与付款密钥。环境变量已经设置的项目不会导出,因为它们本来就在 .env 里。值的引号写法同时适用于 Docker Compose 的 env_file 与 systemd 的 EnvironmentFile;JSON 密钥(例如 Google Play 服务账号)会写成一行。
忘记管理员密码
Section titled “忘记管理员密码”运行:
docker compose exec balnana /balnana reset-admin这会让所有人退出 /admin,并打印一组新的设置码。打开 /admin,用这组设置码设置新密码。
群组、支出、收据、账号、管理页面的设置和推送签名密钥,都保存在 PostgreSQL 数据库里。请定期备份数据库,也另外留一份 .env 的副本:
docker compose exec -T db pg_dump -U balnana -Fc balnana > balnana.dump要恢复备份时,可以在这台服务器上,或在用相同 .env 搭建的新服务器上运行:
docker compose stop balnanadocker compose exec -T db pg_restore -U balnana -d balnana --clean --if-exists --no-owner < balnana.dumpdocker compose up -d运行多个服务器
Section titled “运行多个服务器”请只运行一个。多个服务器可以共用数据库,但各自计算请求次数、密码尝试次数、认领付款的尝试次数与实时连接数,所以有 N 个服务器时,这些上限会变成设定值的 N 倍。