# 配置
Frappe网站可以共享相同的应用服务器,每个服务器背后可以有不同的数据库解决方案、配置和位置,通过Bench中的网站配置以不同的粒度进行设置。
网站配置存储了所有与网站相关的信息,从网站的数据库详细信息到指向它的自定义域。通过网站配置,我们可以定义可能改变Frappe及其Frappe应用程序行为的键值对。
# 网站配置
site_config.json存储特定网站的全局配置,并位于网站目录中。该文件由Frappe自动创建和填充。由于这依赖于Frappe,所以默认设置或行为也可能根据任何更新而变化。
{
"db_name": "frappe_database_name",
"db_password": "frappe_database_password",
"admin_password": "admin_password",
}
2
3
4
5
注意:此文件被认为包含与网站状态相关的的重要信息,如果配置文件丢失或损坏,可能会引起麻烦。它定期与数据库备份一起备份。
# 通用网站配置
common_site_config.json存储Bench共享的配置。在Bench级别执行的操作通常与此配置相关。定义的配置键可能用于更改Bench级操作的行为或影响Bench上的所有网站,考虑到配置值的优先级。
此文件由Bench CLI自动生成和管理。此文件中的更改可能会影响您的Frappe设置的行为,具体取决于您的系统设置和Bench CLI的版本。
{
"background_workers": 1,
"developer_mode": true,
"dns_multitenant": true,
"file_watcher_port": 6789,
"frappe_user": "frappe",
"gunicorn_workers": 2,
"maintenance_mode": 0,
"pause_scheduler": 0,
"redis_cache": "redis://localhost:13000",
"redis_cache_sentinel_enabled": 1,
"redis_cache_sentinels": [
"redis-cache-sentinel-1:26379",
"redis-cache-sentinel-2:26379"
],
"redis_cache_sentinel_password": "sentinelpassword",
"redis_cache_master_service": "mymaster",
"redis_cache_master_password": "masterpassword",
"redis_queue": "redis://localhost:11000",
"redis_queue_sentinel_enabled": 1,
"redis_queue_sentinels": [
"redis-queue-sentinel-1:26379",
"redis-queue-sentinel-2:26379"
],
"redis_queue_sentinel_password": "sentinelpassword",
"redis_queue_master_service": "mymaster",
"redis_queue_master_password": "masterpassword",
"redis_socketio": "redis://localhost:12000",
"scheduler_tick_interval": 120,
"serve_default_site": true,
"socketio_port": 9000,
"webserver_port": 8000,
"root_password": "MARIADB_PASSWORD",
"live_reload": true
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 可选设置
| 设置 | 描述 |
|---|---|
workers | 允许创建自定义工作器。background_workers参数是可选的,如果没有设置,则使用通用的background_workers。 |
redis_cache_sentinel_enabled | 如果设置为1,则在生产设置中连接到Redis哨兵 |
redis_cache_sentinels | 哨兵服务器主机/ip和端口的数组 |
redis_cache_sentinel_password | 连接到哨兵的密码 |
redis_cache_master_service | 要连接的主服务 |
redis_cache_master_password | Redis主服务器密码 |
redis_queue_sentinel_enabled | 如果设置为1,则在生产设置中连接到Redis哨兵 |
redis_queue_sentinels | 哨兵服务器主机/ip和端口的数组 |
redis_queue_sentinel_password | 连接到哨兵的密码 |
redis_queue_master_service | 要连接的主服务 |
redis_queue_master_password | Redis主服务器密码 |
# 配置值优先级
在site_config.json中设置的特定键的值将优先于在common_site_config.json中定义的值。这意味着在某些情况下,公共配置中定义的键值可能用作回退。
# 标准配置键
以下是Frappe框架和Bench使用的一些标准键。
# 强制设置
这些键在site_config.json中设置,并在网站创建时自动生成,除非在创建网站时提供了值。
| 设置 | 描述 |
|---|---|
db_type | 数据库类型。选项包括"mariadb"和"postgres"。 |
db_name | 数据库名称(也用作默认数据库用户名)。 |
db_password | 数据库密码。 |
# 可选设置
| 设置 | 描述 |
|---|---|
admin_password | 标准"Administrator"用户默认密码。 |
allow_tests | 设置此选项允许在此网站上运行测试。 |
allow_cors | 启用跨站点HTTP请求。 |
data_import_batch_size | 数据导入批处理大小。 |
db_user | 从v16开始,指定单独的数据库用户名。 |
deny_multiple_logins | 阻止用户拥有多个活动会话。 |
developer_mode | 如果设置了开发者模式,DocType更改会自动更新到文件中。 |
disable_async | 禁用socket.io客户端。 |
disable_error_snapshot | 禁用错误快照。 |
disable_global_search | 禁用全局搜索。 |
disable_scheduler | 禁用调度器。 |
disable_session_cache | 禁用会话缓存。 |
disable_website_cache | 禁用网站缓存。 |
encryption_key | 用于加密密码的密钥。 |
enable_frappe_logger | 如果设置,记录请求的基本信息。 |
error_report_email | 设置默认的错误报告电子邮件。 |
ignore_csrf | 忽略CSRF。 |
install_apps | 在网站restore、reinstall和new创建时提及要安装的应用程序列表。 |
host_name | 这对于后台作业和打印以正确识别网站URL是必需的。 |
http_port | 更改Frappe设置的HTTP端口。 |
keep_backups_for_hours | 保留备份文件的时间。 |
local_infile | 设置标志以允许MySQL连接的数据来自本地infile。 |
logging | 通过frappe.log使用frappe.debug_log启用不同级别的日志记录。 |
maintenance_mode | 启用维护模式。 |
max_file_size | 允许上传的文件最大大小。 |
max_reports_per_user | 用户可以创建的最大自动电子邮件报告数量。 |
monitor | 如果设置,记录所有请求。 |
mute_emails | 如果为true,则停止发送电子邮件。 |
# 外部扩展配置
有时人们可能不希望将数据库密码等配置值直接硬编码在网站配置JSON中。在这种情况下,网站正常设置后,您可以安装一个允许通过返回您希望追加/覆盖的任何值的字典来扩展网站配置的自定义应用程序。该应用程序可以以所需的方式获取这些值,但建议使用延迟非常低的方式,因为它需要为网站的每个请求运行。
# 从环境覆盖
某些配置值可以通过环境变量进行覆盖。
| 配置 | 环境变量 |
|---|---|
redis_queue | FRAPPE_REDIS_QUEUE |
redis_cache | FRAPPE_REDIS_CACHE |
db_type | FRAPPE_DB_TYPE |
db_socket | FRAPPE_DB_SOCKET |
db_host | FRAPPE_DB_HOST |
db_port | FRAPPE_DB_PORT |
db_user | FRAPPE_DB_USER |
db_name | FRAPPE_DB_NAME |
db_password | FRAPPE_DB_PASSWORD |