version: '3.4' services: nginx: container_name: xpopweb read_only: true volumes: - ./conf/nginx.conf:/etc/nginx/nginx.conf:ro - nginxcache:/var/cache/nginx - nginxpid:/var/run - ./store/:/usr/share/nginx/html:ro ports: - ${PORT:-3000}:3000 image: nginx:alpine restart: unless-stopped healthcheck: test: curl --fail http://localhost:3000/healthcheck || exit 1 interval: 15s retries: 2 start_period: 5s timeout: 5s xpop: container_name: xpop image: xpop:service build: . volumes: - ./store:/usr/src/app/store environment: - EVENT_SOCKET_PORT=3000 - URL_PREFIX=${URL_PREFIX:-http://localhost:3000} - NETWORKID=${NETWORKID:-1} - UNLURL=${UNLURL:-https://vl.altnet.rippletest.net} - UNLKEY=${UNLKEY:-ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860} - NODES=${NODES:-wss://testnet.xrpl-labs.com,wss://s.altnet.rippletest.net:51233} - FIELDSREQUIRED=${FIELDSREQUIRED:-Fee,Account,OperationLimit} - NOVALIDATIONLOG=${NOVALIDATIONLOG} - NOELIGIBLEFULLTXLOG=${NOELIGIBLEFULLTXLOG} - DEBUG=${DEBUG} - TELEMETRY=${TELEMETRY:-NO} restart: unless-stopped healthcheck: test: wget --spider -q http://localhost:3000/health || exit 1 interval: 15s retries: 2 start_period: 5s timeout: 5s xpopcleaner: container_name: xpopcleaner image: alpine entrypoint: sh -c "TTL_MINUTES_PREGEN_XPOP=${TTL_MINUTES_PREGEN_XPOP:-60} TTL_DAYS_XPOP_SOURCE_FILES=${TTL_DAYS_XPOP_SOURCE_FILES:-30} sh /cleanup.sh && tail -f /dev/null" stop_grace_period: 0s volumes: - ./store:/store - ./scripts/cleanup.sh:/cleanup.sh restart: unless-stopped healthcheck: test: TTL_MINUTES_PREGEN_XPOP=${TTL_MINUTES_PREGEN_XPOP:-60} TTL_DAYS_XPOP_SOURCE_FILES=${TTL_DAYS_XPOP_SOURCE_FILES:-30} sh /cleanup.sh interval: ${TTL_MINUTES_CLEANUP_INTERVAL:-60}m retries: 0 timeout: 55m volumes: nginxcache: nginxpid: