services: ui: image: ghcr.io/coinos/base container_name: ui command: "bun run dev" environment: - NODE_ENV=development - API_URL=http://app:3119 ports: - '5173:5173' - '24678:24678' volumes: - ../coinos-ui:/home/bun/app restart: always app: image: ghcr.io/coinos/base container_name: app depends_on: - db - bc - cl - sf - tb security_opt: - seccomp:unconfined command: "bun run dev" environment: URL: http://localhost:5173 ports: - '3119:3119' volumes: - ./:/home/bun/app - ./logs:/logs - ./data/bitcoin/bitcoin.conf:/bitcoin.conf - ./data/sockets:/sockets restart: always bc: image: ghcr.io/coinos/bitcoin:30.2 container_name: bc volumes: - ./data/bitcoin:/home/bitcoin/.bitcoin restart: always lq: image: ghcr.io/coinos/elements:23.3.2 container_name: lq volumes: - ./data/liquid:/home/elements/.elements restart: always ports: - 7043:7040 cl: image: ghcr.io/coinos/lightningd:v25.12.1 container_name: cl environment: LIGHTNINGD_NETWORK: regtest volumes: - ./data/lightning:/root/.lightning ports: - '3010:3010' - '1984:1984' restart: always clb: image: ghcr.io/coinos/lightningd:v25.12.1 container_name: clb environment: LIGHTNINGD_NETWORK: regtest volumes: - ./data/lightningb:/root/.lightning restart: always clc: image: ghcr.io/coinos/lightningd:v25.12.1 container_name: clc environment: LIGHTNINGD_NETWORK: regtest volumes: - ./data/lightningc:/root/.lightning restart: always db: image: valkey/valkey:8.0-alpine container_name: db ports: - '6379:6379' command: ["valkey-server", "/etc/valkey/valkey.conf"] volumes: - ./data/db:/data - ./data/db/valkey.conf:/etc/valkey/valkey.conf restart: always arc: image: ghcr.io/coinos/kvrocks container_name: arc ports: - '6380:6379' entrypoint: ["kvrocks", "-c", "/data/kvrocks.conf", "--dir", "/data", "--bind", "0.0.0.0"] volumes: - ./data/archive-kv:/data restart: always tb: image: ghcr.io/coinos/tigerbeetle container_name: tb privileged: true command: ["start", "--addresses=0.0.0.0:3000", "/data/0_0.tigerbeetle"] volumes: - ./data/tigerbeetle:/data ports: - "3001:3000" restart: always sf: container_name: sf image: ghcr.io/coinos/strsrv volumes: - ./data/strfry/strfry.conf:/etc/strfry.conf - ./data/strfry/db:/app/strfry-db - ./data/sockets:/app/sockets ports: - "7777:7777" cs: image: ghcr.io/coinos/chopsticks container_name: cs command: - --wallet-name - coinos - --use-faucet - --use-logger - --rpc-addr - bc:18443 - --electrs-addr - eb:30000 - --addr - 0.0.0.0:3000 depends_on: - bc - eb restart: unless-stopped ports: - "3000:3000" eb: image: ghcr.io/coinos/electrs container_name: eb entrypoint: - /build/electrs command: - --jsonrpc-import - -vvvv - --network - regtest - --daemon-dir - /config - --daemon-rpc-addr - bc:18443 - --cookie - admin1:123 - --http-addr - 0.0.0.0:30000 - --electrum-rpc-addr - 0.0.0.0:50000 - --cors - "*" depends_on: - bc volumes: - ./data/bitcoin:/config restart: unless-stopped # ── Ark (optional) ────────────────────────────────────────────── # Uncomment to enable Ark vault payments. # Requires: arkd, arkd-wallet, nbxplorer, pgnbxplorer # # arkd: # image: ghcr.io/coinos/arkd # container_name: arkd # restart: unless-stopped # depends_on: # - arkd-wallet # ports: # - "7070:7070" # environment: # - ARKD_LOG_LEVEL=6 # - ARKD_NO_MACAROONS=true # - ARKD_VTXO_TREE_EXPIRY=100 # - ARKD_SCHEDULER_TYPE=block # - ARKD_UNILATERAL_EXIT_DELAY=512 # - ARKD_BOARDING_EXIT_DELAY=1024 # - ARKD_DATADIR=./data/regtest # - ARKD_WALLET_ADDR=arkd-wallet:6060 # - ARKD_ESPLORA_URL=http://cs:3000 # - ARKD_VTXO_MIN_AMOUNT=1 # - ARKD_LIVE_STORE_TYPE=inmemory # - ARKD_EVENT_DB_TYPE=badger # - ARKD_DB_TYPE=sqlite # - ARKD_ROUND_INTERVAL=10 # - ARKD_ALLOW_CSV_BLOCK_TYPE=true # - ARKD_UNLOCKER_TYPE=env # - ARKD_UNLOCKER_PASSWORD=testpassword # volumes: # - ./data/ark:/app/data # arkd-wallet: # restart: unless-stopped # image: asoltys/arkd-wallet # build: # context: . # dockerfile: wallet.Dockerfile # container_name: arkd-wallet # depends_on: # - nbxplorer # ports: # - "6060:6060" # environment: # - ARKD_WALLET_LOG_LEVEL=5 # - ARKD_WALLET_NBXPLORER_URL=http://nbxplorer:32838 # - ARKD_WALLET_DATADIR=./data/regtest # - ARKD_WALLET_NETWORK=regtest # - ARKD_WALLET_SIGNER_KEY=afcd3fa10f82a05fddc9574fdb13b3991b568e89cc39a72ba4401df8abef35f0 # volumes: # - ./data/arkd-wallet:/app/data # nbxplorer: # restart: unless-stopped # container_name: nbxplorer # image: nicolasdorier/nbxplorer:2.5.30 # ports: # - 32838:32838 # environment: # - NBXPLORER_NETWORK=regtest # - NBXPLORER_CHAINS=btc # - NBXPLORER_BTCRPCURL=http://bc:18443/wallet/coinos # - NBXPLORER_BTCNODEENDPOINT=bc:18444 # - NBXPLORER_BTCRPCUSER=admin1 # - NBXPLORER_BTCRPCPASSWORD=123 # - NBXPLORER_BIND=0.0.0.0:32838 # - NBXPLORER_POSTGRES=User ID=postgres;Host=pgnbxplorer;Port=5432;Database=nbxplorer # - NBXPLORER_NOAUTH=1 # volumes: # - type: tmpfs # target: /datadir # depends_on: # pgnbxplorer: # condition: service_healthy # pgnbxplorer: # restart: unless-stopped # image: postgres:16-alpine # container_name: pgnbxplorer # environment: # - POSTGRES_HOST_AUTH_METHOD=trust # volumes: # - type: tmpfs # target: /var/lib/postgresql/data # healthcheck: # test: ["CMD-SHELL", "pg_isready -U postgres -d nbxplorer -h 127.0.0.1 -p 5432"] # interval: 2s # timeout: 2s # retries: 30 networks: default: name: net external: true