Some checks failed
Server (Postgres) / Build & reinstall (setup) (push) Has been cancelled
Server (Postgres) / Python Unit Tests (1) (push) Has been cancelled
Server (Postgres) / Python Unit Tests (2) (push) Has been cancelled
Server (Postgres) / Python Unit Tests (3) (push) Has been cancelled
Server (Postgres) / Python Unit Tests (4) (push) Has been cancelled
Server (Mariadb) / Build & reinstall (setup) (push) Has been cancelled
Server (Mariadb) / Python Unit Tests (1) (push) Has been cancelled
Server (Mariadb) / Python Unit Tests (2) (push) Has been cancelled
Server (Mariadb) / Python Unit Tests (3) (push) Has been cancelled
Server (Mariadb) / Python Unit Tests (4) (push) Has been cancelled
Server (Mariadb) / Coverage Wrap Up (push) Has been cancelled
Lock threads / lock (push) Has been cancelled
Regenerate POT file (translatable strings) / Regenerate POT file (develop) (push) Has been cancelled
Regenerate POT file (translatable strings) / Regenerate POT file (version-16-hotfix) (push) Has been cancelled
Sync translations to hotfix branches / Trigger sync → version-16-hotfix (push) Has been cancelled
Create weekly release pull requests / Release (15) (push) Has been cancelled
Create weekly release pull requests / Release (16) (push) Has been cancelled
3.3 KiB
3.3 KiB
2026-07-21 ERPNext 本地部署
任务
用户要求把 /Users/boyang/Desktop/erpnext-develop 在本地部署为开发环境(ERPNext + banking 前端)。
项目架构发现
erpnext/是 Frappe 17 框架的 ERP 应用(Python,要求>=3.14)banking/是 ERPNext 内的 React 19 + Vite SPA 子应用,挂在/banking路由- 开发时
yarn dev起 vite(端口 8080),通过proxyOptions.ts把/app|api|assets|files|private转发到 Frappe webserver proxyOptions.ts依赖相对路径../../../sites/common_site_config.json,意味着 banking 必须在bench/apps/erpnext/banking/下- 构建产物输出到
../erpnext/public/banking/,index.html 复制到../erpnext/www/banking.html
- 开发时
pyproject.toml里[tool.bench.assets]配置build_dir="./banking"out_dir="../erpnext/public/banking"
已完成步骤
- Homebrew:之前装到一半失败(git remote 指向 GitHub 直连,clone 超时)。改用中科大镜像
https://mirrors.ustc.edu.cn/brew.git拉取并 reset --hard,brew 命令恢复可用。 - brew 镜像配置:写入
~/.zshrc,HOMEBREW_API_DOMAIN/BOTTLE_DOMAIN 用清华源,BREW_GIT_REMOTE/CORE_GIT_REMOTE 用中科大源。 - brew install:mariadb 12.3.2、redis 8.8.0、python@3.14(3.14.6)、yarn 1.22.22。
wkhtmltopdf在新版 Homebrew 没有 formula,需后续用--cask单独装(非必须,只影响 PDF 报表)。 - MariaDB 端口冲突:用户机器上已有两个 MySQL 8.0.28 在跑(
ks-inventory-system-master占 3306,caigouxitong/ks-inventory-system占 3307)。不能 kill 它们。 - MariaDB 配置:写
/opt/homebrew/etc/my.cnf.d/custom.cnf,用 3308 端口 + socket/tmp/mysql_bench.sock,bind 127.0.0.1,utf8mb4 字符集,innodb_file_per_table + DYNAMIC row format。 - MariaDB root 密码:用
skip-grant-tables+skip-networking临时绕过认证(sudo 需密码无法用),设 root 密码为root,认证插件改为mysql_native_password,然后移除 skip 配置重启。 - brew services:mariadb + redis 都已
brew services start(开机自启)。 - bench CLI:用 Python 3.14 创建独立 venv
/Users/boyang/.frappe-bench-venv,pip install frappe-bench 5.31.0(清华 PyPI 镜像),符号链接到/opt/homebrew/bin/bench。
进行中
- bench init:
bench init --frappe-branch version-17 --python /opt/homebrew/bin/python3.14 frappe-bench,在~/frappe-bench创建。GitHub 直连慢(国内镜像 ghproxy/fastgit/kgithub 全挂),靠--depth 1浅克隆 + 清华 pip + 淘宝 npm 加速。
待办
bench get-app /Users/boyang/Desktop/erpnext-develop链接本地 erpnext 仓库bench build编译 banking 前端bench new-site erpnext.localhost(要指定 db_port=3308, db_root_password=root)bench --site erpnext.localhost install-app erpnextbench start启动,访问 http://erpnext.localhost:8000
关键参数备忘
- MariaDB:
127.0.0.1:3308,root/root,socket/tmp/mysql_bench.sock - bench venv:
/Users/boyang/.frappe-bench-venv - bench 工作目录:
/Users/boyang/frappe-bench - erpnext 源码:
/Users/boyang/Desktop/erpnext-develop(含 erpnext/ 和 banking/) - Python:
/opt/homebrew/bin/python3.14(3.14.6)