File size: 2,082 Bytes
25f22bf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
version: '3.8'
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "5000:5000"
environment:
- SUPABASE_URL=${SUPABASE_URL}
- SUPABASE_KEY=${SUPABASE_KEY}
- CLIENT_ID=${CLIENT_ID}
- CLIENT_SECRET=${CLIENT_SECRET}
- REDIRECT_URL=${REDIRECT_URL}
- HUGGING_KEY=${HUGGING_KEY}
- JWT_SECRET_KEY=${JWT_SECRET_KEY}
- SECRET_KEY=${SECRET_KEY}
- DEBUG=${DEBUG}
- SCHEDULER_ENABLED=${SCHEDULER_ENABLED}
- PORT=5000
- LANG=C.UTF-8
- LC_ALL=C.UTF-8
- PYTHONIOENCODING=utf-8
- PYTHONUTF8=1
- DOCKER_CONTAINER=true
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
volumes:
- ./backend:/app
env_file:
- ./backend/.env
depends_on:
- supabase
- redis
networks:
- lin-network
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "3000:3000"
volumes:
- ./frontend:/app
- /app/node_modules
environment:
- VITE_API_URL=http://localhost:5000/api
- VITE_NODE_ENV=development
depends_on:
- backend
networks:
- lin-network
profiles:
- dev
supabase:
image: supabase/postgres:latest
ports:
- "5432:5432"
environment:
- POSTGRES_DB=lin
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- supabase_data:/var/lib/postgresql/data
networks:
- lin-network
redis:
image: redis:alpine
ports:
- "6379:6379"
networks:
- lin-network
# Production-ready Nginx reverse proxy
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./frontend/build:/usr/share/nginx/html
- ./ssl:/etc/nginx/ssl
depends_on:
- frontend
- backend
networks:
- lin-network
profiles:
- prod
volumes:
supabase_data:
networks:
lin-network:
driver: bridge |