Initial commit: Pixel AI comic/video creation platform

- FastAPI backend with SQLModel, Alembic migrations, AgentScope agents
- Next.js 15 frontend with React 19, Tailwind, Zustand, React Flow
- Multi-provider AI system (DashScope, Kling, MiniMax, Volcengine, OpenAI, etc.)
- All HTTP clients migrated from sync requests to async httpx
- Admin-managed API keys via environment variables
- SSRF vulnerability fixed in ensure_url()
This commit is contained in:
张鹏
2026-04-29 01:20:12 +08:00
commit f9f4560459
808 changed files with 151724 additions and 0 deletions

58
docker-compose.yml Normal file
View File

@@ -0,0 +1,58 @@
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "8000:8000"
volumes:
- ./backend/src:/app/src
- ./backend/data:/app/data
- ./backend/uploads:/app/uploads
# Mount .env if needed, or rely on COPY in Dockerfile.
# Mounting is better for dev/secrets, but COPY is better for self-contained.
# We'll stick to the COPY in Dockerfile for now, but allow override via env_file.
env_file:
- ./backend/.env
environment:
- REDIS_URL=redis://redis:6379
- DATABASE_URL=postgresql://pixel:pixelpassword@postgres:5432/pixeldb
depends_on:
- redis
- postgres
restart: always
redis:
image: redis:6-alpine
ports:
- "63791:6379"
restart: always
postgres:
image: postgres:15-alpine
environment:
POSTGRES_USER: pixel
POSTGRES_PASSWORD: pixelpassword
POSTGRES_DB: pixeldb
ports:
- "54321:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
restart: always
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
args:
- API_URL=http://backend:8000
ports:
- "3000:3000"
environment:
- API_URL=http://backend:8000
depends_on:
- backend
restart: always
volumes:
postgres_data: