2015-03-27 13:42:42 +00:00
Bench
2014-07-15 09:17:32 +00:00
=====
2016-04-26 07:43:46 +00:00
The bench allows you to setup Frappe / ERPNext apps on your local Linux (CentOS 6, Debian 7, Ubuntu, etc) machine or a production server. You can use the bench to serve multiple frappe sites. If you are using a DigitalOcean droplet or any other VPS / Dedicated Server, make sure it has >= 1Gb of ram or has swap setup properly.
2014-07-25 06:00:47 +00:00
2016-04-26 07:43:46 +00:00
To do this install, you must have basic information on how Linux works and should be able to use the command-line. If you are looking easier ways to get started and evaluate ERPNext, [download the Virtual Machine ](https://erpnext.com/download ) or take [a free trial on erpnext.com ](https://erpnext.com/pricing ).
2014-07-25 06:00:47 +00:00
2016-03-23 07:51:46 +00:00
If you have questions, please ask them on our [forum ](https://discuss.erpnext.com/ ).
2014-07-15 09:17:32 +00:00
2014-07-15 05:48:04 +00:00
Installation
============
2016-05-19 12:39:29 +00:00
< table >
< tr >
2016-05-20 06:19:07 +00:00
< th width = 50% > Production Setup< / th >
< th width = 50% > Development Setup< / th >
2016-05-19 12:39:29 +00:00
< / tr >
< tr >
< td > Installs with master branch< / td >
< td > Installs with develop branch< / td >
< / tr >
< tr >
< td > The Production setup uses Nginx, and uses Supervisor to manage processes< / td >
< td > The development setup uses Honcho to manage processes (bench start)< / td >
< / tr >
< tr >
< td > This setup isn't meant for instant updates in code.< / td >
< td > Any code changes will be reflected instantly.< / td >
< / tr >
< tr >
< td > Background services handle all the work, and they start with the system.< / td >
< td > You need to explicitly start your server< / td >
< / tr >
< tr >
< td > Uses Celery for job queuing (Frappe 6)< / td >
< td > Uses RQ for job queuing (Frappe 7)< / td >
< / tr >
< / table >
2016-04-26 07:43:46 +00:00
Easy Setup
2016-03-23 07:51:46 +00:00
---------------------
2016-07-18 04:52:26 +00:00
- We recommend using the newer [Beta Installer ](#beta-installer ) if your system supports it.
2016-04-26 07:43:46 +00:00
- This is an opinionated setup with logging and SE Linux. So, it is best to setup on a blank server.
2016-05-04 10:12:05 +00:00
- Supported for CentOS 6, CentOS 7, Debian 7 and Ubuntu 12.04 to 15.x
2016-07-18 04:47:15 +00:00
- **Does not** work on Ubuntu 16.04, use the [Beta Installer ](#beta-installer ) instead
2016-04-26 07:43:46 +00:00
- This script will install the pre-requisites, install bench and setup an ERPNext site
- Passwords for Frappe, Frappe Administrator and MariaDB (root) will be generated
- You can then login as **Administrator** with the Administrator password printed
2014-07-15 05:48:04 +00:00
2014-07-25 06:00:47 +00:00
Open your Terminal and enter:
2016-04-26 07:43:46 +00:00
####For Production:
2016-05-19 12:39:29 +00:00
2014-07-31 04:34:01 +00:00
```
2016-05-19 12:39:29 +00:00
Mac OSX:
curl "https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh" -o "setup_frappe.sh"
Linux:
2014-07-31 04:34:01 +00:00
wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
2016-05-19 12:39:29 +00:00
2014-11-11 05:21:57 +00:00
sudo bash setup_frappe.sh --setup-production
2014-07-31 04:34:01 +00:00
```
2014-07-15 05:48:04 +00:00
2016-04-26 07:43:46 +00:00
####For Development:
2016-07-18 04:52:26 +00:00
2014-11-11 05:21:57 +00:00
2016-04-26 07:43:46 +00:00
```
2016-05-19 12:39:29 +00:00
Mac OSX:
curl "https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh" -o "setup_frappe.sh"
Linux:
2016-04-26 07:43:46 +00:00
wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh
sudo bash setup_frappe.sh --bench-branch develop
```
2016-05-19 12:39:29 +00:00
You have to explicitly start services by running `bench start` .
2016-04-26 07:43:46 +00:00
####Script Options:
```
-h | --help
-v | --verbose
--mysql-root-password
--frappe-user
--setup-production
--skip-setup-bench
--skip-install-bench
```
2014-07-15 05:48:04 +00:00
2016-03-23 07:51:46 +00:00
2016-06-28 08:44:24 +00:00
Beta Installer
2016-03-23 07:51:46 +00:00
------------------------
2016-07-18 04:47:15 +00:00
Tested on Ubuntu 14.04 to 16.04, CentOS 7+, and MacOS X. If you find any problems, post them on our forum: [https://discuss.erpnext.com ](https://discuss.erpnext.com )
2016-03-23 07:51:46 +00:00
```
2016-05-16 04:57:49 +00:00
Linux:
2016-04-13 15:45:22 +00:00
wget https://raw.githubusercontent.com/frappe/bench/develop/playbooks/install.py
2016-05-16 04:57:49 +00:00
Mac OSX:
2016-06-28 08:44:24 +00:00
curl "https://raw.githubusercontent.com/frappe/bench/develop/playbooks/install.py" -o install.py
2016-05-16 04:57:49 +00:00
2016-06-28 08:44:24 +00:00
# for development
2016-06-28 09:02:57 +00:00
sudo python install.py --develop
2016-06-28 08:44:24 +00:00
# for production
2016-06-28 09:02:57 +00:00
sudo python install.py --production
2016-06-28 08:44:24 +00:00
2016-07-18 04:47:15 +00:00
# If you're logged in as root, use --user flag to create a user and install using that user
sudo python install.py --develop --user frappe
2016-03-23 07:51:46 +00:00
```
2016-07-18 04:47:15 +00:00
For development, you have to explicitly start services by running `bench start` . This script requires Python2.7+ installed on your machine. You will have to manually create a new site (`bench new-site`) and get apps that you need (`bench get-app`, `bench install-app` ).
For production, you will have a preinstalled site with ERPNext installed in it.
You need to run this with a user that is **not** `root` , but can `sudo` . If you don't have such a user, you can search the web for *How to add a new user in { your OS }* and *How to add an existing user to sudoers in { your OS }* .
2016-03-23 07:51:46 +00:00
2016-05-16 04:57:49 +00:00
On Mac OS X, you will have to create a group with the same name as *{ your User }* . On creating this group, you have to assign *{ your User }* to it. You can do this by going to "System preferences" -> "Users & Groups" -> "+" (as if you were adding new account) -> Under "New account" select "Group" -> Type in group name -> "Create group"
2016-03-23 07:51:46 +00:00
This script will:
- Install pre-requisites like git and ansible
- Shallow clones this bench repository under `/usr/local/frappe/bench-repo`
- Runs the Ansible playbook 'playbooks/develop/install.yml', which:
- Installs
- MariaDB and its config
- Redis
- NodeJS
- WKHTMLtoPDF with patched QT
- Initializes a new Bench at `~/frappe/frappe-bench` with `frappe` framework already installed under `apps` .
2016-07-18 04:47:15 +00:00
####Script Options:
```
--help
--verbose
--develop
--production
--site
--user
--bench-branch
--repo-url
```
2014-07-15 05:48:04 +00:00
2014-07-16 08:39:16 +00:00
Updating
========
To manually update the bench, run `bench update` to update all the apps, run
patches, build JS and CSS files and restart supervisor (if configured to).
You can also run the parts of the bench selectively.
`bench update --pull` will only pull changes in the apps
2014-07-16 08:41:50 +00:00
2014-07-16 08:39:16 +00:00
`bench update --patch` will only run database migrations in the apps
2014-07-16 08:41:50 +00:00
2014-07-16 08:39:16 +00:00
`bench update --build` will only build JS and CSS files for the bench
2014-07-16 08:41:50 +00:00
2014-07-16 08:39:16 +00:00
`bench update --bench` will only update the bench utility (this project)
2016-05-18 12:02:51 +00:00
`bench update --requirements` will only update dependencies (python packages) for the apps installed
2014-07-16 08:39:16 +00:00
2016-04-26 07:43:46 +00:00
Guides
=======
- [Configuring HTTPS ](https://frappe.github.io/frappe/user/en/bench/guides/configuring-https.html )
2016-04-29 10:57:45 +00:00
- [Using Let's Encrypt to setup HTTPS ](https://frappe.github.io/frappe/user/en/bench/guides/lets-encrypt-ssl-setup.html )
2016-04-26 07:43:46 +00:00
- [Diagnosing the Scheduler ](https://frappe.github.io/frappe/user/en/bench/guides/diagnosing-the-scheduler.html )
- [Change Hostname ](https://frappe.github.io/frappe/user/en/bench/guides/how-to-change-host-name-from-localhost.html )
- [Manual Setup ](https://frappe.github.io/frappe/user/en/bench/guides/manual-setup.html )
- [Setup Production ](https://frappe.github.io/frappe/user/en/bench/guides/setup-production.html )
- [Setup Multitenancy ](https://frappe.github.io/frappe/user/en/bench/guides/setup-multitenancy.html )
- [Stopping Production ](https://frappe.github.io/frappe/user/en/bench/guides/stop-production-and-start-development.html )
2014-07-16 08:39:16 +00:00
2014-07-21 11:18:41 +00:00
2016-04-26 07:43:46 +00:00
Resources
=======
2014-07-21 11:18:41 +00:00
2016-04-26 07:43:46 +00:00
- [Background Services ](https://frappe.github.io/frappe/user/en/bench/resources/background-services.html )
- [Bench Commands Cheat Sheet ](https://frappe.github.io/frappe/user/en/bench/resources/bench-commands-cheatsheet.html )
- [Bench Procfile ](https://frappe.github.io/frappe/user/en/bench/resources/bench-procfile.html )