version: '3.9' services: jekyll: image: jekyll/jekyll:4.0 container_name: pages restart: always volumes: - .:/usr/src/robosats command: bash -c "cd /usr/src/robosats/docs/ && bundle install && bundle exec jekyll serve --force_polling -H 0.0.0.0 -P 4000" ports: - 4000:4000 redis: image: redis:6.2.6 container_name: redis restart: always volumes: - redisdata:/data network_mode: service:tor backend: build: context: . args: DEVELOPMENT: True image: backend-image container_name: django-dev restart: always depends_on: - bitcoind - lnd - redis environment: DEVELOPMENT: True volumes: - .:/usr/src/robosats - ./node/lnd:/lnd - ./node/cln:/cln network_mode: service:tor command: python3 -u manage.py runserver 0.0.0.0:8000 frontend: build: ./frontend container_name: npm-dev restart: always command: npm run dev volumes: - ./frontend:/usr/src/frontend - ./mobile:/usr/src/mobile nodeapp: # Umbrel / Citadel app build: ./nodeapp container_name: nodeapp-dev restart: always environment: TOR_PROXY_IP: 127.0.0.1 TOR_PROXY_PORT: 9050 network_mode: service:tor volumes: - ./nodeapp/:/usr/src/robosats/ - ./nodeapp/nginx.conf:/etc/nginx/nginx.conf - ./nodeapp/coordinators/:/etc/nginx/conf.d/ - ./frontend/static:/usr/src/robosats/static clean-orders: image: backend-image pull_policy: never restart: always container_name: clord-dev environment: SKIP_COLLECT_STATIC: "true" command: python3 manage.py clean_orders volumes: - .:/usr/src/robosats - ./node/lnd:/lnd - ./node/cln:/cln network_mode: service:tor follow-invoices: image: backend-image pull_policy: never container_name: invo-dev restart: always depends_on: - bitcoind - lnd environment: SKIP_COLLECT_STATIC: "true" command: python3 manage.py follow_invoices volumes: - .:/usr/src/robosats - ./node/lnd:/lnd - ./node/cln:/cln network_mode: service:tor telegram-watcher: image: backend-image pull_policy: never container_name: tg-dev restart: always environment: SKIP_COLLECT_STATIC: "true" command: python3 manage.py telegram_watcher volumes: - .:/usr/src/robosats - ./node/lnd:/lnd - ./node/cln:/cln network_mode: service:tor celery-worker: image: backend-image pull_policy: never container_name: cele-worker-dev restart: always environment: REDIS_URL: redis://localhost:6379 SKIP_COLLECT_STATIC: "true" volumes: - .:/usr/src/robosats - ./node/lnd:/lnd - ./node/cln:/cln command: celery -A robosats worker --loglevel=INFO --concurrency 4 --max-tasks-per-child=4 --max-memory-per-child=200000 depends_on: - redis network_mode: service:tor celery-beat: image: backend-image pull_policy: never container_name: cele-beat-dev restart: always environment: REDIS_URL: redis://localhost:6379 SKIP_COLLECT_STATIC: "true" command: celery -A robosats beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler volumes: - .:/usr/src/robosats - ./node/lnd:/lnd - ./node/cln:/cln depends_on: - redis network_mode: service:tor i2p: image: geti2p/i2p container_name: i2p-dev network_mode: host volumes: - ./node/i2p/i2pconfig:/i2p/.i2p tor: build: ./docker/tor container_name: tor-dev restart: always environment: LOCAL_USER_ID: 1000 LOCAL_GROUP_ID: 1000 volumes: - ./node/tor/data:/var/lib/tor - ./node/tor/config:/etc/tor ports: - 8000:8000 # dev frontend build - 12596:12596 # umbrel frontend lnd: build: ./docker/lnd restart: always network_mode: service:tor container_name: lnd-dev depends_on: - tor - bitcoind volumes: - ./node/tor/data:/var/lib/tor - ./node/tor/config:/etc/tor - ./node/lnd:/home/lnd/.lnd - ./node/lnd:/root/.lnd command: lnd environment: LOCAL_USER_ID: 1000 LOCAL_GROUP_ID: 1000 LND_RPC_PORT: 10009 LND_REST_PORT: 8080 AUTO_UNLOCK_PWD: ${AUTO_UNLOCK_PWD} cln: build: ./docker/cln restart: always network_mode: service:tor container_name: cln-dev depends_on: - tor - bitcoind # - postgres-cln volumes: - ./node/tor/data:/var/lib/tor - ./node/tor/config:/etc/tor - ./node/cln:/root/.lightning - ./node/bitcoin:/root/.bitcoin command: lightningd bitcoind: build: ./docker/bitcoind container_name: btc-dev restart: always environment: LOCAL_USER_ID: 1000 LOCAL_GROUP_ID: 1000 depends_on: - tor network_mode: service:tor volumes: - ./node/tor/data:/var/lib/tor:ro - ./node/tor/config:/etc/tor:ro - ./node/bitcoin:/home/bitcoin/.bitcoin postgres: image: postgres:14.2-alpine container_name: sql-dev restart: always environment: POSTGRES_PASSWORD: example network_mode: service:tor volumes: - ./node/db:/var/lib/postgresql/data strfry: build: ./docker/strfry container_name: strfry-dev restart: unless-stopped volumes: - ./docker/strfry/strfry.conf:/etc/strfry.conf:ro - ./docker/strfry/onion_urls.txt:/app/onion_urls.txt:ro - ./node/strfry/db:/app/strfry-db:rw network_mode: service:tor # # Postgresql for CLN # postgres-cln: # image: postgres:14.2-alpine # container_name: cln-sql-dev # restart: always # environment: # PGUSER: user # PGDATABASE: cln # POSTGRES_PASSWORD: pass # PGPORT: 5433 # network_mode: service:tor # volumes: # - ./node/cln-db:/var/lib/postgresql/data volumes: redisdata: