Files
AIUI/docker-compose.yml
T

74 lines
1.5 KiB
YAML

version: "3.8"
services:
# Nginx reverse proxy
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- frontend
- backend
- strapi
networks:
- aiui-network
# Frontend (React + Vite built to static files)
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
expose:
- "80"
networks:
- aiui-network
restart: unless-stopped
# Backend (Express + ChromaDB)
backend:
build:
context: ./backend
dockerfile: Dockerfile
expose:
- "3002"
volumes:
- ./data/backend:/app/data
environment:
- NODE_ENV=production
- PORT=3002
- STRAPI_URL=http://strapi:1337
- STRAPI_API_TOKEN=${STRAPI_API_TOKEN:-}
networks:
- aiui-network
restart: unless-stopped
# Strapi CMS (SQLite)
strapi:
image: strapi/strapi:5
expose:
- "1337"
volumes:
- ./data/strapi:/srv/app
environment:
- DATABASE_CLIENT=sqlite
- DATABASE_FILENAME=.tmp/data.db
- JWT_SECRET=${JWT_SECRET:-changemejwt}
- ADMIN_JWT_SECRET=${ADMIN_JWT_SECRET:-changemeadmin}
- APP_KEYS=${APP_KEYS:-changeme1,changeme2}
- API_TOKEN_SALT=${API_TOKEN_SALT:-changemesalt}
- TRANSFER_TOKEN_SALT=${TRANSFER_TOKEN_SALT:-changemetoken}
- NODE_ENV=production
networks:
- aiui-network
restart: unless-stopped
networks:
aiui-network:
driver: bridge
volumes:
backend-data:
strapi-data: