斐浦软件 | ERPNext中国地区专业服务商 | 移动ERP·业财一体化ERP | 制造业ERP·零售业ERP·定制开发 - 站点配置
官方文档地址
https://frappeframework.com/docs/user/en/basics/site_config
站点配置文件
site_config.json
frappe14/sites/demo.local/site_config.json
通用配置文件
common_site_config.json
frappe14/sites/common_site_config.json
样例
{
"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
}
可选设置
| workers | 允许创建自定义工作线程。参数是可选的,如果未设置,则将使用常规。例:。重新生成配置并重新启动进程以使其生效。background_workersbackground_workers"workers": { "custom_worker1": { "timeout": 5000, "background_workers": 4 } } |
| redis_cache_sentinel_enabled | 如果设置为在生产设置中连接到 Redis 哨兵1 |
| redis_cache_sentinels | 哨兵服务器主机/IP 和端口阵列 |
| redis_cache_sentinel_password | 用于连接到哨兵的密码 |
| redis_cache_master_service | 要连接到的主服务 |
| redis_cache_master_password | Redis 主服务器密码 |
| redis_queue_sentinel_enabled | 如果设置为在生产设置中连接到 Redis 哨兵1 |
| redis_queue_sentinels | 哨兵服务器主机/IP 和端口阵列 |
| redis_queue_sentinel_password | 用于连接到哨兵的密码 |
| redis_queue_master_service | 要连接到的主服务 |
| redis_queue_master_password | Redis 主服务器密码 |
除此之外,您还可以设置希望可用于所有站点的任何密钥。
配置值优先级
在 中设置的特定键的值优先于 中定义的值。这意味着在某些情况下,通用配置中定义的键值可以用作回退。site_config.jsoncommon_site_config.json
想象一下,你想在你工作台上的所有站点上启用 Frappe Web Logger,除了一个 worker.frappe.xyz,因为让我们假设它是一个非常活跃的站点,你只需要一次被大量信息淹没。您可以在 中将其设置为 worker.frappe.xyz 中。enable_frappe_loggertruecommon_site_config.jsonfalsesite_config.json
$ bench config set-common-config -c enable_frappe_logger true
$ bench --site worker.frappe.xyz set-config enable_frappe_logger false
同样,也可以让单个应用程序服务器支持多个站点,每个站点具有不同的数据库解决方案提供商或位置。如果选择将工作台上的所有站点移动到另一台数据库服务器,则切换可能只需更新工作台上的值即可。common_site_config.json
标准配置键
这些是 Frappe Framework 和 Bench 使用的一些标准键。
强制设置
这些键是在 中设置的,除非在站点创建期间提供值,否则会自动生成这些键。site_config.json
db_type |
数据库类型。选项包括“mariadb”和“postgres”。 |
db_name |
数据库名称(也用作默认数据库用户名)。 |
db_password |
数据库密码。 |
可选设置
admin_password |
标准“管理员”用户的默认密码。这将用作所有新站点的管理员用户的密码。 |
allow_tests |
设置此选项允许在此站点上运行测试。 |
allow_cors |
启用跨站点 HTTP 请求。可以设置为:* 特定来源,例如:"https://example.com" |
* 来源列表,例如:["https://portal.example.com", "https://shop.example.com"]
* 通配符:(不建议用于生产)"*"
|
| data_import_batch_size | 数据导入的批处理大小 |
| db_user | 从 v16 开始,指定单独的数据库用户名 |
| deny_multiple_logins | 阻止用户拥有多个活动会话。 |
| deny_multiple_sessions | 拒绝多个会话。 |
| developer_mode | 如果设置了开发人员模式,则会在文件中自动更新 DocType 更改。 |
| disable_async | 禁用 socket.io 客户端;客户端停止轮询 socket.io 服务器。 |
| disable_error_snapshot | 禁用错误快照。 |
| disable_global_search | 禁用全局搜索。 |
| disable_scheduler | 禁用调度程序 |
| disable_session_cache | 禁用会话缓存。 |
| disable_website_cache | 禁用网站缓存。 |
| encryption_key | 用于加密密码的密钥。此密码是在新站点上自动创建的。在站点还原时,还必须还原此密钥才能使用现有密码。 |
| enable_frappe_logger | 如果设置,则记录请求中的基本信息并将其保存在 下。./sites/{site}/logs/frappe.web.log |
| error_report_email | 设置默认的错误报告电子邮件。 |
| ignore_csrf | 忽略 CSRF。 |
| install_apps | 提及要在站点和创建时安装的应用程序列表。restorereinstallnew |
| host_name | 主机名 his 是后台作业和打印所必需的,以正确标识站点 URL。该值应包括协议和端口(如果为非默认值),不带尾部斜杠。例如:"https://erp.example.org:2424" |
| http_port | 更改 Frappe 设置的 HTTP 端口。 |
| keep_backups_for_hours | 用于传递 .它根据备份文件的年龄(以小时为单位)保留备份文件。frappe.utils.new_backupfrappe.utils.delete_temp_backups |
| local_infile | 将 Flag 设置为允许 MySQL 连接的本地 infile 中的数据。 |
| logging | 通过frappe.log利用frappe.debug_log来启用不同级别的日志记录。在级别 2 中,显示在每个操作中运行的查询和结果。 |
| maintenance_mode | 启用维护模式。 |
| max_file_size | 文件上传允许的最大文件大小。默认值为 10MiB。 |
| max_reports_per_user | 用户可以创建的最大自动电子邮件报告数,默认值为 3。 |
| monitor | 如果设置,则记录所有请求并保存在 下。查看调试文档下的监视。./logs/monitor.json.log |
| mute_emails | 如果为 true,则停止电子邮件发送。 |
| pause_scheduler | 暂停调度程序 |
| rate_limit | 使用 指定速率限制。查看文档参考速率限制。frappe.rate_limiter |
| robots_txt | 转到 frappe-site.com/robots.txt 时要呈现robots.txt文件的路径 |
| root_login | 数据库根用户名。 |
| root_password | 数据库 root 密码。 |
| server_script_enabled | 启用/禁用服务器脚本。 |
| skip_setup_wizard | 跳过安装向导。 |
| socketio_port | 指定 Socket.IO 端口。 |
| webserver_port | 一般用作 conf 键的回退。http_port |
| app_include_js | 通过 URL 注入 JavaScript 脚本。必须是绝对 URL 的列表。/app |
| app_include_css | 通过 URL 注入 CSS 样式表。必须是绝对 URL 的列表。/app |
远程数据库主机设置
要使用 SSL 连接到远程数据库服务器,必须首先将数据库主机配置为接受 SSL 连接。Digital Ocean 在本教程中提供了如何执行此操作的示例。完成配置后,请设置以下三个选项。必须设置所有选项,Frappe 才能尝试使用 SSL 进行连接。
db_host |
如果不是数据库主机。localhost |
db_port |
指定数据库的端口。 |
db_ssl_ca |
用于使用 ssl 连接到数据库主机的 ca.pem 文件的完整路径。示例值为 。"/etc/mysql/ssl/ca.pem" |
db_ssl_cert |
用于使用 ssl 连接到数据库主机的 cert.pem 文件的完整路径。示例值为 。"/etc/mysql/ssl/client-cert.pem" |
db_ssl_key |
用于使用 ssl 连接到数据库主机的 key.pem 文件的完整路径。示例值为 。"/etc/mysql/ssl/client-key.pem" |
rds_db |
在设置站点数据库时授予某些权限而不是全部权限。用于 .db_manager.py |
副本只读数据库主机设置
用户指南中提供了在副本设置中从辅助 MariaDB 服务器设置读取操作的指南。
read_from_replica |
启用禁用从副本读取。可接受的值为 1/0 或 true/false。 |
different_credentials_for_replica |
如果副本上的数据库凭据不同,则设置 1 否则为 0 |
replica_host |
repica 的 IP 地址 |
replica_db_name |
副本数据库名称 |
replica_db_password |
副本数据库密码 |
默认外发电子邮件设置
Frappe 电子邮件模块的一些可用较低级别的配置。
auto_email_id |
如果设置,这将是外发邮件的默认电子邮件。 |
mail_login |
用作第二个首选项,“notifications@example.com”用作后备。 |
always_use_account_email_id_as_sender |
使用帐户电子邮件 ID 作为发件人。 |
always_use_account_name_as_sender_name |
使用帐户名称作为发件人名称 |
email_sender_name |
电子邮件发件人姓名。 |
mail_server |
SMTP 服务器主机名。 |
mail_port |
STMP 端口。 |
mail_login |
SMTP 服务器的登录 ID。 |
mail_password |
SMTP 服务器的密码。 |
pop_timeout |
POP 超时。 |
use_ssl |
通过SSL连接。 |
use_tls |
通过 TLS 连接。 |
工作台配置
这些配置由 Bench CLI 使用,并且可以通过通用站点配置为系统上的每个工作台设置不同的配置。
restart_supervisor_on_update |
在工作台更新时重新启动主管 |
restart_systemd_on_update |
在工作台更新时重新启动 systemd |
release_bench |
如果设置,则当前工作台将纯粹被视为执行发布的工具。 |
background_workers |
分配用于处理后台作业的工作人员数。 |
dns_multitenant |
如果设置,则为 Bench 打开 DNS multitenany。在 NGINX conf 生成期间使用。 |
file_watcher_port |
文件观察程序的端口号 |
frappe_user |
在其下创建当前 Bench 的用户。 |
gunicorn_workers |
Gunicorn 工人的数量。默认最小值为 2。 |
gunicorn_max_requests |
gunicorn worker 将重新启动后的请求数。默认值为 5000。 |
maintenance_mode |
如果设置,则使站点脱机并停止所有后台进程和计划作业。在站点迁移和工作台更新操作期间使用。 |
pause_scheduler |
如果设置,则暂停指定站点的调度程序。 |
redis_cache |
在 Bench Procfile 中定义的 redis 缓存进程的端口号。 |
redis_queue |
Bench Procfile 中定义的 redis 队列进程的端口号。 |
redis_socketio |
在 Bench Procfile 中定义的 redis Socket.IO 进程的端口号。 |
scheduler_tick_interval |
作业计划程序运行一个循环,每 scheduler_tick_interval 秒将所有待执行的计划作业排入队列。这样就可以设置调度作业的最小频率。默认值为 60。 |
socketio_port |
Bench Procfile 中定义的 Socket.IO 进程的端口号。 |
webserver_port |
Frappe Web 服务器的端口号。 |
live_reload |
重建资产时自动重新加载 Desk。 |
集成
如果您是服务提供商,某些第三方集成可能需要您为工作台上的所有站点定义较低级别的配置。Frappe 允许您通过站点配置为您的集成定义这些配置设置。
Sandbox
sandbox_api_key |
Sandbox API Key |
sandbox_api_secret |
Sandbox API Secret |
sandbox_api_password |
Sandbox API Password |
sandbox_api_username |
Sandbox API Username |
sandbox_publishable_key |
Sandbox Publishable Key |
sandbox_signature |
Sandbox Signature |
DropBox
dropbox_access_key |
Dropbox Access Key |
dropbox_broker_site |
Dropbox Broker Site |
dropbox_secret_key |
Dropbox Secret Key |
PayPal
paypal_username |
Paypal Username |
paypal_password |
PayPal Password |
paypal_signature |
Paypal Signature |
Others
google_analytics_id |
Google Analytics ID |
converted_rupee_to_paisa |
Converted Rupee To Paisa for RazorPay Settings |
外部扩展配置
有时,人们可能不希望在站点配置 JSON 中直接硬编码 db password 等配置值。在这种情况下,在站点正常设置后,您可以安装一个自定义应用程序,该应用程序允许通过返回要附加/覆盖的任何值的字典来扩展站点配置。该应用程序可以根据需要获取这些内容,但首选延迟非常低的东西,因为它必须针对对站点的每个请求运行。
它可以这样配置(在初始站点设置+安装应用程序后完成
{
"extra_config": "vault.vault.conf_hook"
}
或者,如果您有多个
{
"extra_config": ["vault.vault.conf_hook1", "vault.vault.conf_hook2"]
}
自定义应用中方法的一个示例是
def conf_hook() -> dict:
password = get_password()
return {"db_password": password}