请问需要企业服务吗?我用NAS搭建ERPNext助力你的创业!

2023-05-26 14:19:31 33点赞 93收藏 37评论

怕错过我的精彩分享?那就赶快关注下熊猫吧!

封面封面

前言

该容器其实之前便发现了,但是一直折腾不对,各种报错。近期看到老苏把它折腾好了,于是想着搭建试试。项目为ERPNext,它提供了一套完整的企业解决方案,包括会计、采购、销售、库存、制造、CRM等功能,为中小型企业提供一种简单、易用、灵活的ERP系统,如果你有创业需求,那么在创业初期不愿意花钱买ERP的情况下可以尝试一用。(本次部署使用为群晖6.x系统,推荐至少8G内存

部署过程

这里我们直接用老苏整理好的docker-compose.yml与env.txt文件,实在是该项目要启动的容器太多了,熊猫懒得折腾了。docker-compose.yml文件如下:

version: "3"

services:
backend:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-backend
deploy:
restart_policy:
condition: on-failure
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs

configurator:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-configurator
deploy:
restart_policy:
condition: none
entrypoint:
- bash
- -c
depends_on:
- db
command:
- >
ls -1 apps > sites/apps.txt;
bench set-config -g db_host $$DB_HOST;
bench set-config -gp db_port $$DB_PORT;
bench set-config -g redis_cache "redis://$$REDIS_CACHE";
bench set-config -g redis_queue "redis://$$REDIS_QUEUE";
bench set-config -g redis_socketio "redis://$$REDIS_SOCKETIO";
bench set-config -gp socketio_port $$SOCKETIO_PORT;
environment:
DB_HOST: db
DB_PORT: "3306"
REDIS_CACHE: redis-cache:6379
REDIS_QUEUE: redis-queue:6379
REDIS_SOCKETIO: redis-socketio:6379
SOCKETIO_PORT: "9000"
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs

create-site:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-create-site
depends_on:
- configurator
deploy:
restart_policy:
condition: none
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs
entrypoint:
- bash
- -c
command:
- >
wait-for-it -t 240 db:3306;
wait-for-it -t 120 redis-cache:6379;
wait-for-it -t 120 redis-queue:6379;
wait-for-it -t 120 redis-socketio:6379;
export start=`date +%s`;
until [[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".db_host // empty"` ]] &&
[[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_cache // empty"` ]] &&
[[ -n `grep -hs ^ sites/common_site_config.json | jq -r ".redis_queue // empty"` ]];
do
echo "Waiting for sites/common_site_config.json to be created";
sleep 5;
if (( `date +%s`-start > 120 )); then
echo "could not find sites/common_site_config.json with required keys";
exit 1
fi
done;
echo "sites/common_site_config.json found";
bench new-site frontend --no-mariadb-socket --admin-password=${APP_PASSWORD} --db-root-password=${DB_ROOT_PASSWORD} --install-app erpnext --set-default;

db:
image: mariadb:10.6
container_name: ${APP_NAME}-db
healthcheck:
test: mysqladmin ping -h localhost --password=${DB_PASSWORD}
interval: 1s
retries: 15
deploy:
restart_policy:
condition: on-failure
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
- --skip-innodb-read-only-compressed # Temporary fix for MariaDB 10.6
environment:
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- ./data:/var/lib/mysql
#ports:
# - "${DB_PORT}:3306"

frontend:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-frontend
deploy:
restart_policy:
condition: on-failure
command:
- nginx-entrypoint.sh
environment:
BACKEND: backend:8000
FRAPPE_SITE_NAME_HEADER: frontend
SOCKETIO: websocket:9000
UPSTREAM_REAL_IP_ADDRESS: ${APP_HTTP_IP}
UPSTREAM_REAL_IP_HEADER: X-Forwarded-For
UPSTREAM_REAL_IP_RECURSIVE: "off"
PROXY_READ_TIMOUT: 120
CLIENT_MAX_BODY_SIZE: 50m
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs
ports:
- "${APP_HTTP_PORT}:8080"

queue-default:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-queue-default
deploy:
restart_policy:
condition: on-failure
command:
- bench
- worker
- --queue
- default
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs

queue-long:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-queue-long
deploy:
restart_policy:
condition: on-failure
command:
- bench
- worker
- --queue
- long
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs

queue-short:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-queue-short
deploy:
restart_policy:
condition: on-failure
command:
- bench
- worker
- --queue
- short
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs

redis-queue:
image: redis:6.2-alpine
container_name: ${APP_NAME}-redis-queue
deploy:
restart_policy:
condition: on-failure
volumes:
- ./redis-queue-data:/data

redis-cache:
image: redis:6.2-alpine
container_name: ${APP_NAME}-redis-cache
deploy:
restart_policy:
condition: on-failure
volumes:
- ./redis-cache-data:/data

redis-socketio:
image: redis:6.2-alpine
container_name: ${APP_NAME}-redis-socketio
deploy:
restart_policy:
condition: on-failure
volumes:
- ./redis-socketio-data:/data

scheduler:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-scheduler
deploy:
restart_policy:
condition: on-failure
command:
- bench
- schedule
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs

websocket:
image: frappe/erpnext:${APP_VERSION}
container_name: ${APP_NAME}-websocket
deploy:
restart_policy:
condition: on-failure
command:
- node
- /home/frappe/frappe-bench/apps/frappe/socketio.js
volumes:
- sites:/home/frappe/frappe-bench/sites
- logs:/home/frappe/frappe-bench/logs

volumes:
logs:
sites:

随后便是env.txt文件,里面的内容可以根据自己情况更改。

# ERPNext config
APP_NAME=erp
APP_VERSION=v14.23.0
APP_HTTP_IP=192.168.101.66
APP_HTTP_PORT=6380
APP_PASSWORD=admin

# MariaDB config
DB_HOST=db
DB_PASSWORD=panda
DB_ROOT_PASSWORD=panda
DB_PORT=3336

  • APP_NAME: 主要影响生成的容器名称的前缀

  • APP_VERSION: ERPNext的版本,已测试过v14.22.3 和 v14.23.0;

  • APP_HTTP_IP:主机 IP,要根据你自己的群晖主机IP修改;

  • APP_HTTP_PORT:这是访问ERPNext服务的的本地端口,不冲突就行;

  • APP_PASSWORD:管理员密码,建议登录成功之后再改;

  • DB_HOST:数据库主机,不要改;

  • DB_PASSWORD:数据库密码,建议改;

  • DB_ROOT_PASSWORD:数据库管理员密码,建议改;

  • DB_PORT:数据库本地端口,不冲突就行。 在准备好这一切之后我们打开群晖的ssh功能,随后用ssh工具连接到群晖,依次执行以下命令:

# 新建文件夹 erpnext 和 子目录
mkdir -p /volume1/docker/erpnext/{data,redis-cache-data,redis-queue-data,redis-socketio-data}

# 进入 erpnext 目录
cd /volume1/docker/erpnext

# 将 docker-compose.yml 和 env.txt 两个文件放入当前目录

# 一键运行
docker-compose --env-file env.txt up -d

这一步需要等待一段时间,因为需要拉取大概十来个容器,所以请耐心等待,如果出现无法拉取或者拉取超时,可重新执行命令。

体验

如果启动正常那么你能看到你的容器中多了很多容器,前缀都是ERP。

容器容器

首次启动会等待异常久的时间,我们可以在erp-create-site容器中查看进度,等待该容器自动停止运行后便启动成功了。

进度进度

我们输入http://群晖IP:6380来访问ERPNext,看看是否可以访问。

登录界面登录界面

OK了!成功启动容器,我们先登录,账户默认为Administrator,密码则是你自己设置的APP_PASSWORD的值,首次登录还会进行一些配置。(语言选择可以选择中文,如果不能选择,直接输入简体中文也行)

公司设置公司设置

设置完成后会自动刷新,便可以看到主界面了,ERP系统的内容连接的都懂,熊猫这里就不一一介绍了。感兴趣的可以自行研究。

主界面主界面

工具工具

设置设置

总结

以上便是本期的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

最后给大家推荐群晖的923+,熊猫最近容器大部分都是使用923+部署。感兴趣的小伙伴可以点点链接去了解哦!!!(无任何合作)

群晖(Synology)DS923+4盘位万兆扩展NAS网络存储服务器文件共享自动备份私有云团队云盘4900元京东去购买

请问需要企业服务吗?我用NAS搭建ERPNext助力你的创业!

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
37评论

  • 精彩
  • 最新
  • 代码太长,给有需要到人吧。 [张小草_托腮]

    校验提示文案

    提交
    哈哈哈哈的确有点长

    校验提示文案

    提交
    收起所有回复
  • ERP里模块挺多的

    校验提示文案

    提交
    是的

    校验提示文案

    提交
    收起所有回复
  • 专业NAS博主啊,先标记下来,慢慢学

    校验提示文案

    提交
    可以的 [赞一个]

    校验提示文案

    提交
    收起所有回复
  • 你入了923? [观察]

    校验提示文案

    提交
    老设备

    校验提示文案

    提交
    好奇加万兆网卡了吗

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 魔兽呢?说好的周末

    校验提示文案

    提交
    今天周六啊 [皱眉]

    校验提示文案

    提交
    收起所有回复
  • 大佬,好几个都启动报错是怎么回事?ERROR: for erp-websocket UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)

    校验提示文案

    提交
    看每个容器情况

    校验提示文案

    提交
    UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60) 都是宝这个超时,是端口被占用吗,也不对,这些容器我没安装过

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我都看蒙了 [尴尬]

    校验提示文案

    提交
  • 又来学习了

    校验提示文案

    提交
  • 有那么一瞬间,我感觉自己是个傻子……

    校验提示文案

    提交
  • 为技术点赞

    校验提示文案

    提交
  • 这个就叫做专业

    校验提示文案

    提交
  • 收藏一下,喜欢大佬科普

    校验提示文案

    提交
  • 学习了,好高端

    校验提示文案

    提交
  • 收藏,学习~

    校验提示文案

    提交
  • 来学习了

    校验提示文案

    提交
  • 又学到新的知识了

    校验提示文案

    提交
  • 大佬太专业了

    校验提示文案

    提交
  • 写的太好了!三连支持

    校验提示文案

    提交
  • 还是有门槛的

    校验提示文案

    提交
  • 厉害了,学习一下

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
93
扫一下,分享更方便,购买更轻松