Initial commit: GovAI 政务AI平台

This commit is contained in:
freedakgmail
2026-06-15 23:48:37 +08:00
commit 0f490f72a9
245 changed files with 51669 additions and 0 deletions
+133
View File
@@ -0,0 +1,133 @@
# Aily - Dify AI 引擎
# 使用方式: docker compose -f docker/docker-compose.dify.yml up -d
# 注意: 需要先启动基础设施 (docker-compose.yml)
services:
dify-api:
image: langgenius/dify-api:latest
container_name: aily-dify-api
restart: unless-stopped
ports:
- "5001:5001"
environment:
MODE: api
LOG_LEVEL: INFO
SECRET_KEY: sk-dify-secret-key-change-in-production
CONSOLE_WEB_URL: http://localhost:3001
CONSOLE_API_URL: http://localhost:5001
SERVICE_API_URL: http://localhost:5001
APP_WEB_URL: http://localhost:3001
# Database (shared with portal)
DB_USERNAME: ${POSTGRES_USER:-aily}
DB_PASSWORD: ${POSTGRES_PASSWORD:-aily}
DB_HOST: aily-postgres
DB_PORT: 5432
DB_DATABASE: dify
# Redis
REDIS_HOST: aily-redis
REDIS_PORT: 6379
REDIS_DB: 1
# Storage
STORAGE_TYPE: s3
S3_ENDPOINT: http://aily-minio:9000
S3_BUCKET_NAME: dify-storage
S3_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-minioadmin}
S3_REGION: us-east-1
S3_USE_AWS_MANAGED_IAM: "false"
# Vector store
VECTOR_STORE: weaviate
WEAVIATE_ENDPOINT: http://aily-weaviate:8080
depends_on:
- dify-sandbox
- dify-ssrf-proxy
networks:
- default
- aily-net
dify-worker:
image: langgenius/dify-api:latest
container_name: aily-dify-worker
restart: unless-stopped
environment:
MODE: worker
LOG_LEVEL: INFO
SECRET_KEY: sk-dify-secret-key-change-in-production
DB_USERNAME: ${POSTGRES_USER:-aily}
DB_PASSWORD: ${POSTGRES_PASSWORD:-aily}
DB_HOST: aily-postgres
DB_PORT: 5432
DB_DATABASE: dify
REDIS_HOST: aily-redis
REDIS_PORT: 6379
REDIS_DB: 1
STORAGE_TYPE: s3
S3_ENDPOINT: http://aily-minio:9000
S3_BUCKET_NAME: dify-storage
S3_ACCESS_KEY: ${MINIO_ROOT_USER:-minioadmin}
S3_SECRET_KEY: ${MINIO_ROOT_PASSWORD:-minioadmin}
S3_REGION: us-east-1
S3_USE_AWS_MANAGED_IAM: "false"
VECTOR_STORE: weaviate
WEAVIATE_ENDPOINT: http://aily-weaviate:8080
networks:
- default
- aily-net
dify-web:
image: langgenius/dify-web:latest
container_name: aily-dify-web
restart: unless-stopped
ports:
- "3001:3000"
environment:
CONSOLE_API_URL: http://localhost:5001
APP_API_URL: http://localhost:5001
dify-sandbox:
image: langgenius/dify-sandbox:latest
container_name: aily-dify-sandbox
restart: unless-stopped
environment:
API_KEY: dify-sandbox-key
GIN_MODE: release
WORKER_TIMEOUT: 15
dify-ssrf-proxy:
image: ubuntu/squid:latest
container_name: aily-dify-ssrf-proxy
restart: unless-stopped
weaviate:
image: semitechnologies/weaviate:1.19.0
container_name: aily-weaviate
restart: unless-stopped
ports:
- "8088:8080"
environment:
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: "true"
DEFAULT_VECTORIZER_MODULE: none
CLUSTER_HOSTNAME: node1
PERSISTENCE_DATA_PATH: /var/lib/weaviate
volumes:
- weaviatedata:/var/lib/weaviate
networks:
- default
- aily-net
volumes:
weaviatedata:
networks:
aily-net:
external: true
name: aily_default
+88
View File
@@ -0,0 +1,88 @@
# Aily - 开发环境基础设施
# 使用方式: docker compose -f docker/docker-compose.yml up -d
services:
postgres:
image: pgvector/pgvector:pg17
container_name: aily-postgres
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: ${POSTGRES_USER:-aily}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-aily}
POSTGRES_DB: ${POSTGRES_DB:-aily_portal}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U aily"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: aily-redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redisdata:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
minio:
image: minio/minio
container_name: aily-minio
restart: unless-stopped
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
volumes:
- miniodata:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 10s
timeout: 5s
retries: 5
ppt-worker:
build:
context: ../ppt-worker
dockerfile: Dockerfile
container_name: aily-ppt-worker
restart: unless-stopped
ports:
- "8090:8090"
environment:
WORKER_HOST: 0.0.0.0
WORKER_PORT: 8090
DATABASE_URL: postgres://${POSTGRES_USER:-aily}:${POSTGRES_PASSWORD:-aily}@postgres:5432/${POSTGRES_DB:-aily_portal}?sslmode=disable
REDIS_URL: redis://redis:6379/0
PPT_MASTER_PATH: /opt/ppt-master
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
OPENAI_BASE_URL: ${OPENAI_BASE_URL:-https://dashscope.aliyuncs.com/compatible-mode/v1}
OPENAI_MODEL: ${OPENAI_MODEL:-qwen-max}
IMAGE_BACKEND: ${IMAGE_BACKEND:-wanx}
WANX_MODEL: ${WANX_MODEL:-wanx-v1}
volumes:
- ppt-projects:/tmp/govai
- ../../ppt-master:/opt/ppt-master:ro
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
pgdata:
redisdata:
miniodata:
ppt-projects: