robosats/docker-compose.yml

244 lines
5.6 KiB
YAML

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
- ./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
# # 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: