快速开始
本指南将帮助您快速部署和运行 IPAM 系统。
环境要求
必需组件
| 组件 | 版本要求 | 说明 |
|---|---|---|
| Go | 1.25.5+ | 后端运行环境 |
| Node.js | 25.2.1+ | 前端构建环境 |
| MariaDB | 10.11.14+ | 数据库(推荐) |
| 或 MySQL | 8.0+ | 数据库 |
| pnpm | 10.25.0+ | 包管理工具 |
可选组件
| 组件 | 说明 |
|---|---|
| Git | 版本控制 |
| Make | 构建工具 |
| Docker | 容器化部署 |
安装步骤
1. 克隆项目
bash
git clone https://gitee.com/liumou_site/ipam-go.git
cd ipam-go2. 配置数据库
创建数据库
sql
CREATE DATABASE ipam CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ipam_user'@'%' IDENTIFIED BY 'your_strong_password';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, INDEX ON ipam.* TO 'ipam_user'@'%';
FLUSH PRIVILEGES;数据库配置建议
ini
# my.cnf 或 my.ini
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=200
innodb_buffer_pool_size=256M3. 配置后端
复制配置文件
bash
cp config.example.toml config.toml编辑配置
toml
[database]
type = "mysql"
host = "localhost"
port = 3306
user = "ipam_user"
password = "your_strong_password"
dbname = "ipam"
charset = "utf8mb4"
[server]
port = 8080
mode = "debug" # debug 或 release
[jwt]
secret = "your-jwt-secret-key-change-this"
expire_hours = 24
[monitoring]
enabled = true
interval = 300
max_concurrent = 1004. 启动后端
bash
# 安装依赖
go mod tidy
# 运行
go run main.go后端服务将在 http://localhost:8080 启动。
5. 配置并启动前端
bash
cd frontend
# 安装依赖
pnpm install
# 开发模式启动
pnpm dev前端服务将在 http://localhost:3000 启动。
6. 访问系统
打开浏览器访问:http://localhost:3000
默认账户
系统首次启动时自动创建以下账户:
| 角色 | 用户名 | 密码 | 权限 |
|---|---|---|---|
| 管理员 | admin | admin123 | 完整系统管理权限 |
| 操作员 | operator | operator123 | IP管理权限 |
| 只读用户 | readonly | readonly123 | 仅查看权限 |
⚠️ 安全提示:首次登录后请立即修改默认密码!
生产部署
构建前端
bash
cd frontend
# 安装依赖
pnpm install
# 生产构建
pnpm build构建产物将生成在 frontend/dist 目录。
构建后端
bash
# Linux
GOOS=linux GOARCH=amd64 go build -o ipam-server main.go
# Windows
GOOS=windows GOARCH=amd64 go build -o ipam-server.exe main.go
# macOS
GOOS=darwin GOARCH=amd64 go build -o ipam-server main.go部署结构
ipam/
├── ipam-server # 后端可执行文件
├── config.toml # 配置文件
├── frontend/
│ └── dist/ # 前端静态文件
└── logs/ # 日志目录使用 systemd 管理服务
创建 /etc/systemd/system/ipam.service:
ini
[Unit]
Description=IPAM Server
After=network.target
[Service]
Type=simple
User=ipam
WorkingDirectory=/opt/ipam
ExecStart=/opt/ipam/ipam-server
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target启动服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable ipam
sudo systemctl start ipam使用 Nginx 反向代理
nginx
server {
listen 80;
server_name ipam.example.com;
location / {
root /opt/ipam/frontend/dist;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}Docker 部署
使用 Docker Compose
创建 docker-compose.yml:
yaml
version: '3.8'
services:
db:
image: mariadb:10.11
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: ipam
MYSQL_USER: ipam_user
MYSQL_PASSWORD: ipam_password
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
app:
build: .
ports:
- "8080:8080"
volumes:
- ./config.toml:/app/config.toml
- ./logs:/app/logs
depends_on:
- db
volumes:
db_data:启动:
bash
docker-compose up -d常见问题
数据库连接失败
问题:启动时提示数据库连接失败
解决:
- 检查数据库服务是否运行
- 验证配置文件中的连接信息
- 确认用户权限正确
- 检查防火墙设置
前端无法访问后端
问题:前端页面报错,无法连接后端
解决:
- 检查后端服务是否正常运行
- 确认前端配置的后端地址正确
- 检查跨域配置
- 查看浏览器控制台错误信息
监控功能不工作
问题:IP 在线状态不更新
解决:
- 检查配置中 monitoring.enabled 是否为 true
- 确认运行环境有 ping 权限
- 检查防火墙是否允许 ICMP
- 查看日志中的错误信息
导入导出失败
问题:Excel 导入导出功能异常
解决:
- 确认 Excel 格式为 .xlsx
- 检查 Sheet 名称是否正确
- 验证数据格式是否符合要求
- 查看详细的错误提示