robosats-deploy/compose/docker-compose.yml
KoalaSat 5c2165fffa Fix database backup (#12)
* Fix database backup

* Update docker-compose.yml
2024-07-07 10:55:43 +00:00

165 lines
5.2 KiB
YAML

version: '3.9'
services:
tor:
build: ./tor
container_name: tor${SUFFIX}
restart: always
environment:
SUFFIX: ${SUFFIX}
volumes:
- ${TOR_DATA:?}:/var/lib/tor
- ${TOR_CONFIG:?}:/etc/tor/torrc
ports:
- ${WEB_LOCAL_PORT}:80
- ${THUB_LOCAL_PORT}:3000
- ${LIT_LOCAL_PORT}:8443
bitcoind:
image: ruimarinho/bitcoin-core:${BITCOIND_TAG:-24.0.1-alpine@sha256:624b6fb1c282a3db6438ff35fbb9eed6ae260c66ffbb427ae72edd7da6a0ecdc}
container_name: btc${SUFFIX}
restart: always
depends_on:
- tor
network_mode: service:tor
volumes:
- ${TOR_DATA:?}:/var/lib/tor:ro
- ${BITCOIN_DATA:?}:${GUEST_BITCOIN:?}
- ${BITCOIN_CONF:?}:${GUEST_BITCOIN:?}/bitcoin.conf
daphne:
image: recksato/robosats:${ROBOSATS_TAG:-v0.6.0-alpha@sha256:8cc975ff5942a3fb2a09827b8eaafebea1c851eb3ecf9be1aaac1f238cfa9fc1}
container_name: daphne${SUFFIX}
restart: always
network_mode: service:tor
env_file:
- ${ROBOSATS_ENVS_FILE}
environment:
SKIP_COLLECT_STATIC: "true"
depends_on:
- robosats
command: daphne -b 0.0.0.0 -p 9000 robosats.asgi:application
redis:
image: redis:${REDIS_TAG:-7.2.1-alpine@sha256:7f5a0dfbf379db69dc78434091dce3220e251022e71dcdf36207928cbf9010de}
container_name: redis${SUFFIX}
restart: always
volumes:
- redisdata:/data
network_mode: service:tor
robosats:
image: recksato/robosats:${ROBOSATS_TAG:-v0.6.0-alpha@sha256:8cc975ff5942a3fb2a09827b8eaafebea1c851eb3ecf9be1aaac1f238cfa9fc1}
container_name: rs${SUFFIX}
restart: always
environment:
LOG_TO_CONSOLE: 1
env_file:
- ${ROBOSATS_ENVS_FILE}
depends_on:
- redis
volumes:
- ${STATIC}:/usr/src/static
network_mode: service:tor
command: gunicorn --bind :8000 --max-requests 1000 --max-requests-jitter 200 -w ${GUNICORN_WORKERS} robosats.wsgi:application
postgres:
image: postgres:${POSTGRES_TAG:-14.2-alpine@sha256:2fb5718f2a23dbac9bd1258e886eee90250a5903785e3136d62dd65e19f34982}
container_name: sql${SUFFIX}
restart: always
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_DB: ${POSTGRES_NAME}
network_mode: service:tor
volumes:
- ${DATABASE}:/var/lib/postgresql/data
nginx:
image: nginx:${NGINX_TAG:-1.25.2-alpine-slim@sha256:1b0cb433e90260a96528c987ee78b797e842d510473935304a0931536d10f50d}
container_name: nginx${SUFFIX}
restart: always
volumes:
- ${STATIC}:/usr/src/static:ro
- ${NGINX_CONFD}:/etc/nginx/conf.d:ro
- ${WELLKNOWN}:/usr/src/.well-known:ro
network_mode: service:tor
clean-orders:
image: recksato/robosats:${ROBOSATS_TAG:-v0.6.0-alpha@sha256:8cc975ff5942a3fb2a09827b8eaafebea1c851eb3ecf9be1aaac1f238cfa9fc1}
restart: always
container_name: clord${SUFFIX}
command: python3 manage.py clean_orders
environment:
SKIP_COLLECT_STATIC: "true"
env_file:
- ${ROBOSATS_ENVS_FILE}
network_mode: service:tor
follow-invoices:
image: recksato/robosats:${ROBOSATS_TAG:-v0.6.0-alpha@sha256:8cc975ff5942a3fb2a09827b8eaafebea1c851eb3ecf9be1aaac1f238cfa9fc1}
container_name: invo${SUFFIX}
restart: always
env_file:
- ${ROBOSATS_ENVS_FILE}
environment:
SKIP_COLLECT_STATIC: "true"
command: python3 manage.py follow_invoices
network_mode: service:tor
telegram-watcher:
image: recksato/robosats:${ROBOSATS_TAG:-v0.6.0-alpha@sha256:8cc975ff5942a3fb2a09827b8eaafebea1c851eb3ecf9be1aaac1f238cfa9fc1}
container_name: tg${SUFFIX}
restart: always
environment:
SKIP_COLLECT_STATIC: "true"
env_file:
- ${ROBOSATS_ENVS_FILE}
command: python3 manage.py telegram_watcher
network_mode: service:tor
celery:
image: recksato/robosats:${ROBOSATS_TAG:-v0.6.0-alpha@sha256:8cc975ff5942a3fb2a09827b8eaafebea1c851eb3ecf9be1aaac1f238cfa9fc1}
container_name: cele${SUFFIX}
restart: always
env_file:
- ${ROBOSATS_ENVS_FILE}
environment:
SKIP_COLLECT_STATIC: "true"
command: celery -A robosats worker --loglevel=WARNING
depends_on:
- redis
network_mode: service:tor
celery-beat:
image: recksato/robosats:${ROBOSATS_TAG:-v0.6.0-alpha@sha256:8cc975ff5942a3fb2a09827b8eaafebea1c851eb3ecf9be1aaac1f238cfa9fc1}
container_name: beat${SUFFIX}
restart: always
env_file:
- ${ROBOSATS_ENVS_FILE}
environment:
SKIP_COLLECT_STATIC: "true"
command: celery -A robosats beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
depends_on:
- redis
network_mode: service:tor
# Example simple backup service (copy/paste to attached storage locations)
# backup:
# build: ./backup
# container_name: bu${SUFFIX}
# restart: always
# environment:
# NETWORK: ${NETWORK}
# volumes:
# - ${DATABASE}:/running/database:ro
# - ${BITCOIN_DATA}:/running/bitcoin:ro
# - ${LND_DATA}:/running/lnd:ro
# - ${LIT_DATA}:/running/lit:ro
# - ${STATIC}:/running/static:ro
# - ${BU_DIR1}:/backup1
# - ${BU_DIR2}:/backup2
# - ${BU_DIR3}:/backup3
volumes:
redisdata: