This may not be known to a lot of people but half the bench commands we’re used to, exist in the InfluxFramework Framework and not in bench directly. Those commands generally are the --site
commands. This page is concerned only with the commands in the bench project. Any framework commands won’t be a part of this consolidation.
Under Click’s structure, bench
is the main command group, under which there are three main groups of commands in bench currently, namely
install: The install command group deals with commands used to install system dependencies for setting up InfluxFramework environment
setup: This command group for consists of commands used to maipulate the requirements and environments required by your InfluxFramework environment
config: The config command group deals with making changes in the current bench (not the CLI tool) configuration
➜ bench
Usage: bench [OPTIONS] COMMAND [ARGS]...
Bench manager for InfluxFramework
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...
Similarly, all available flags and options can be checked for commands individually by executing them with the --help
flag. The init
command for instance:
➜ 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
Some bench commands may require sudo, such as some setup
commands and everything else under the install
commands group. For these commands, you may not be asked for your root password if sudoers setup has been done. The security implications, well we’ll talk about those soon.
These commands belong directly to the bench group so they can be invoked directly prefixing each with bench
in your shell. Therefore, the usage for these commands is as
bench COMMAND [ARGS]...
init: Initialize a new bench instance in the specified path. This sets up a complete bench folder with an apps
folder which contains all the InfluxFramework apps available in the current bench, sites
folder that stores all site data seperated by individual site folders, config
folder that contains your redis, NGINX and supervisor configuration files. The env
folder consists of all python dependencies the current bench and installed InfluxFramework applications have.
restart: Restart web, supervisor, systemd processes units. Used in production setup.
update: If executed in a bench directory, without any flags will backup, pull, setup requirements, build, run patches and restart bench. Using specific flags will only do certain tasks instead of all.
migrate-env: Migrate Virtual Environment to desired Python version. This regenerates the env
folder with the specified Python version.
retry-upgrade: Retry a failed upgrade
disable-production: Disables production environment for the bench.
renew-lets-encrypt: Renew Let’s Encrypt certificate for site SSL.
backup: Backup single site data. Can be used to backup files as well.
backup-all-sites: Backup all sites in current bench.
get-app: Download an app from the internet or filesystem and set it up in your bench. This clones the git repo of the InfluxFramework project and installs it in the bench environment.
remove-app: Completely remove app from bench and re-build assets if not installed on any site.
exclude-app: Exclude app from updating during a bench update
include-app: Include app for updating. All InfluxFramework applications are included by default when installed.
remote-set-url: Set app remote url
remote-reset-url: Reset app remote url to influxframework official
remote-urls: Show apps remote url
switch-to-branch: Switch all apps to specified branch, or specify apps separated by space
switch-to-develop: Switch InfluxFramework and InfluxERP to develop branch
cd $(bench src)
.bench pip help [COMMAND]
or bench pip [COMMAND] -h
.The setup commands used for setting up the InfluxFramework environment in context of the current bench need to be executed using bench setup
as the prefix. So, the general usage of these commands is as
bench setup COMMAND [ARGS]...
sudoers: Add commands to sudoers list for allowing bench commands execution without root password
env: Setup Python virtual environment for bench. This sets up a env
folder under the root of the bench directory.
redis: Generates configuration for Redis
fonts: Add InfluxFramework fonts to system
config: Generate or over-write sites/common_site_config.json
backups: Add cronjob for bench backups
socketio: Setup node dependencies for socketio server
requirements: Setup Python and Node dependencies
manager: Setup bench-manager.local
site with the Bench Manager app, a GUI for bench installed on it.
procfile: Generate Procfile for bench start
production: Setup InfluxFramework production environment for specific user. This installs ansible, NGINX, supervisor, fail2ban and generates the respective configuration files.
nginx: Generate configuration files for NGINX
fail2ban: Setup fail2ban, an intrusion prevention software framework that protects computer servers from brute-force attacks
systemd: Generate configuration for systemd
firewall: Setup firewall for system
ssh-port: Set SSH Port for system
reload-nginx: Checks NGINX config file and reloads service
supervisor: Generate configuration for supervisor
lets-encrypt: Setup lets-encrypt SSL for site
wildcard-ssl: Setup wildcard SSL certificate for multi-tenant bench
add-domain: Add a custom domain to a particular site
remove-domain: Remove custom domain from a site
sync-domains: Check if there is a change in domains. If yes, updates the domains list.
role: Install dependencies via ansible roles
The config group commands are used for manipulating configurations in the current bench context. The usage for these commands is as
bench config COMMAND [ARGS]...
set-common-config: Set value in common config
remove-common-config: Remove specific keys from current bench’s common config
update_bench_on_update: Enable/Disable bench updates on running bench update
restart_supervisor_on_update: Enable/Disable auto restart of supervisor processes
restart_systemd_on_update: Enable/Disable auto restart of systemd units
dns_multitenant: Enable/Disable bench multitenancy on running bench update
serve_default_site: Configure nginx to serve the default site on port 80
http_timeout: Set HTTP timeout
The install group commands are used for manipulating system level dependencies. The usage for these commands is as
bench install COMMAND [ARGS]...