Month: June 2025

  • ERPNEXT deployment, 25-001, basic system setup

    OS, UBUNTU 24.04
    ERPNEXT, version 15

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y python3 python3-pip python3-venv python3-dev
    sudo apt install -y redis-server git
    sudo apt install -y supervisor

    # install Node.js, official NodeSource

    # Remove older versions first
    sudo apt remove nodejs npm -y
    
    # Add NodeSource for Node.js 18.x
    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    
    # Install Node.js and npm
    sudo apt install -y nodejs
    

    # versions check

    node -v
    npm -v
    yarn -v
    redis-server -v

    step 03, crete user

    # 設定frappe系統使用者
    sudo useradd -m -d /dir/for/frappe -s /bin/bash frappe
    
    # 設定frappe密碼
    sudo passwd frappe
    
    # 增加frappe群組
    sudo groupadd groupname
    
    # 將使用者frappe, 加入群組frappe
    sudo usermod -aG frappe frappe
    
    # 將使用者frappe, 加入群組frappe
    sudo usermod -aG sudo frappe

    step 04, virtual env setup, bench install & initiate

    # move to frappe dir
    cd /dir/to/frappe
    
    # Switch to user
    su frappe
    
    # deploy python virtualenv & activate
    python3 -m venv virtualENV
    source /path/to/virtualenv
    
    # Install bench & check bench version
    pip3 install frappe-bench
    bench --version
    bench init --frappe-branch version-15 frappeBENCH

    # setup bench Instance for

    # move to frappe bench directory
    mv frappeBENCH
    
    
    # setup supervisor
    確認在/etc/supervisor/conf.d內是否有supervisor.conf. 如果沒有, 執行下列指令. 
    bench setup supervisor
    
    ln -s /path/to/frappeBench/config/supervisor.conf /etc/supervisor/conf.d
    
    sudo supervisorctl reload
    
    
    # 下載app
    bench get-app --branch version-15 erpnext
    bench get-app --branch version-15 payments
    bench get-app --branch version-15 hrms
    
    
    # 利用下列bash script 建立個別erpnext個別網站
    
    #!/usr/bin/env bash
    
    siteNAME=erpnext.gerardchen.com
    
      bench new-site $siteNAME \
      --db-host 127.0.0.1 \
      --db-port 4306 \
      --mariadb-root-username root \
      --mariadb-root-password password.for.root \
      --admin-password password for admin \
      --mariadb-user-host-login-scope='%' \
      --verbose
    
    
    # 啟動bench
    bench start
    
    # Install ERPNext app
    bench --site siteNAME install-app erpnext
    bench --site siteNAME install-app hrms
    bench --site siteNAME install-app payments

    # setup production server

    # enable scheduler service
    bench --site siteNAME enable-scheduler
    
    # disable maintenance mode
    bench --site siteNAME set-maintenance-mode off
    
    # setup production config
    sudo bench setup production [frappe-user]
    因為以virtualenv建立python3環境, 且沒有設定PATH
    退出使用者frappe, 以superuser身分設定
    sudo /path/to/virtualENV/bin/bench setup production [frappe-user]
    
    bench setup socketio

    # setup port

    bench set-nginx-port siteName port
    

    bench init frappe --frappe-branch version-15
    bench init site01-bench --frappe-branch version-14

    Reference