version: '3.8' services: routstr: build: . command: ["/.venv/bin/fastapi", "dev", "routstr", "--host", "0.0.0.0", "--port", "8000"] ports: - "8000:8000" environment: - "DATABASE_URL=sqlite+aiosqlite:///:memory:" - "NOSTR_RELAY_URL=ws://relay:8080" - "UPSTREAM_BASE_URL=http://mock-openai:3000" - "UPSTREAM_API_KEY=test-upstream-key" - "CASHU_MINTS=http://mint:3338" - "NAME=TestRoutstrNode" - "DESCRIPTION=Test Node for Integration Tests" - "NPUB=npub1test" - "HTTP_URL=http://localhost:8000" - "ONION_URL=http://test.onion" - "CORS_ORIGINS=*" - "RECEIVE_LN_ADDRESS=test@routstr.com" - "FIXED_COST_PER_REQUEST=10" - "FIXED_PER_1K_INPUT_TOKENS=0" - "FIXED_PER_1K_OUTPUT_TOKENS=0" - "FIXED_PRICING=false" - "NSEC=nsec1testkey1234567890abcdef" - "REFUND_PROCESSING_INTERVAL=3600" - "MINIMUM_PAYOUT=1000" - "PAYOUT_INTERVAL=86400" depends_on: - mock-mint - mock-openai - relay relay: image: scsibug/nostr-rs-relay:latest restart: unless-stopped ports: - "8088:8080" # host:container environment: - LISTEN_ADDR=0.0.0.0 - LISTEN_PORT=8080 mock-openai: image: zerob13/mock-openai-api ports: - "3000:3000" mock-mint: image: cashubtc/nutshell:0.17.0 container_name: mint ports: - "3338:3338" environment: - MINT_BACKEND_BOLT11_SAT=FakeWallet - MINT_LISTEN_HOST=0.0.0.0 - MINT_LISTEN_PORT=3338 - MINT_PRIVATE_KEY=TEST_PRIVATE_KEY command: poetry run mint restart: unless-stopped depends_on: - mock-openai