跳到主要内容

安装部署

使用 Docker Compose 在 Linux 服务器上一键启动 Chameleon 平台。本文只提供快速启动步骤,详细的部署架构、镜像版本选择与运维命令见服务部署。

系统要求​

项目要求
操作系统Linux(Docker 环境)
容器运行时Docker + Docker Compose
服务端运行时.NET 10(已包含在官方镜像中,无需单独安装)
数据库PostgreSQL 18.0+
缓存Redis
对象存储MinIO(随 Compose 启动)
信息

服务端基于 .NET 10 构建,官方镜像内已包含对应运行时,宿主机只需安装 Docker 与 Docker Compose。

快速启动​

1. 准备 docker-compose.yaml​

在服务器上创建部署目录,保存以下内容为 docker-compose.yaml:

networks:
chameleon-net:
name: chameleon-net
driver: bridge

services:
# 网关服务(入口,负责请求路由)
chameleon-gateway:
image: crpi-9r02ywjjc1xv00ys.cn-chengdu.personal.cr.aliyuncs.com/seventiny/chameleon-gateway
restart: unless-stopped
container_name: chameleon-gateway
depends_on:
- chameleon-minio
- chameleon-api
- chameleon-web
ports:
- "80:80"
- "443:443"
networks:
- chameleon-net
pull_policy: always

# PostgreSQL 数据库(快速体验用,生产环境建议使用独立数据库实例)
chameleon-postgres:
image: postgres:18
restart: unless-stopped
container_name: chameleon-postgres
environment:
- POSTGRES_PASSWORD=<database-password>
volumes:
- /var/lib/chameleon/pgdata:/var/lib/postgresql/data
networks:
- chameleon-net

# Redis 缓存(快速体验用,生产环境建议使用独立 Redis 实例)
chameleon-redis:
image: redis:7
restart: unless-stopped
container_name: chameleon-redis
networks:
- chameleon-net

# MinIO 对象存储
chameleon-minio:
image: crpi-9r02ywjjc1xv00ys.cn-chengdu.personal.cr.aliyuncs.com/seventiny/minio:RELEASE.2024-03-07T00-43-48Z-cpuv1
restart: unless-stopped
container_name: chameleon-minio
ports:
- "9000:9000"
- "9001:9001"
volumes:
- /var/lib/minio/data:/data
environment:
- MINIO_ROOT_USER=<your-username>
- MINIO_ROOT_PASSWORD=<your-password>
command: server /data --console-address ":9001"
networks:
- chameleon-net

# API 服务(.NET 10)
chameleon-api:
image: crpi-9r02ywjjc1xv00ys.cn-chengdu.personal.cr.aliyuncs.com/seventiny/chameleon-api:main
restart: unless-stopped
container_name: chameleon-api
depends_on:
- chameleon-postgres
- chameleon-redis
environment:
- CHAMELEON__ENVIRONMENT=<environment-name>
- CHAMELEON__FrontEndEncryptKey=<your-encrypt-key>
- CHAMELEON__ServerEncryptKey=<your-encrypt-key>
- CHAMELEON__AccountConfig__PasswordSalt=<your-salt>
- CHAMELEON__TokenConfig__SecurityKey=<your-security-key>
- CHAMELEON__MINIOCONFIG__MINIOENDPOINT=chameleon-minio
- CHAMELEON__MINIOCONFIG__MINIOPORT=9000
- CHAMELEON__MINIOCONFIG__MinioAccessKey=<your-access-key>
- CHAMELEON__MINIOCONFIG__MinioSecretKey=<your-secret-key>
- CHAMELEON__DATABASE__POSTGRES__HOST=chameleon-postgres
- CHAMELEON__DATABASE__POSTGRES__PORT=5432
- CHAMELEON__DATABASE__POSTGRES__USERNAME=postgres
- CHAMELEON__DATABASE__POSTGRES__PASSWORD=<database-password>
- CHAMELEON__DATABASE__REDIS__ENDPOINTS__0=chameleon-redis:6379
networks:
- chameleon-net

# Web 前端
chameleon-web:
image: crpi-9r02ywjjc1xv00ys.cn-chengdu.personal.cr.aliyuncs.com/seventiny/chameleon-web:main
restart: unless-stopped
container_name: chameleon-web
networks:
- chameleon-net

2. 替换配置项​

将 YAML 中的 <your-*> 占位符替换为真实值:

配置项说明
<database-password>PostgreSQL 密码(chameleon-postgres 与 chameleon-api 两处需一致)
<your-username> / <your-password>MinIO 访问账号
<your-encrypt-key>前后端加密密钥
<your-salt> / <your-security-key>密码盐值与 Token 签名密钥
<environment-name>环境名称(如 dev、prod)
安全提示

请务必替换所有密钥与密码,不要将包含真实密钥的配置文件提交到版本控制系统。

3. 启动服务​

docker compose up -d

启动完成后重启一次网关,确保依赖服务已就绪:

docker compose restart chameleon-gateway

4. 访问平台​

  • 平台入口:http://<服务器IP>(端口 80)
  • MinIO 控制台:http://<服务器IP>:9001

镜像版本​

镜像标签 main 为稳定版、dev 为测试版,生产环境建议使用 main。完整说明见服务部署 - 镜像版本说明。

下一步​