Skip to main content

A command-line tool for Frappe/ERPNext development environment management

Project description

WS Frappe CLI

A command-line tool for Frappe/ERPNext development environment management.

PyPI version Python Support License: MIT

Overview

WS Frappe CLI simplifies the setup, configuration, and management of Frappe/ERPNext development environments. It provides an intuitive command-line interface for common development tasks.

Features

  • 🚀 Quick Setup: Initialize Frappe development environment with a single command
  • 🌐 Site Management: Create and configure new sites interactively
  • 📦 App Management: Install predefined or custom Frappe apps easily
  • 🎨 Interactive Interface: User-friendly prompts and colored output
  • Efficient Workflow: Streamlined commands for common development tasks

Installation

From PyPI (Recommended)

pip install ws-frappe-cli

From Source

git clone https://github.com/yourusername/ws-frappe-cli.git
cd ws-frappe-cli
pip install -e .

Quick Start

1. Setup Development Environment

Initialize a new Frappe development environment:

ws-frappe-cli setup

This command will:

  • Create a Python virtual environment
  • Install frappe-bench
  • Initialize a new bench with Frappe

2. Create a Site

Create a new Frappe site:

ws-frappe-cli create-site

Follow the interactive prompts to configure your site.

3. Install Apps

Install Frappe apps on your site:

# List available predefined apps
ws-frappe-cli fetch-app --list-predefined

# Install a predefined app
ws-frappe-cli fetch-app --app-name erpnext

# Install a custom app
ws-frappe-cli fetch-app --app-name myapp --github-url https://github.com/user/myapp

Command Reference

ws-frappe-cli setup

Initialize Frappe development environment.

Options:

  • --project-name TEXT: Name of the project (default: current directory name)
  • --frappe-version TEXT: Frappe version to install (default: v15.78.1)
  • --python-path TEXT: Path to Python executable (default: python3)
  • --force: Force setup even if virtual environment exists

Example:

ws-frappe-cli setup --project-name myproject --frappe-version v15.78.1

ws-frappe-cli create-site

Create a new Frappe site.

Options:

  • --site-name TEXT: Name of the site to create
  • --admin-password TEXT: Administrator password
  • --db-name TEXT: Database name
  • --db-port TEXT: Database port (default: 3306)
  • --db-root-username TEXT: Database root username (default: root)
  • --db-root-password TEXT: Database root password
  • --set-default: Set this site as the default site
  • --install-apps: Install apps after site creation
  • --apps TEXT: Specific apps to install (can be used multiple times)
  • --no-interactive: Skip interactive prompts

Example:

ws-frappe-cli create-site \\
  --site-name mysite.localhost \\
  --admin-password mypassword \\
  --set-default \\
  --install-apps \\
  --apps erpnext

ws-frappe-cli fetch-app

Fetch and install Frappe apps.

Options:

  • --app-name TEXT: Name of the app to install
  • --github-url TEXT: GitHub URL of the app
  • --branch TEXT: Branch to install (default: develop)
  • --site TEXT: Site to install the app on
  • --list-predefined: List predefined apps available for installation
  • --no-install: Only fetch the app, do not install on any site
  • --force: Reinstall if app already exists

Examples:

# List predefined apps
ws-frappe-cli fetch-app --list-predefined

# Install ERPNext
ws-frappe-cli fetch-app --app-name erpnext

# Install custom app
ws-frappe-cli fetch-app \\
  --app-name custom-app \\
  --github-url https://github.com/user/custom-app \\
  --branch main \\
  --site mysite.localhost

Predefined Apps

The CLI comes with several predefined apps that can be installed easily:

  • ERPNext: Enterprise Resource Planning
  • HRMS: Human Resource Management System
  • Payments: Payment Gateway Integration
  • E-commerce Integrations: E-commerce Platform Integrations

Development Workflow

A typical development workflow with WS Frappe CLI:

  1. Initialize Environment:

    mkdir my-frappe-project
    cd my-frappe-project
    ws-frappe-cli setup
    
  2. Create Development Site:

    source env/bin/activate
    ws-frappe-cli create-site --site-name dev.localhost --set-default
    
  3. Install Required Apps:

    ws-frappe-cli fetch-app --app-name erpnext
    ws-frappe-cli fetch-app --app-name hrms
    
  4. Start Development Server:

    bench start
    

Configuration

Environment Variables

  • FRAPPE_CLI_DEFAULT_BRANCH: Default branch for Frappe (default: v15.78.1)
  • FRAPPE_CLI_DEFAULT_PYTHON: Default Python executable (default: python3)

Config File

You can create a .frappe-cli.yaml file in your project root:

default_frappe_version: "v15.78.1"
default_python: "python3"
default_apps:
  - erpnext
  - hrms

Requirements

  • Python 3.8+
  • Git
  • MariaDB/MySQL
  • Redis
  • Node.js (for building assets)

Troubleshooting

Common Issues

  1. Permission Errors: Ensure you have proper permissions for the directory
  2. Database Connection: Verify MariaDB/MySQL is running and accessible
  3. Python Version: Ensure you're using Python 3.8 or higher

Getting Help

  • Check the documentation
  • Report issues on GitHub
  • Use ws-frappe-cli --help for command-specific help

Contributing

Contributions are welcome! Please read our Contributing Guide for details.

Development Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/ws-frappe-cli.git
    cd ws-frappe-cli
    
  2. Install in development mode:

    pip install -e ".[dev]"
    
  3. Run tests:

    pytest
    
  4. Run linting:

    black src tests
    isort src tests
    flake8 src tests
    

License

This project is licensed under the MIT License - see the LICENSE file for details.

Changelog

See CHANGELOG.md for a list of changes and releases.

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ws_frappe_cli-0.1.0.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ws_frappe_cli-0.1.0-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file ws_frappe_cli-0.1.0.tar.gz.

File metadata

  • Download URL: ws_frappe_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ws_frappe_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8aa183487d2c1a667aedf184f129278e2232b638f1f0b85cdf158e5b7bbf610e
MD5 957e1889dd4badd4e647ac656b388898
BLAKE2b-256 d51ecc7311c05a84394b997bfa97faa2d701a1dfeb240f82419766e2a575145b

See more details on using hashes here.

File details

Details for the file ws_frappe_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ws_frappe_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ws_frappe_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16cadbe5ec95dfeddc3137c31d19300b1479d6bb7e3677c880d8f57143b5953c
MD5 61f1a6bdee99588689fcdee782e460bb
BLAKE2b-256 5be4f62d8841f4b3d63c23c122f4d446184f2b634a0b093e10cdd48aa578f8d7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page