Git Product home page Git Product logo

bench's Introduction

Frappe Bench

Build Status

The bench is a command-line utility that helps you to install apps, manage multiple sites and update Frappe / ERPNext apps on */nix (CentOS, Debian, Ubuntu, etc) for development and production. Bench will also create nginx and supervisor config files, setup backups and much more.

If you are using on a VPS make sure it has >= 1Gb of RAM or has swap setup properly.

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 or take a free trial on erpnext.com.

If you have questions, please ask them on the forum.

Installation

Installation Requirements

You will need a computer/server. Options include:

  • A Normal Computer/VPS/Baremetal Server: This is strongly recommended. Frappe/ERPNext installs properly and works well on these
  • A Raspberry Pi, SAN Appliance, Network Router, Gaming Console, etc.: Although you may be able to install Frappe/ERPNext on specialized hardware, it is unlikely to work well and will be difficult for us to support. Strongly consider using a normal computer/VPS/baremetal server instead. We do not support specialized hardware.
  • A Toaster, Car, Firearm, Thermostat, etc.: Yes, many modern devices now have embedded computing capability. We live in interesting times. However, you should not install Frappe/ERPNext on these devices. Instead, install it on a normal computer/VPS/baremetal server. We do not support installing on noncomputing devices.

To install the Frappe/ERPNext server software, you will need an operating system on your normal computer which is not Windows. Note that the command line interface does work on Windows, and you can use Frappe/ERPNext from any operating system with a web browser. However, the server software does not run on Windows. It does run on other operating systems, so choose one of these instead:

  • Linux: Debian, Ubuntu, CentOS are the preferred distros and are well tested. Arch Linux can also be used
  • Mac OS X

Manual Install

To manually install frappe/erpnext, you can follow this this wiki for Linux and this wiki for MacOS. It gives an excellent explanation about the stack. You can also follow the steps mentioned below:

1. Install Pre-requisites

  • Python 2.7 [Python3.5+ also supported, but not recommended for production]
  • MariaDB 10+
  • Nginx (for production)
  • Nodejs
  • yarn
  • Redis
  • cron (crontab is required)
  • wkhtmltopdf (version 0.12.5) (for pdf generation)

2. Install Bench

Install bench as a non root user,

git clone https://github.com/frappe/bench bench-repo
pip install --user -e bench-repo

Note: Please do not remove the bench directory the above commands will create

Basic Usage

  • Create a new bench

    The init command will create a bench directory with frappe framework installed. It will be setup for periodic backups and auto updates once a day.

      bench init frappe-bench && cd frappe-bench
    
  • Add a site

    Frappe apps are run by frappe sites and you will have to create at least one site. The new-site command allows you to do that.

      bench new-site site1.local
    
  • Add apps

    The get-app command gets remote frappe apps from a remote git repository and installs them. Example: erpnext

      bench get-app erpnext https://github.com/frappe/erpnext
    
  • Install apps

    To install an app on your new site, use the bench install-app command.

      bench --site site1.local install-app erpnext
    
  • Start bench

    To start using the bench, use the bench start command

      bench start
    

    To login to Frappe / ERPNext, open your browser and go to [your-external-ip]:8000, probably localhost:8000

    The default username is "Administrator" and password is what you set when you created the new site.


Easy Install

  • This is an opinionated setup so it is best to setup on a blank server.
  • Works on Ubuntu 16.04+, CentOS 7+, Debian 8+
  • You may have to install Python 2.7 (eg on Ubuntu 16.04+) by running apt-get install python-minimal
  • You may also have to install build-essential and python-setuptools by running apt-get install build-essential python-setuptools
  • This script will install the pre-requisites, install bench and setup an ERPNext site
  • Passwords for Frappe Administrator and MariaDB (root) will be asked
  • MariaDB (root) password may be password on a fresh server
  • You can then login as Administrator with the Administrator password
  • If you find any problems, post them on the forum: https://discuss.erpnext.com

Open your Terminal and enter:

1. Download the install script

For Linux:

wget https://raw.githubusercontent.com/frappe/bench/master/playbooks/install.py

2. Run the install script

If you are on a fresh server and logged in as root, use --user flag to create a user and install using that user

python install.py --develop --user frappe

For developer setup:

sudo python install.py --develop

For production:

sudo python install.py --production --user frappe

What will this script do?

  • Install all the pre-requisites
  • Install the command line bench
  • Create a new bench (a folder that will contain your entire frappe/erpnext setup)
  • Create a new ERPNext site on the bench

How do I start ERPNext

  1. For development: Go to your bench folder (frappe-bench by default) and start the bench with bench start
  2. For production: Your process will be setup and managed by nginx and supervisor. Setup Production

Bench Manager (GUI for Bench)

Bench Manager is a graphical user interface to emulate the functionalities of Frappé Bench. Like the command line utility it helps you install apps, manage multiple sites, update apps and much more.

Installation

$ bench setup manager

What all it does:

  1. Create new site bench-manager.local
  2. Gets the bench_manager app from https://github.com/frappe/bench_manager if it doesn't exist already
  3. Installs the bench_manager app on the site bench-manager.local

Docker Install - For Developers (beta)

  1. For developer setup, you can also use the official Frappé Docker.
  2. The app, mariadb and redis run on individual containers
  3. This setup supports multi-tenancy and exposes the frappe-bench volume as a external storage.
  4. For more details, read the instructions on the Frappé Docker README

Help

For bench help, you can type

bench --help

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

bench update --patch will only run database migrations in the apps

bench update --build will only build JS and CSS files for the bench

bench update --bench will only update the bench utility (this project)

bench update --requirements will only update dependencies (python packages) for the apps installed

Guides

Resources

bench's People

Contributors

pdvyas avatar anandpdoshi avatar codingcoffee avatar rmehta avatar saurabh6790 avatar vjfalk avatar achillesrasquinha avatar revant avatar netchampfaris avatar sagarvora avatar nabinhait avatar shridarpatil avatar thunderbottom avatar adityahase avatar mbauskar avatar jwrober avatar itsraichura avatar loader-bsd avatar slushpuppy avatar yashodhank avatar vishalseshagiri avatar sbkolate avatar robertschouten avatar kressi avatar mhbu50 avatar pratu16x7 avatar raghu-kamath avatar shanavas786 avatar gshmu avatar tundebabzy avatar

Watchers

Ibrahem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.