目 录CONTENT

文章目录

在飞牛云或者VPS用Docker搭建一个开源的ERP系统-ERPnext

yyzq
2025-06-04 / 0 评论 / 2 点赞 / 149 阅读 / 2,195 字

前言

在当今数字化时代,越来越多的中小企业开始意识到企业资源管理系统(ERP)对于提升运营效率、规范管理流程的重要性。相比昂贵的商业 ERP 软件,开源 ERP 系统如 ERPNext 以其灵活性、可定制性和零授权费用,成为众多企业数字化转型的优选方案。
image
本教程将以 飞牛云 NAS 或 VPS 为基础平台,结合 Docker 技术,手把手带你搭建一套功能完整的 ERPNext 系统。无论你是初次接触 ERP 系统,还是希望构建一套属于自己的企业级管理平台,本文都将提供简洁实用的搭建方法,助你快速上手,打造专属的业务管理系统。

界面

以下是与该项目相关的一些图片:
基本界面

功能展示

中文页面
image-1749017250988

核心功能 🌟

100% 开源 ERP 系统帮助您运营业务。

主要特点

  • 会计
    您需要在一个地方管理现金流的所有工具,从记录交易到汇总和分析财务报告。

  • 订单管理
    跟踪库存水平、补充库存,以及管理销售订单、客户、供应商、发货、交付物和订单履行。

  • 制造业
    简化生产周期,帮助跟踪材料消耗,展示产能规划,处理分包等等!

  • 资产管理
    从采购到报废,从 IT 基础设施到设备,覆盖您组织的每个分支机构,所有信息都集中在一个集中式系统中。

  • 项目管理
    按时、按预算、按效益交付内部和外部项目。按项目跟踪任务、工时表和问题。

demo

点我体验

官网

https://frappe.io/erpnext

部署方法

由于官方版本为英文版,我们选用网友 lvxj11 打包的 All in one docker镜像版本进行部署。

📦 本镜像与官方镜像的区别

  • All in one:已内置 MySQL 数据库和 Redis,一个镜像即可满足 ERPNext 的运行需求。
  • 预装站点:镜像中已创建站点并安装 ERPNext 应用,部署后可直接访问,无需额外初始化或拉取应用。
  • 中文优化:集成了中文汉化包及开箱即用插件,优化了界面翻译问题
  • 国内加速源:已将 aptpipnpmyarn 等软件包管理工具的源替换为国内镜像源,提高安装速度。
  • 开箱即用,开箱即用,开箱即用!

🔗 镜像地址

https://hub.docker.com/r/lvxj11/erpnext

其它说明

  • 默认登录账号:administrator

  • 默认登录密码:admin

  • 已内置 MySQL 数据库,数据库 root 密码为:Pass1234

    如需修改以上参数,请自行手动修改。

  • 所有 ERPNext 文件及中文本地化插件已预先拉取并安装,运行容器后无需任何额外设置,可直接访问系统。

  • ⚠️ 使用建议

    • 推荐用于测试、演示、或临时部署
    • 如用于生产环境,请自行充分测试后部署
  • 构建文件地址:https://github.com/lvxj11/docker/tree/master/erpnext15


📁 数据说明(持久化存储)

  • /var/lib/mysql:容器内 MySQL 数据库的数据存储目录
  • /home/frappe/frappe-bench/sites:Frappe 的站点数据目录

这两个目录建议挂载到主机数据卷,以实现数据持久化。


🔄 升级建议

完成数据持久化配置后,如需升级:

  1. 删除原有容器及镜像
  2. 重新拉取新镜像并启动

理论上不需要手动恢复数据,原有数据会保留在数据卷中。

使用Docker安装

本教程就是使用docker-compose的方式安装部署

准备条件

1)一台服务器或者NAS
我们使用飞牛云NAS和VPS来演示
需要vps的可以看以下信息
莱卡云官网
2)本项目使用到的github
https://github.com/frappe/erpnext?tab=readme-ov-file
image-1749017952119
目前已经25.5k个 stars
更多功能可以访问GitHub
3)域名(可选)
域名可以根据自己的需求绑定

