数字化浪潮早已席卷每一个角落,进销存管理早已不是大型企业的专属奢侈品,而是中小商家赖以生存的效率利器。一套好用的进销存ERP系统,能让库存周转率提升30%,应收账款逾期率降低50%。然而,市面上的商业软件动辄数万元,让小本经营的商家望而却步。开源进销存源码的出现,彻底打破了这道壁垒。本文将以保姆级的手把手教程,带你从零部署一套企业级进销存ERP系统,支持二次开发,商用无忧。无论你是技术小白还是老鸟,跟着走,保证能跑起来!

源码及演示:c.csymzs.top

技术栈选型

工欲善其事,必先利其器。选对技术栈,部署事半功倍。当前最成熟、最稳定的进销存技术栈组合如下:

层级 技术选型 版本要求
后端 Spring Boot 2.7 + MyBatis-Plus JDK 17+、Maven 3.8+
前端 Vue 3 + Vite + Element Plus Node.js 18 LTS
数据库 MySQL 8.0 推荐8.0,社区生态最成熟
缓存 Redis 7.0+ 提升并发性能
部署 Docker + Docker Compose 一键编排,省心省力

硬件建议: 小型团队(≤50并发)2核4G/40G磁盘起步;中型(≤200并发)4核8G/100G起步;更高并发建议分离数据库与应用。操作系统推荐 CentOS 7+/Ubuntu 20.04+ 或 Windows Server 2019+,统一用 Linux 便于自动化与容器化。

八步部署:保姆级手把手教程

环境与依赖准备

登录服务器,执行以下命令,把基础环境一次性拉满:

# 更新系统(CentOS)
sudo yum update -y
# 或 Ubuntu
sudo apt update && sudo apt upgrade -y

# 安装基础工具
sudo yum install -y git wget curl vim net-tools
# Ubuntu
sudo apt install -y git wget curl vim net-tools

# 安装 Docker(强烈推荐)
curl -fsSL https://get.docker.com | sh
sudo systemctl start docker
sudo systemctl enable docker

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

关键参数优化(CentOS内核调优,提升并发30%+)

echo "net.core.somaxconn=65535" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog=65535" >> /etc/sysctl.conf
sysctl -p

获取与核验源码

从 GitHub / Gitee 官方仓库克隆项目,务必核对开源协议(MIT / Apache-2.0 确保商用合规),切勿使用 master 分支,一定要切到稳定 release 版本:

git clone https://gitee.com/xxx/erp-system.git
cd erp-system
git checkout release/v1.2.0

典型目录结构如下:

erp-system/
├── backend/          # 后端服务(Spring Boot Jar)
├── frontend/         # 前端工程(Vue3 + Vite)
├── sql/              # 建库建表脚本、演示数据
├── docker-compose.yml # 一键部署配置
├── docs/             # 部署手册、ER图、接口文档
└── scripts/          # 初始化脚本、Dockerfile

sha256sum 校验下载包完整性,防止源码被篡改。

数据库安装与初始化⭐最关键

这一步是整个部署的命门,务必仔细操作!

方式一:Docker 一键拉取 MySQL 8.0(推荐)

docker run -d \
  --name erp-mysql \
  -e MYSQL_ROOT_PASSWORD=SecurePass123! \
  -e MYSQL_DATABASE=erp_production \
  -e MYSQL_CHARSET=utf8mb4 \
  -e MYSQL_COLLATION=utf8mb4_general_ci \
  -p 3306:3306 \
  mysql:8.0

方式二:系统原生安装

sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld

创建业务库与最小权限账号(安全最佳实践)

-- 登录MySQL
mysql -u root -p

-- 创建数据库(字符集统一!)
CREATE DATABASE erp_production CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

-- 创建专用账号(按库授权,禁止root远程登录)
CREATE USER 'erp_user'@'%' IDENTIFIED BY 'YourStrongPassword@2026';
GRANT ALL PRIVILEGES ON erp_production.* TO 'erp_user'@'%';
FLUSH PRIVILEGES;

