## 🏗️ 新增功能 - **shared/**: 完整的基础组件部署方案 - docker-compose.yml: 统一编排所有基础服务 - .env.example: 标准化环境变量配置 - prometheus/prometheus.yml: 监控配置 - bin/up.sh & down.sh: 一键部署脚本 - README.md: 完整的使用文档 ## 🛠️ 核心服务 - **数据库层**: PostgreSQL 16 + MySQL 8 (统一密码: 123456) - **缓存层**: Redis 7 (密码: 123456) - **代码管理**: GitLab CE + Gitea (双代码仓库) - **镜像仓库**: Harbor (Docker Registry) - **监控层**: Prometheus + Grafana + cAdvisor - **网关反代**: Traefik v3.1 ## 🔧 技术优化 - 所有端口统一使用 2xx80 系列,避免端口冲突 - 统一网络架构 (core network),支持多项目接入 - 完善的健康检查和服务依赖配置 - 支持 ARM64 架构 (MySQL 8 兼容性修复) ## 📚 文档更新 - SYSTEM-CONFIG.md: 系统配置文档完善 - harbor/README.md: Harbor 模块使用说明 - docs/: 完整的部署和运维文档 ## 🚀 部署说明 所有服务已成功启动并通过验证: - GitLab: http://localhost:28082 (root/SecurePass2024!) - Gitea: http://localhost:23000 - Harbor: http://localhost:28081 - Grafana: http://localhost:23001 (admin/123456) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
15 KiB
15 KiB
系统配置概览
概述
本文档提供了 macOS 工具集中各组件的简明配置信息,便于 Claude 快速了解系统架构和配置参数,为 CI/CD 自动化部署提供参考。
系统架构
IP: 192.168.1.83
平台: macOS
容器运行时: Docker Desktop / OrbStack (轻量级替代)
组件配置
🐙 Gitea - Git 服务器
基本信息:
- 版本: 1.21
- 类型: 轻量级 Git 服务器
- 端口: 33000 (HTTP), 32222 (SSH)
- 数据库: SQLite3
- 访问地址: http://192.168.1.83:33000
核心配置:
services:
gitea:
image: docker.m.daocloud.io/gitea/gitea:1.21
ports:
- "33000:3000" # HTTP
- "32222:32222" # SSH
environment:
GITEA__server__DOMAIN: 192.168.1.83
GITEA__server__ROOT_URL: http://192.168.1.83:33000/
GITEA__server__SSH_PORT: 32222
GITEA__database__DB_TYPE: sqlite3
GITEA__actions__ENABLED: true # 启用 Actions
备份配置:
- 备份间隔: 6小时
- 保留天数: 30天
- 备份目录: ~/ops/backups/gitea/
- 数据目录: gitea-data (Docker volume)
健康检查:
curl -f http://localhost:3000/api/healthz
🦊 GitLab - 代码托管平台
基本信息:
- 版本: 16.9.1-ce.0
- 类型: 企业级代码托管平台
- 端口: 8890 (HTTP), 8929 (SSH)
- 访问地址: http://192.168.1.83:8890
- 初始密码: admin123
核心配置:
services:
gitlab:
image: gitlab/gitlab-ce:16.9.1-ce.0
ports:
- "8890:80" # HTTP Web UI
- "8929:22" # SSH
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.1.83:8890'
gitlab_rails['gitlab_shell_ssh_port'] = 8929
shm_size: '1g' # 共享内存
GitLab Runner:
- 镜像: gitlab/gitlab-runner:latest
- 执行器: Docker
- 配置目录: ./gitlab-runner-config
备份配置:
- 备份间隔: 6小时
- 保留天数: 30天
- 备份目录: ~/ops/backups/gitlab/
- 数据目录: ~/ops/data/gitlab/
健康检查:
curl -f http://localhost:80/-/health
🏭 Harbor - 容器镜像仓库
基本信息:
- 版本: v2.11.1
- 类型: 企业级容器镜像仓库
- 端口: 8080 (HTTP), 8443 (HTTPS), 8081 (Notary)
- 访问地址: http://192.168.1.83:8080
- 默认管理员: admin / admin
核心服务组件:
services:
proxy: # Nginx 反向代理
image: goharbor/nginx-photon:v2.11.1
ports:
- 8080:8080
- 8081:8081
- 8443:8443
core: # 核心服务
image: goharbor/harbor-core:v2.11.1
registry: # 镜像存储
image: goharbor/registry-photon:v2.11.1
database: # PostgreSQL 数据库
image: goharbor/harbor-db:v2.11.1
redis: # 缓存服务
image: goharbor/redis-photon:v2.11.1
jobservice: # 任务服务
image: goharbor/harbor-jobservice:v2.11.1
portal: # Web 门户
image: goharbor/harbor-portal:v2.11.1
log: # 日志服务
image: goharbor/harbor-log:v2.11.1
备份配置:
- 备份间隔: 12小时
- 保留天数: 30天
- 备份目录: ~/ops/backups/harbor/
- 数据目录: /Users/brunogao/ops/data/harbor/
🐳 OrbStack - Docker 替代方案
基本信息:
- 版本: 最新版 (通过 Homebrew 安装)
- 类型: 容器和 Linux 虚拟机运行时
- 安装方式: Homebrew Cask
- 状态: 替代 Docker Desktop 的轻量级方案
核心特性:
主要功能:
- Docker 容器管理: 完全兼容 Docker API
- Linux 虚拟机: 快速启动轻量级 Linux 环境
- 文件系统挂载: 高性能文件共享
- 网络转发: 自动端口映射和服务发现
- 资源占用: 相比 Docker Desktop 显著降低内存和 CPU 使用
安装配置:
# 通过 Homebrew 安装
brew install --cask orbstack
# 启动 OrbStack 服务
open -a OrbStack
# 检查服务状态
orbctl status
容器管理:
# Docker 命令完全兼容
docker ps
docker images
docker-compose up -d
# OrbStack 特有命令
orbctl list # 列出所有容器和虚拟机
orbctl shell <vm> # 进入虚拟机 shell
orbctl mount <path> # 挂载目录到虚拟机
网络配置:
- Docker 网络: 标准的 bridge, host, none 网络模式
- 端口映射: 自动从容器端口映射到主机
- DNS 解析: 内置 DNS 服务器,支持容器名解析
- 服务发现: 支持 Docker Compose 服务名访问
性能优势:
| 指标 | OrbStack | Docker Desktop |
|---|---|---|
| 内存占用 | 200-500MB | 1-2GB |
| 启动时间 | 2-5秒 | 10-30秒 |
| CPU 使用 | 低 | 中等 |
| 磁盘 I/O | 高效 | 标准虚拟化 |
与现有服务集成:
- Gitea: 可通过 OrbStack 运行,配置相同
- GitLab: 建议使用 Docker Desktop (资源需求高)
- Harbor: 完全兼容,性能更佳
- Ollama: 支持 GPU 直通和容器化部署
🤖 Ollama - AI 模型服务
基本信息:
- 版本: Ollama App (macOS)
- 类型: 本地 AI 模型推理服务
- 端口: 11434 (API)
- 访问地址: http://localhost:11434
- 服务状态: 运行中
核心配置:
# 服务进程
/usr/local/bin/ollama serve
# 模型运行器
/Applications/Ollama.app/Contents/Resources/ollama runner
已安装模型:
| 模型名称 | 参数规模 | 大小 | 类型 |
|---|---|---|---|
| deepseek-r1:70b | 70.6B | 42GB | 推理模型 |
| llama3.3:latest | 70.6B | 42GB | 推理模型 |
| qwen2.5-coder:32b | 32.8B | 19GB | 编程模型 |
| qwen3:32b | 32.8B | 20GB | 推理模型 |
| qwen3:latest | 8.2B | 5.2GB | 推理模型 |
| ljwx-stock:latest | 6.9B | 4.0GB | 股票模型 |
| deepseek-llm:latest | 7B | 4.0GB | 推理模型 |
| llama2:latest | 7B | 3.8GB | 推理模型 |
| ljwx-health:latest | 6.7B | 3.8GB | 健康模型 |
嵌入模型:
| 模型名称 | 参数规模 | 大小 | 用途 |
|---|---|---|---|
| bge-m3:latest | 566.70M | 1.2GB | 文本嵌入 |
| bge-large:latest | 334.09M | 670MB | 文本嵌入 |
| snowflake-arctic-embed2:latest | 566.70M | 1.2GB | 文本嵌入 |
API 端点:
# 获取模型列表
GET http://localhost:11434/api/tags
# 生成对话
POST http://localhost:11434/api/generate
{
"model": "qwen3:latest",
"prompt": "Hello, how are you?"
}
# 嵌入生成
POST http://localhost:11434/api/embeddings
{
"model": "bge-m3:latest",
"prompt": "Your text here"
}
🗄️ 数据库服务
MySQL 数据库:
基本信息:
版本: 8.x
端口: 3306
用户名: root
密码: 123456
数据目录: /var/lib/mysql (容器内)
配置文件: /etc/mysql/my.cnf
PostgreSQL 数据库:
基本信息:
版本: 15.x
端口: 5432
用户名: postgres
密码: 123456
数据目录: /var/lib/postgresql/data (容器内)
配置文件: /etc/postgresql/postgresql.conf
Redis 缓存:
基本信息:
版本: 7.x (Homebrew)
端口: 6379 (默认端口)
密码: 123456
数据目录: /usr/local/var/db/redis (本地)
配置文件: /usr/local/etc/redis.conf
持久化: RDB + AOF
安装方式: Homebrew
数据库连接验证:
# MySQL 连接测试
mysql -h 127.0.0.1 -P 3306 -u root -p123456 -e "SELECT VERSION();"
# PostgreSQL 连接测试
psql -h 127.0.0.1 -p 5432 -U postgres -c "SELECT version();"
# Redis 连接测试
redis-cli -h 127.0.0.1 -p 6379 -a 123456 ping
Docker Compose 配置示例:
version: '3.8'
services:
mysql:
image: mysql:8.0
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: app_db
volumes:
- mysql_data:/var/lib/mysql
restart: unless-stopped
postgres:
image: postgres:15
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: 123456
POSTGRES_DB: app_db
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
redis:
image: redis:7-alpine
ports:
- "6379:6379"
command: redis-server --requirepass 123456
volumes:
- redis_data:/data
restart: unless-stopped
volumes:
mysql_data:
postgres_data:
redis_data:
常用管理命令:
# MySQL 管理
mysql -h 127.0.0.1 -P 3306 -u root -p123456
# 查看数据库
SHOW DATABASES;
# 查看用户
SELECT User, Host FROM mysql.user;
# PostgreSQL 管理
psql -h 127.0.0.1 -p 5432 -U postgres
# 查看数据库
\l
# 查看用户
\du
# Redis 管理
redis-cli -h 127.0.0.1 -p 6379 -a 123456
# 查看信息
INFO server
# 查看所有键
KEYS *
备份策略:
# MySQL 备份
mysqldump -h 127.0.0.1 -P 3306 -u root -p123456 --all-databases > mysql_backup.sql
# PostgreSQL 备份
pg_dump -h 127.0.0.1 -p 5432 -U postgres > postgres_backup.sql
# Redis 备份
redis-cli -h 127.0.0.1 -p 6379 -a 123456 BGSAVE
🍎 Apple 系统信息
硬件配置:
系统信息:
型号: MacBook Pro (14-inch, 2023)
处理器: Apple M3 Pro (12核CPU + 18核GPU)
内存: 18GB 统一内存
存储: 512GB SSD
序列号: [需要系统查询]
macOS 系统:
操作系统:
版本: macOS 15.0.1 Sequoia
内核版本: Darwin 24.6.0
系统架构: arm64 (Apple Silicon)
主机名: MacBook-Pro.local
用户名: brunogao
系统性能监控:
# CPU 和内存使用情况
top -l 1 | head -10
# 磁盘使用情况
df -h
# 系统负载
uptime
# 内存详情
vm_stat
# 温度监控 (需要第三方工具)
sudo powermetrics --samplers cpu_power -i 1 -n 1
开发环境配置:
# Xcode Command Line Tools
xcode-select --version
# Homebrew 路径
which brew
brew --version
# Shell 环境
echo $SHELL
zsh --version
# Git 配置
git --version
git config --list
系统服务状态:
关键服务:
- SSH 服务: 默认启用,端口 22
- 屏幕共享: 可选择性启用
- 文件共享: SMB/AFP 服务
- 时间机器: 自动备份服务
- Siri: 语音助手服务
- SpotLight: 搜索索引服务
网络配置:
网络接口:
以太网: 192.168.1.83 (主要服务接口)
Wi-Fi: [根据连接状态动态分配]
本地回环: 127.0.0.1
DNS 配置:
主DNS: 192.168.1.1 (路由器)
备用DNS: 8.8.8.8, 1.1.1.1
安全和隐私:
安全特性:
- Gatekeeper: 应用程序验证
- XProtect: 恶意软件防护
- FileVault: 磁盘加密 (可选)
- 防火墙: 网络连接控制
- 系统完整性保护 (SIP): 启用
- App Notarization: 应用公证
系统优化建议:
# 清理系统缓存
sudo rm -rf /Library/Caches/*
sudo rm -rf ~/Library/Caches/*
# 重建 Spotlight 索引
sudo mdutil -E /
# 重置 NVRAM/PRAM (启动时)
# 关机,按住 Option+Command+P+R 启动
# 重置 SMC (针对电源相关问题)
# 关机,按住 Control+Shift+Option+电源键 10秒
故障诊断工具:
# 系统信息报告
system_profiler SPSoftwareDataType
# 硬件诊断 (启动时)
# 关机,按住 D 键启动进行 Apple 诊断
# 控制台日志
open /Applications/Utilities/Console.app
# 活动监视器
open /Applications/Utilities/Activity\ Monitor.app
🗂️ 目录结构
~/ops/
├── logs/ # 统一日志目录
│ ├── gitea-protection.log
│ ├── gitlab-protection.log
│ ├── harbor-protection.log
│ └── brew_maintain.log
├── backups/ # 统一备份目录
│ ├── gitea/ # Gitea 备份
│ ├── gitlab/ # GitLab 备份
│ ├── harbor/ # Harbor 备份
│ └── brew/ # Homebrew 备份
├── data/ # 运行时数据目录
│ ├── gitea/ # Gitea 运行时数据
│ ├── gitlab/ # GitLab 运行时数据
│ └── harbor/ # Harbor 运行时数据
└── {各模块目录}/
🚀 快速部署命令
一键部署
./deploy.sh
各组件独立启动
# Gitea
cd ~/ops/gitea
./gitea-data-protection.sh start
# GitLab
cd ~/ops/gitlab
./gitlab-data-protection.sh start
# Harbor
cd ~/ops/harbor
./harbor-data-protection.sh start
# Ollama (独立运行)
ollama serve
# OrbStack (替代 Docker Desktop)
open -a OrbStack
🔧 常用管理命令
健康检查
# Gitea
./gitea-data-protection.sh health
# GitLab
./gitlab-data-protection.sh health
# Harbor
./harbor-data-protection.sh health
# Ollama
curl -s http://localhost:11434/api/tags | jq '.models | length'
# MySQL
mysql -h 127.0.0.1 -P 3306 -u root -p123456 -e "SELECT 1" >/dev/null 2>&1 && echo "MySQL OK"
# PostgreSQL
pg_isready -h 127.0.0.1 -p 5432 -U postgres
# Redis
redis-cli -h 127.0.0.1 -p 6379 -a 123456 ping
备份操作
# Gitea
./gitea-backup.sh
# GitLab
./gitlab-backup.sh
# Harbor
./harbor-backup.sh
服务状态检查
# Docker 容器状态
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# 端口占用检查
lsof -i :33000,32222,8890,8929,8080,8443,11434,3306,5432,6379
# 日志查看
tail -f ~/ops/logs/*-protection.log
🔐 安全配置
防火墙端口
- Gitea: 33000, 32222
- GitLab: 8890, 8929
- Harbor: 8080, 8443, 8081
- Ollama: 11434 (本地访问)
- MySQL: 3306
- PostgreSQL: 5432
- Redis: 6379
访问控制
- 所有服务都配置在内网环境 (192.168.1.83)
- 建议配置 VPN 或防火墙规则限制外部访问
- 生产环境建议使用 HTTPS 和 SSL 证书
📊 监控指标
系统监控
# Docker 资源使用
docker stats
# 磁盘使用
df -h ~/ops/
# 内存使用
free -h
服务监控
- 自动健康检查: 每 30 秒检查一次
- 定时备份: 按配置间隔自动执行
- 日志轮转: 自动管理日志文件大小
🔄 CI/CD 集成
环境变量配置
export GITEA_URL="http://192.168.1.83:33000"
export GITLAB_URL="http://192.168.1.83:8890"
export HARBOR_URL="http://192.168.1.83:8080"
export OLLAMA_URL="http://localhost:11434"
API 访问令牌
- Gitea: 通过 Web 界面生成 Personal Access Token
- GitLab: 通过 User Settings > Access Tokens 生成
- Harbor: 通过管理员账户生成 API Token
- Ollama: 无需认证,本地访问
Docker Registry 配置
# 登录 Harbor
docker login 192.168.1.83:8080 -u admin -p admin
# 推送镜像
docker tag myapp:latest 192.168.1.83:8080/library/myapp:latest
docker push 192.168.1.83:8080/library/myapp:latest
📝 故障排除
常见问题
- Docker 服务未启动: 启动 Docker Desktop
- 端口冲突: 检查端口占用情况
- 权限问题: 设置脚本执行权限
- 服务启动慢: GitLab 首次启动需要 5-15 分钟
恢复流程
- 停止相关服务
- 创建安全备份
- 从备份恢复数据
- 重启服务验证
- 检查数据完整性
📞 技术支持
文档更新: 2025-01-20 版本: v1.0 维护者: 灵境万象智能科技有限公司
如需技术支持,请查看:
- 各模块的 README.md 文档
- 日志文件排查问题
- GitHub Issues 或 Pull Request