esotericelf/image_edit_creation
0
1# Nano Banana 2 API - Docker Compose2#3# Host port 8001 avoids conflicts with other local services on 8000.4# The API listens on 8000 inside the container and is published as 8001 on the host.5#6# Start the stack:7# docker compose up --build8#9# Required .env variables:10# FAL_KEY=...11# Optional (compose provides dev fallbacks if unset on Windows Docker Desktop):12# MASTER_PASSWORD=...13# ADMIN_SESSION_SECRET=...14 15services:16 db:17 image: postgres:16-alpine18 container_name: nano-banana-2-db19 environment:20 POSTGRES_USER: nano_banana21 POSTGRES_PASSWORD: nano_banana22 POSTGRES_DB: nano_banana23 ports:24 - "5433:5432"25 volumes:26 - postgres_data:/var/lib/postgresql/data27 - ./migrations/001_create_gift_tokens.sql:/docker-entrypoint-initdb.d/001_create_gift_tokens.sql28 healthcheck:29 test: ["CMD-SHELL", "pg_isready -U nano_banana -d nano_banana"]30 interval: 5s31 timeout: 5s32 retries: 1033 restart: unless-stopped34 35 api:36 build:37 context: .38 dockerfile: Dockerfile39 container_name: nano-banana-2-api40 ports:41 - "8001:8000"42 environment:43 FAL_KEY: ${FAL_KEY}44 MASTER_PASSWORD: ${MASTER_PASSWORD:-admin123}45 ADMIN_SESSION_SECRET: ${ADMIN_SESSION_SECRET:-super_secret_fallback_signing_key_2026_generation_backend}46 DATABASE_URL: postgresql+asyncpg://nano_banana:nano_banana@db:5432/nano_banana47 CORS_ORIGINS: http://localhost:5173,http://127.0.0.1:5173,http://localhost:8001,https://image-edit-creation.netlify.app48 COOKIE_SECURE: "false"49 depends_on:50 db:51 condition: service_healthy52 restart: unless-stopped53 54 tunnel:55 image: cloudflare/cloudflared:latest56 container_name: nano-banana-tunnel57 command: tunnel --url http://api:800058 restart: unless-stopped59 depends_on:60 - api61 62 connection-test:63 profiles: ["test"]64 build:65 context: .66 dockerfile: Dockerfile67 container_name: nano-banana-2-connection-test68 environment:69 - FAL_KEY70 command: ["python", "test_connection.py"]71 restart: "no"72 73volumes:74 postgres_data:75 