-- 导入结构与字典数据
USE erp_production;
SOURCE /path/to/erp-system/sql/schema.sql;
SOURCE /path/to/erp-system/sql/dict.sql;

-- 可选:导入演示数据(生产环境慎用!)
-- SOURCE /path/to/erp-system/sql/demo_data.sql;

性能调优参数(my.cnf 添加)

[mysqld]
innodb_buffer_pool_size = 5600M      # 物理内存的70%
innodb_log_file_size = 512M
slow_query_log = 1
long_query_time = 2
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

后端编译与构建

Java(Spring Boot)项目

cd backend
# 确保 JDK 17+、Maven 3.8+
mvn -U clean package -DskipTests
# 产物:target/app.jar

Python(Django)项目

cd backend
pip install -r requirements.txt
python manage.py migrate --force
python manage.py collectstatic

PHP(Laravel/ThinkPHP)项目

cd backend
composer install --no-dev -o
cp .env.example .env
# 编辑 .env 配置数据库连接
php artisan migrate --force

前端打包与静态资源部署

cd frontend
# 安装依赖(推荐 pnpm,更快更稳)
pnpm i --frozen-lockfile

# 生产构建
npm run build
# 产物:dist/ 目录

Nginx 静态托管配置要点:

server {
    listen 80;
    server_name erp.yourdomain.com;
    root /var/www/erp/dist;
    index index.html;
    
    location / {
        try_files $uri $uri/ /index.html;  # SPA路由回退
    }
    
    location /api/ {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Docker Compose 一键编排⭐核心部署

创建 docker-compose.yml

version: '3.8'
services:
  erp-db:
    image: mysql:8.0
    container_name: erp-mysql
    environment:
      MYSQL_ROOT_PASSWORD: SecurePass123!
      MYSQL_DATABASE: erp_production
      MYSQL_CHARSET: utf8mb4
    volumes:
      - mysql_data:/var/lib/mysql
      - ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql
    ports:
      - "3306:3306"
    restart: always

  erp-redis:
    image: redis:7.0
    container_name: erp-redis
    ports:
      - "6379:6379"
    restart: always

  erp-backend:
    build: ./backend
    container_name: erp-backend
    depends_on:
      - erp-db
      - erp-redis
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://erp-db:3306/erp_production
      SPRING_REDIS_HOST: erp-redis
    ports:
      - "8080:8080"
    restart: always

  erp-frontend:
    image: nginx:alpine
    container_name: erp-frontend
    volumes:
      - ./frontend/dist:/usr/share/nginx/html
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "80:80"
    depends_on:
      - erp-backend
    restart: always

volumes:
  mysql_data:

一键启动:

docker-compose up -d

在这里插入图片描述

反向代理与 HTTPS

生产环境必须开启 HTTPS!使用 Let’s Encrypt + Certbot 自动续期:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d erp.yourdomain.com

配置 HSTS 与现代 TLS,严格 HTTPS,把所有 HTTP 请求 301 重定向到 HTTPS。

系统初始化与数据导入

浏览器访问 http://服务器IP,进入安装向导:

  1. 创建管理员账号:设置用户名、密码、企业信息
  2. 权限角色划分:管理员、仓库员、财务人员、销售员——各司其职
  3. 基础数据配置:导入商品分类、计量单位、税率、仓库信息、供应商与客户档案
  4. 预置核心字典:商品编码规则、库存预警阈值、审批流程配置

完成后,进入主界面测试核心流程:创建采购单 → 入库 → 库存增加 → 创建销售单 → 出库 → 库存减少 → 财务报表自动生成。确保数据流转畅通无阻!

结语

从环境搭建到系统上线,从零部署到二次开发,这套保姆级教程已经把每一个坑都替你踩过了。进销存系统不是什么高深莫测的技术黑箱,它是每一个认真经营的商家都该拥有的效率武器。开源源码最大的魅力在于——你拥有完全的控制权,想怎么改就怎么改,想怎么用就怎么用。2026年了,别再用 Excel 管库存了,动手部署起来,让工作效率高起来!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