ERPnext是GitHub上开源的最热门的ERP项目之一,它的开源协议是GPL-3.0,因此自由度高,无需担心版权问题。ERPnext项目设计简单且使用PYTHON语言实现,因此部署、修改难度小,号称全球最敏捷的ERP系统。ERPnext简单但功能完整,旨在能使企业使用一个系统就能处理公司日常工作中的所有问题。
因此,对于 不想花大价钱购买一套后期服务费更昂贵的ERP系统的中小企业、初创企业;想拥有一套简单但功能完整,易于新增功能的免费的ERP系统的中小企业、初创企业;想拥有一套安装、部署和运维人力成本低的ERP系统的中小企业、初创企业;ERPnext也许是他们的最好的选择。
ERPnext是基于低代码平台frappe开发的软件。frappe是ERPnext的基座,ERPnext是frappe框架上运行的一个app。
本系列文章将包含 1. 介绍ERPnext的安装部署;2. 关键模块的源码走读分析;3. 新增功能、修改功能的方法;4. 汉化实现。旨在通过本系列文章,帮助中小企业、初创企业从0开始构建自主可控的,可稳定应用于生产环境的ERP系统。
ERPnext是一个印度团队开源的软件,它在github上的安装教程bug非常多,流程也乱七八糟的。按照官方文档,绝大多数人不能成功安装,他们在安装过程中总是会遇到各种各样的问题。ERPnext是我见过最不真诚的开源,单单找安装文档链接你就可能头晕。
github项目代码地址:https://github.com/frappe/erpnext
安装方法有三:
吐槽:一个ERPnext项目,三种安装方式,在不同的项目下。完成看不出他们这个写作文档的逻辑。以上链接大家看看就好。
以上3中安装方法我都多次测试过,总有各种各样的问题。最好我选择了使用方法1,也就是容器化部署方法。
使用的安装方法在这里。单服务器部署方法:
https://github.com/frappe/frappe_docker/blob/main/docs/single-server-example.md
本次我使用的环境为:阿里云ecs,系统CentOS Linux release 7.8.2003。
curl -fsSL https://get.docker.com | bash
systemctl start docker
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
git clone https://github.com/frappe/frappe_docker
cd frappe_docker
mkdir ~/gitops
5.1 创建环境变量配置文件
echo 'TRAEFIK_DOMAIN=traefik.example.com' > ~/gitops/traefik.env
echo 'EMAIL=admin@example.com' >> ~/gitops/traefik.env
echo 'HASHED_PASSWORD='$(openssl passwd -apr1 changeit | sed 's/\$/\\\$/g') >> ~/gitops/traefik.env
5.2 部署Traefik容器
docker compose --project-name traefik \
--env-file ~/gitops/traefik.env \
-f docs/compose/compose.traefik.yaml \
-f docs/compose/compose.traefik-ssl.yaml up -d
6.1 创建Mariadb相关的配置文件
echo "DB_PASSWORD=changeit" > ~/gitops/mariadb.env
密码想修改就替换changeit
6.2 部署Mariadb容器
docker compose --project-name mariadb --env-file ~/gitops/mariadb.env -f docs/compose/compose.mariadb-shared.yaml up -d
7.1 创建配置文件erpnext-one.env
cp example.env ~/gitops/erpnext-one.env
sed -i 's/DB_PASSWORD=123/DB_PASSWORD=changeit/g' ~/gitops/erpnext-one.env
sed -i 's/DB_HOST=/DB_HOST=mariadb-database/g' ~/gitops/erpnext-one.env
sed -i 's/DB_PORT=/DB_PORT=3306/g' ~/gitops/erpnext-one.env
echo 'ROUTER=erpnext-one' >> ~/gitops/erpnext-one.env
echo "SITES=\`one.example.com\`,\`two.example.com\`" >> ~/gitops/erpnext-one.env
echo "BENCH_NETWORK=erpnext-one" >> ~/gitops/erpnext-one.env
7.2 创建配置文件erpnext-one.yaml
docker compose --project-name erpnext-one \
--env-file ~/gitops/erpnext-one.env \
-f compose.yaml \
-f overrides/compose.erpnext.yaml \
-f overrides/compose.redis.yaml \
-f docs/compose/compose.multi-bench.yaml \
-f docs/compose/compose.multi-bench-ssl.yaml config > ~/gitops/erpnext-one.yaml
7.3 部署erpnext-one容器
docker compose --project-name erpnext-one -f ~/gitops/erpnext-one.yaml up -d
这部耗时有点久,需要耐心等待
7.4 部署站点
docker compose --project-name erpnext-one exec backend \
bench new-site one.example.com --mariadb-root-password changeit --install-app erpnext --admin-password changeit
到这里就部署完成了。部署完成后直接使用本机ip登录是会找不到页面的。且http协议登录也是会报错找不到页面的。需要使用https协议+域名登录。也就是在浏览器输入https://one.example.com 登录。为了让one.example.com解析到部署机器的ip地址呢,需要在host文件中配置ip 于域名one.example.com的映射。
接下来会继续进行ERPnext的部署分享。计划把我部署好的环境的docker容器打包成镜像,以后在其它的地方部署指定docker compose就可以部署成功。
拒绝转载,谢谢