mirror of
https://github.com/frappe/bench.git
synced 2025-01-08 00:04:38 +00:00
feat: sub commands for easy-install
This commit is contained in:
parent
7931b39334
commit
df24b714cc
3
.github/workflows/easy-install.yml
vendored
3
.github/workflows/easy-install.yml
vendored
@ -28,8 +28,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Perform production easy install
|
- name: Perform production easy install
|
||||||
run: |
|
run: |
|
||||||
python3 ${GITHUB_WORKSPACE}/easy-install.py build >/dev/null
|
python3 ${GITHUB_WORKSPACE}/easy-install.py build --deploy --tag=custom-apps:latest --project=actions_test --email=test@frappe.io --image=custom-apps --version=latest --app=erpnext
|
||||||
python3 ${GITHUB_WORKSPACE}/easy-install.py -p -n actions_test --email test@frappe.io --image custom-apps --version latest --app erpnext
|
|
||||||
docker compose -p actions_test exec backend bench version --format json
|
docker compose -p actions_test exec backend bench version --format json
|
||||||
docker compose -p actions_test exec backend bench --site site1.localhost list-apps --format json
|
docker compose -p actions_test exec backend bench --site site1.localhost list-apps --format json
|
||||||
result=$(curl -H "Host: site1.localhost" -sk https://127.0.0.1/api/method/ping | jq -r ."message")
|
result=$(curl -H "Host: site1.localhost" -sk https://127.0.0.1/api/method/ping | jq -r ."message")
|
||||||
|
150
README.md
150
README.md
@ -87,7 +87,7 @@ Download the Easy Install script and execute it:
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ wget https://raw.githubusercontent.com/frappe/bench/develop/easy-install.py
|
$ wget https://raw.githubusercontent.com/frappe/bench/develop/easy-install.py
|
||||||
$ python3 easy-install.py --prod --email your@email.tld
|
$ python3 easy-install.py deploy --email=user@domain.tld --sitename=subdomain.domain.tld --app=erpnext
|
||||||
```
|
```
|
||||||
|
|
||||||
This script will install docker on your system and will fetch the required containers, setup bench and a default ERPNext instance.
|
This script will install docker on your system and will fetch the required containers, setup bench and a default ERPNext instance.
|
||||||
@ -101,20 +101,150 @@ When the setup is complete, you will be able to access the system at `http://<yo
|
|||||||
|
|
||||||
Here are the arguments for the easy-install script
|
Here are the arguments for the easy-install script
|
||||||
|
|
||||||
```txt
|
**Build custom images**
|
||||||
usage: easy-install.py [-h] [-p] [-d] [-s SITENAME] [-n PROJECT] [--email EMAIL]
|
|
||||||
|
|
||||||
Install Frappe with Docker
|
```txt
|
||||||
|
usage: easy-install.py build [-h] [-n PROJECT] [-i IMAGE] [-q] [-m HTTP_PORT] [-v VERSION] [-a APPS] [-s SITES] [-e EMAIL]
|
||||||
|
[-p] [-r FRAPPE_PATH] [-b FRAPPE_BRANCH] [-j APPS_JSON] [-t TAGS] [-c CONTAINERFILE]
|
||||||
|
[-y PYTHON_VERSION] [-d NODE_VERSION] [-x] [-u]
|
||||||
|
|
||||||
options:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
-p, --prod Setup Production System
|
-n PROJECT, --project PROJECT
|
||||||
-d, --dev Setup Development System
|
Project Name
|
||||||
-s SITENAME, --sitename SITENAME The Site Name for your production site
|
-i IMAGE, --image IMAGE
|
||||||
-n PROJECT, --project PROJECT Project Name
|
Full Image Name
|
||||||
--email EMAIL Add email for the SSL.
|
-q, --no-ssl No https
|
||||||
|
-m HTTP_PORT, --http-port HTTP_PORT
|
||||||
|
Http port in case of no-ssl
|
||||||
|
-v VERSION, --version VERSION
|
||||||
|
ERPNext version to install, defaults to latest stable
|
||||||
|
-a APPS, --app APPS list of app(s) to be installed
|
||||||
|
-s SITES, --sitename SITES
|
||||||
|
Site Name(s) for your production bench
|
||||||
|
-e EMAIL, --email EMAIL
|
||||||
|
Add email for the SSL.
|
||||||
|
-p, --push Push the built image to registry
|
||||||
|
-r FRAPPE_PATH, --frappe-path FRAPPE_PATH
|
||||||
|
Frappe Repository to use, default: https://github.com/frappe/frappe
|
||||||
|
-b FRAPPE_BRANCH, --frappe-branch FRAPPE_BRANCH
|
||||||
|
Frappe branch to use, default: version-15
|
||||||
|
-j APPS_JSON, --apps-json APPS_JSON
|
||||||
|
Path to apps json, default: frappe_docker/development/apps-example.json
|
||||||
|
-t TAGS, --tag TAGS Full Image Name(s), default: custom-apps:latest
|
||||||
|
-c CONTAINERFILE, --containerfile CONTAINERFILE
|
||||||
|
Path to Containerfile: images/layered/Containerfile
|
||||||
|
-y PYTHON_VERSION, --python-version PYTHON_VERSION
|
||||||
|
Python Version, default: 3.11.6
|
||||||
|
-d NODE_VERSION, --node-version NODE_VERSION
|
||||||
|
NodeJS Version, default: 18.18.2
|
||||||
|
-x, --deploy Deploy after build
|
||||||
|
-u, --upgrade Upgrade after build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Deploy using compose**
|
||||||
|
|
||||||
|
```txt
|
||||||
|
usage: easy-install.py deploy [-h] [-n PROJECT] [-i IMAGE] [-q] [-m HTTP_PORT] [-v VERSION] [-a APPS] [-s SITES] [-e EMAIL]
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-n PROJECT, --project PROJECT
|
||||||
|
Project Name
|
||||||
|
-i IMAGE, --image IMAGE
|
||||||
|
Full Image Name
|
||||||
|
-q, --no-ssl No https
|
||||||
|
-m HTTP_PORT, --http-port HTTP_PORT
|
||||||
|
Http port in case of no-ssl
|
||||||
|
-v VERSION, --version VERSION
|
||||||
|
ERPNext version to install, defaults to latest stable
|
||||||
|
-a APPS, --app APPS list of app(s) to be installed
|
||||||
|
-s SITES, --sitename SITES
|
||||||
|
Site Name(s) for your production bench
|
||||||
|
-e EMAIL, --email EMAIL
|
||||||
|
Add email for the SSL.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Upgrade existing project**
|
||||||
|
|
||||||
|
```txt
|
||||||
|
usage: easy-install.py upgrade [-h] [-n PROJECT] [-i IMAGE] [-q] [-m HTTP_PORT] [-v VERSION]
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-n PROJECT, --project PROJECT
|
||||||
|
Project Name
|
||||||
|
-i IMAGE, --image IMAGE
|
||||||
|
Full Image Name
|
||||||
|
-q, --no-ssl No https
|
||||||
|
-m HTTP_PORT, --http-port HTTP_PORT
|
||||||
|
Http port in case of no-ssl
|
||||||
|
-v VERSION, --version VERSION
|
||||||
|
ERPNext or image version to install, defaults to latest stable
|
||||||
|
```
|
||||||
|
|
||||||
|
**Development setup using compose**
|
||||||
|
|
||||||
|
```txt
|
||||||
|
usage: easy-install.py develop [-h] [-n PROJECT]
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-n PROJECT, --project PROJECT
|
||||||
|
Compose project name
|
||||||
|
```
|
||||||
|
|
||||||
|
**Exec into existing project**
|
||||||
|
|
||||||
|
```txt
|
||||||
|
usage: easy-install.py exec [-h] [-n PROJECT]
|
||||||
|
|
||||||
|
options:
|
||||||
|
-h, --help show this help message and exit
|
||||||
|
-n PROJECT, --project PROJECT
|
||||||
|
Project Name
|
||||||
|
```
|
||||||
|
|
||||||
|
To use custom apps, you need to create a json file with list of apps and pass it to build command.
|
||||||
|
|
||||||
|
Example apps.json
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"url": "https://github.com/frappe/wiki.git",
|
||||||
|
"branch": "master"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
Execute following command to build and deploy above apps:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ python3 easy-install.py build \
|
||||||
|
--tag=ghcr.io/org/repo/custom-apps:latest \
|
||||||
|
--push \
|
||||||
|
--image=ghcr.io/org/repo/custom-apps \
|
||||||
|
--version=latest \
|
||||||
|
--deploy \
|
||||||
|
--project=actions_test \
|
||||||
|
--email=test@frappe.io \
|
||||||
|
--apps-json=apps.json \
|
||||||
|
--app=wiki
|
||||||
|
```
|
||||||
|
|
||||||
|
Note:
|
||||||
|
|
||||||
|
- `--tag`, tag to set for built image, can be multiple.
|
||||||
|
- `--push`, push the built image.
|
||||||
|
- `--image`, the image to use when starting docker compose project.
|
||||||
|
- `--version`, the version to use when starting docker compose project.
|
||||||
|
- `--app`, app to install on site creation, can be multiple.
|
||||||
|
- `--deploy`, flag to deploy after build/push is complete
|
||||||
|
- `--project=actions_test`, name of the project, compose file with project name will be stored in user home directory.
|
||||||
|
- `--email=test@frappe.io`, valid email for letsencrypt certificate expiry notification.
|
||||||
|
- `--apps-json`, path to json file with list of apps to be added to bench.
|
||||||
|
|
||||||
#### Troubleshooting
|
#### Troubleshooting
|
||||||
|
|
||||||
In case the setup fails, the log file is saved under `$HOME/easy-install.log`. You may then
|
In case the setup fails, the log file is saved under `$HOME/easy-install.log`. You may then
|
||||||
|
1134
easy-install.py
1134
easy-install.py
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user