进销存系统源码保姆级部署教程(附源码)+可二开:商家必备神器
数字化浪潮早已席卷每一个角落,进销存管理早已不是大型企业的专属奢侈品,而是中小商家赖以生存的效率利器。一套好用的进销存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,进入安装向导:
- 创建管理员账号:设置用户名、密码、企业信息
- 权限角色划分:管理员、仓库员、财务人员、销售员——各司其职
- 基础数据配置:导入商品分类、计量单位、税率、仓库信息、供应商与客户档案
- 预置核心字典:商品编码规则、库存预警阈值、审批流程配置
完成后,进入主界面测试核心流程:创建采购单 → 入库 → 库存增加 → 创建销售单 → 出库 → 库存减少 → 财务报表自动生成。确保数据流转畅通无阻!
结语
从环境搭建到系统上线,从零部署到二次开发,这套保姆级教程已经把每一个坑都替你踩过了。进销存系统不是什么高深莫测的技术黑箱,它是每一个认真经营的商家都该拥有的效率武器。开源源码最大的魅力在于——你拥有完全的控制权,想怎么改就怎么改,想怎么用就怎么用。2026年了,别再用 Excel 管库存了,动手部署起来,让工作效率高起来!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)