本页面仅涉及 bench 项目中存在的命令,
这些命令是 CLI 工具的直接组成部分。这些命令定义在
frappe/bench 下。
有关任何框架命令的参考,请查看 Frappe 命令。
使用 bench CLI
➜ bench
Usage: bench [OPTIONS] COMMAND [ARGS]...
Bench manager for Frappe
Options:
--version
--help Show this message and exit.
Commands:
backup Backup single site
backup-all-sites Backup all sites in current bench
config Change bench configuration
disable-production Disables production environment for the bench.
download-translations Download latest translations
exclude-app Exclude app from updating
find Finds benches recursively from location
get-app Clone an app from the internet or filesystem and...
同样,可以通过使用 --help 标志单独执行命令来检查所有可用的标志和选项。例如 init 命令:
➜ bench init --help
Usage: bench init [OPTIONS] PATH
Initialize a new bench instance in the specified path
Options:
--python TEXT Path to Python Executable.
--ignore-exist Ignore if Bench instance exists.
--apps_path TEXT path to json files with apps to install
after init
命令
在 Click 的结构下,bench 是主命令组,目前 bench 下有三个主要的命令组,分别是
通用命令
一组不能广泛归类到其他命令中的命令。诸如 init、get-app、find 等命令属于此类别。这些命令直接属于 bench 组,因此可以在 shell 中直接以 bench 为前缀调用。因此,这些命令的用法如下
➜ bench COMMAND [ARGS]...
常用命令
-
init:在指定路径初始化一个新的 bench 实例。这会创建一个完整的 bench 文件夹,其中包含一个
apps文件夹(包含当前 bench 中所有可用的 Frappe 应用)、一个sites文件夹(按各个站点文件夹存储所有站点数据)、一个config文件夹(包含你的 redis、NGINX 和 supervisor 配置文件)。env文件夹包含当前 bench 的所有 Python 依赖以及已安装的 Frappe 应用所具有的依赖。 -
restart:重启 web、supervisor、systemd 进程单元。用于生产环境设置。
-
update:如果在 bench 目录中执行且不带任何标志,将执行备份、拉取、设置依赖、构建、运行补丁并重启 bench。使用特定标志则只执行某些任务而非全部。
-
migrate-env:将虚拟环境迁移到所需的 Python 版本。这会使用指定的 Python 版本重新生成
env文件夹。 -
retry-upgrade:重试失败的升级
-
disable-production:禁用 bench 的生产环境。
-
renew-lets-encrypt:为站点 SSL 续期 Let’s Encrypt 证书。
-
backup:备份单个站点数据。也可用于备份文件。
-
backup-all-sites:备份当前 bench 中的所有站点。
-
get-app:从互联网或文件系统下载应用并在你的 bench 中进行设置。这会克隆 Frappe 项目的 git 仓库并将其安装到 bench 环境中。
-
remove-app:从当前 bench 中完全移除指定的 Frappe 应用,如果该应用未安装在任何站点上,则重新构建资源。
-
exclude-app:在
bench update期间排除应用不进行更新 -
include-app:包含应用以进行更新。所有 Frappe 应用在安装时默认都会被包含。
-
remote-set-url:设置应用远程 URL
-
remote-reset-url:将应用远程 URL 重置为 frappe 官方地址
-
remote-urls:显示应用的远程 URL
-
switch-to-branch:将所有应用切换到指定分支,或用空格分隔指定多个应用
-
switch-to-develop:将 Frappe 和 ERPNext 切换到 develop 分支
高级设置相关
- set-nginx-port:设置站点的 NGINX 端口
- set-ssl-certificate:设置站点的 SSL 证书路径
- set-ssl-key:设置站点的 SSL 证书私钥路径
- set-url-root:设置站点的 URL 根路径
- set-mariadb-host:设置 bench 的 MariaDB 主机
- set-redis-cache-host:设置 bench 的 Redis 缓存主机
- set-redis-queue-host:设置 bench 的 Redis 队列主机
- set-redis-socketio-host:设置 bench 的 Redis socketio 主机
- use:设置 bench 的默认站点
- download-translations:下载最新翻译
开发
- start:启动 Frappe 开发进程。使用 Procfile 启动 Frappe 开发环境。
- src:打印 bench 源文件夹路径,可通过
cd $(bench src)用于 cd 进入 bench 安装仓库。 - find:从当前位置或指定路径递归查找 bench。
- pip:使用当前 bench 的 pip 来管理 Python 包。有关 pip 用法的帮助:
bench pip help [COMMAND]或bench pip [COMMAND] -h。 - new-app:在 apps 文件夹下创建一个新的 Frappe 应用。
发布 bench
- release:创建 Frappe 应用的发布版本
- prepare-beta-release:从 develop 分支准备主要 beta 版本
设置命令
此命令组包含用于操作 Frappe 环境所需的要求和环境的命令。用于在当前 bench 上下文中设置 Frappe 环境的设置命令需要使用 bench setup 作为前缀来执行。因此,这些命令的一般用法是
➜ bench setup COMMAND [ARGS]...
-
sudoers:将命令添加到 sudoers 列表,以允许无需 root 密码执行 bench 命令
-
env:为您的 bench 设置 Python 虚拟环境。这会在 bench 目录根下设置一个
env文件夹。 -
redis:生成 Redis 的配置
-
fonts:将 Frappe 字体添加到系统
-
config:生成或覆盖
sites/common_site_config.json -
backups:为 bench 备份添加 cronjob
-
socketio:为 socketio 服务器设置 node 依赖
-
requirements:设置 Python 和 Node 依赖
-
manager:使用 Bench Manager 应用设置
bench-manager.local站点,这是一个安装在它上面的 bench GUI。 -
procfile:为 bench start 生成 Procfile
-
production:为指定用户设置 Frappe 生产环境。这会安装 ansible、NGINX、supervisor、fail2ban 并生成相应的配置文件。
-
nginx:为 NGINX 生成配置文件
-
fail2ban:设置 fail2ban,这是一个入侵预防软件框架,保护计算机服务器免受暴力攻击
-
systemd:为 systemd 生成配置
-
firewall:为系统设置防火墙
-
ssh-port:设置系统的 SSH 端口
-
reload-nginx:检查 NGINX 配置文件并重新加载服务
-
supervisor:为 supervisor 生成配置
-
lets-encrypt:为站点设置 lets-encrypt SSL
-
wildcard-ssl:为多租户 bench 设置通配符 SSL 证书
-
add-domain:为特定站点添加自定义域名
-
remove-domain:从站点移除自定义域名
-
sync-domains:检查域名是否有变化。如果有,更新域名列表。
-
role:通过 ansible 角色安装依赖
配置命令
配置命令组处理当前 bench(不是 CLI 工具)配置的更改。配置组命令用于在当前 bench 上下文中操作配置。这些命令的用法是
➜ bench config COMMAND [ARGS]...
- set-common-config:在通用配置中设置值,参数为 -c、configs 或 –config
- remove-common-config:从当前 bench 的通用配置中移除特定键
- update_bench_on_update:在运行 bench update 时启用/禁用 bench 更新
- restart_supervisor_on_update:启用/禁用 supervisor 进程的自动重启
- restart_systemd_on_update:启用/禁用 systemd 单元的自动重启
- dns_multitenant:在运行 bench update 时启用/禁用 bench 多租户
- serve_default_site:配置 nginx 在端口 80 上服务默认站点
- http_timeout:设置 HTTP 超时
安装命令
安装命令组处理用于安装系统依赖以设置 Frappe 环境的命令。这些命令的用法是
bench install COMMAND [ARGS]...
- prerequisites:安装先决条件库、基本工具如 b2zip、htop、screen、vim、x11-fonts、python 库、cups 和 Redis
- nodejs:安装 Node.js v8
- nginx:安装 NGINX。如果指定了用户,则为该用户设置 sudoers
- packer:安装 Oracle virtualbox 和 packer 1.2.1
- psutil:通过 pip 安装 psutil
- mariadb:安装并设置指定版本的 MariaDB 和 root 密码
- wkhtmltopdf:为 linux 安装 wkhtmltopdf v0.12.3
- supervisor:安装 supervisor。如果指定了用户,则为该用户设置 sudoers
- fail2ban:安装 fail2ban,这是一个入侵预防软件框架,保护计算机服务器免受暴力攻击
- virtualbox:安装 virtualbox。
一般用法
本节涵盖 Bench CLI 的一般用法,足以让您熟悉基本用法。
创建一个新 bench
init 命令将创建一个安装了 frappe 框架的 bench 目录。它将设置为定期备份。
➜ bench init frappe-bench && cd frappe-bench
添加站点
Frappe 应用由 frappe 站点运行,您必须至少创建一个站点。new-site 命令允许您这样做。
➜ bench new-site site1.local
添加应用
get-app 命令会从远程 git 仓库获取远程 frappe 应用并
安装它们。例如:erpnext
➜ bench get-app erpnext https://github.com/frappe/erpnext
安装应用
要在新站点上安装应用,请使用 bench install-app 命令。
➜ bench --site site1.local install-app erpnext
启动 bench
要开始使用 bench,请使用 bench start 命令
➜ bench start
要登录 Frappe / ERPNext,请打开浏览器并访问[your-external-ip]:8000,可能是 localhost:8000
默认用户名是“Administrator”,密码是你在
创建新站点时设置的密码。
更新 bench
从你的 bench 目录更新所有应用和站点。此操作会为你执行
备份、设置依赖、构建资源、运行迁移并重启你的
进程管理器。
➜ bench update
更新 Bench 配置
要更新你的 bench 的通用站点配置,你可以使用
config 命令组下的 set-common-config 和 remove-common-config 命令。
要了解更多可用的 Frappe 站点配置,
请查看 Site Config 和 Bench Config 文档。
要添加或更新现有的配置键,你可以运行类似这样的命令
➜ bench config set-common-config -c enable_frappe_logger true
要删除现有的配置键,你可以运行类似这样的命令
➜ bench config remove-common-config enable_frappe_logger
Bench Manager
如需基于 UI 的方式来管理你的部署,请查看 Bench Manager。
➜ bench setup manager
你可以通过在任意现有 bench 上运行上述命令来轻松设置它。
这会做什么?
- 创建一个新站点
bench-manager.local - 获取
bench_manager应用 - 在站点
bench-manager.local上安装Bench Manager应用
你可以使用这个站点通过
bench-manager.local 的 /desk 视图来管理你的 bench 操作。