①《飞牛NAS上搭建》

直接在docker新增一个compose项目即可
新建项目:

erpnext

compose配置如下:

services:
  erpnext:  # 定义 ERPNext 服务
    image: lvxj11/erpnext:latest  # 使用镜像 lvxj11/erpnext 的 latest 标签
    container_name: ERPNext  # 设置容器名称为 ERPNext
    ports:
      - "22380:80"  # 映射主机的 22380 端口到容器的 80 端口可以自定义
    volumes:
      - ERPNext_db:/var/lib/mysql  # 将名为 ERPNext_db 的数据卷挂载到容器的 /var/lib/mysql,用于存储数据库数据
      - ERPNext_sites:/home/frappe/frappe-bench/sites  # 将名为 ERPNext_sites 的数据卷挂载到 ERPNext 站点目录
    restart: unless-stopped  # 在容器退出时自动重启,除非手动停止
    tty: true  # 分配伪终端,保持容器运行
    stdin_open: true  # 保持标准输入打开,支持交互式命令

volumes:
  ERPNext_db:  # 定义名为 ERPNext_db 的 Docker 卷
  ERPNext_sites:  # 定义名为 ERPNext_sites 的 Docker 卷

启动即可
image-1749018187481
正常启动
image-1749018207043
资源占用情况如下
image-1749018231107

补充docker可用的镜像仓库

国内如果无法拉取镜像的可以使用
仓库1

https://proxy.1panel.live/

仓库2

https://docker.1panel.top/

仓库3

https://mirror.azure.cn/

仓库4

https://hub.rat.dev/

仓库5

https://docker.1ms.run

仓库6

https://docker.itelyou.cf/

仓库7

https://abc.itelyou.cf/

仓库8

https://docker.ywsj.tk/

②《vps上搭建》

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir erpnext;cd erpnext #创建一个目录,并进入此目录

然后再新建docker-compose.yml

vim docker-compose.yml
services:
  erpnext:  # 定义 ERPNext 服务
    image: lvxj11/erpnext:latest  # 使用镜像 lvxj11/erpnext 的 latest 标签
    container_name: ERPNext  # 设置容器名称为 ERPNext
    ports:
      - "22380:80"  # 映射主机的 22380 端口到容器的 80 端口可以自定义
    volumes:
      - ERPNext_db:/var/lib/mysql  # 将名为 ERPNext_db 的数据卷挂载到容器的 /var/lib/mysql,用于存储数据库数据
      - ERPNext_sites:/home/frappe/frappe-bench/sites  # 将名为 ERPNext_sites 的数据卷挂载到 ERPNext 站点目录
    restart: unless-stopped  # 在容器退出时自动重启,除非手动停止
    tty: true  # 分配伪终端,保持容器运行
    stdin_open: true  # 保持标准输入打开,支持交互式命令

volumes:
  ERPNext_db:  # 定义名为 ERPNext_db 的 Docker 卷
  ERPNext_sites:  # 定义名为 ERPNext_sites 的 Docker 卷

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

 docker-compose ps
NAME      IMAGE                   COMMAND                  SERVICE   CREATED       STATUS       PORTS
ERPNext   lvxj11/erpnext:latest   "/bin/bash -c 'sudo …"   erpnext   4 hours ago   Up 4 hours   3306/tcp, 0.0.0.0:22380->80/tcp, [::]:22380->80/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口(22380)防火墙就可以web端访问了
打开自己VPS的ip加端口在加路径就可进入初始化页面

http://ip:22380/#login

账号:administrator
密码:admin
已包含mysql数据库 ,数据库root密码为“Pass1234”。
以上参数如需修改请自行手动修改。
image-1749018643496
语言初始化
image-1749018676790
配置管理员
image-1749018726245
完成设置
image-1749018772578
大约等待1分钟左右就初始化成功了
image-1749018862832
可以使用ERP系统了

还可以设置网站
image-1749019132091

其他功能自行探索

五、绑定域名

如需绑定域名的自行绑定
绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

2

评论区