From ee88e5f213334382cbea04402cab9bc29405412a Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 16 Mar 2026 23:38:47 -0700 Subject: streamline dev setup and docker images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rewrite setup.sh: auto-installs Docker, downloads regtest snapshot, pulls images, starts all services. Idempotent, works on fresh Ubuntu/macOS. - Create coinos-base image (196MB) shared by all containers: bitcoin, elements, lightning, strfry, kvrocks, electrs, tigerbeetle, chopsticks. Total pull ~490MB, down from ~4.3GB. - Move all images to ghcr.io/coinos/* namespace. - Drop nutshell (mint/wallet), postgres, mon from default dev compose. - Comment out ark stack (optional), guard ark.ts against empty config. - Add missing sampledata: lightningc, strfry, kvrocks, valkey configs. - Strip strfry binary (145MB debug symbols removed). - Use single CLN version (v25.12.1) for all 3 lightning nodes. - Switch valkey to alpine variant (110MB → 41MB). - Update config.ts.sample with correct service URLs. - Regtest snapshot hosted on GitHub Releases (~2MB). Co-Authored-By: Claude Opus 4.6 (1M context) --- compose.yml.sample | 318 ++++++++++++++++++----------------------------------- 1 file changed, 106 insertions(+), 212 deletions(-) (limited to 'compose.yml.sample') diff --git a/compose.yml.sample b/compose.yml.sample index e871ad02..d9621d4a 100644 --- a/compose.yml.sample +++ b/compose.yml.sample @@ -1,44 +1,6 @@ services: - arkd: - image: asoltys/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 - tb: - image: ghcr.io/tigerbeetle/tigerbeetle:latest - 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 app: - image: asoltys/coinos-server + image: ghcr.io/coinos/base container_name: app depends_on: - db @@ -54,21 +16,19 @@ services: ports: - '3119:3119' volumes: - - .aws/:/root/.aws - ./:/home/bun/app - ./logs:/logs - ./data/bitcoin/bitcoin.conf:/bitcoin.conf - ./data/sockets:/sockets - - ./mklittlefs:/usr/bin/mklittlefs restart: always bc: - image: asoltys/bitcoin:28.0 + image: ghcr.io/coinos/bitcoin:30.2 container_name: bc volumes: - ./data/bitcoin:/home/bitcoin/.bitcoin restart: always lq: - image: asoltys/elements:23.2.4 + image: ghcr.io/coinos/elements:23.2.4 container_name: lq volumes: - ./data/liquid:/home/elements/.elements @@ -76,7 +36,7 @@ services: ports: - 7043:7040 cl: - image: elementsproject/lightningd:v25.12.1 + image: ghcr.io/coinos/lightningd:v25.12.1 container_name: cl environment: LIGHTNINGD_NETWORK: regtest @@ -87,7 +47,7 @@ services: - '1984:1984' restart: always clb: - image: elementsproject/lightningd:v25.05 + image: ghcr.io/coinos/lightningd:v25.12.1 container_name: clb environment: LIGHTNINGD_NETWORK: regtest @@ -95,7 +55,7 @@ services: - ./data/lightningb:/root/.lightning restart: always clc: - image: elementsproject/lightningd:v25.05 + image: ghcr.io/coinos/lightningd:v25.12.1 container_name: clc environment: LIGHTNINGD_NETWORK: regtest @@ -103,7 +63,7 @@ services: - ./data/lightningc:/root/.lightning restart: always db: - image: valkey/valkey:8.0 + image: valkey/valkey:8.0-alpine container_name: db ports: - '6379:6379' @@ -113,7 +73,7 @@ services: - ./data/db/valkey.conf:/etc/valkey/valkey.conf restart: always arc: - image: apache/kvrocks + image: ghcr.io/coinos/kvrocks container_name: arc ports: - '6380:6379' @@ -121,30 +81,28 @@ services: 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: asoltys/strsrv - cap_add: - - SYS_PTRACE - security_opt: - - seccomp:unconfined + image: ghcr.io/coinos/strsrv volumes: - - ./strsrv:/app/strsrv - ./data/strfry/strfry.conf:/etc/strfry.conf - ./data/strfry/db:/app/strfry-db - ./data/sockets:/app/sockets ports: - "7777:7777" - mon: - container_name: mon - image: asoltys/mon - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - RUNE=S9ybLdb07sJLlsAXMM7k4wa-VBw2nZ-_6XQtIwT8maw9MA== cs: - image: ghcr.io/vulpemventures/nigiri-chopsticks:latest - container_name: cs + image: ghcr.io/coinos/chopsticks + container_name: cs command: - --wallet-name - coinos @@ -157,57 +115,13 @@ services: - --addr - 0.0.0.0:3000 depends_on: - - bc + - bc - eb restart: unless-stopped ports: - "3000:3000" - arkd-wallet: - restart: unless-stopped - 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 - ports: - - 32838:32838 - image: nicolasdorier/nbxplorer:2.5.30 - 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_VERBOSE=1 - - NBXPLORER_BIND=0.0.0.0:32838 - - NBXPLORER_TRIMEVENTS=10000 - - NBXPLORER_SIGNALFILESDIR=/datadir - - NBXPLORER_POSTGRES=User ID=postgres;Host=pgnbxplorer;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorer - - NBXPLORER_EXPOSERPC=1 - - NBXPLORER_NOAUTH=1 - volumes: - - type: tmpfs - target: /datadir - depends_on: - pgnbxplorer: - condition: service_healthy eb: - image: ghcr.io/vulpemventures/electrs:latest + image: ghcr.io/coinos/electrs container_name: eb entrypoint: - /build/electrs @@ -233,114 +147,94 @@ services: volumes: - ./data/bitcoin:/config restart: unless-stopped - # el: - # image: vulpemventures/electrs-liquid:latest - # container_name: el - # entrypoint: - # - /build/electrs - # command: - # - --jsonrpc-import - # - -vvvv - # - --parent-network - # - regtest - # - --network - # - liquidregtest - # - --daemon-dir - # - /config - # - --daemon-rpc-addr - # - lq:7040 - # - --cookie - # - admin1:123 - # - --http-addr - # - 0.0.0.0:3002 - # - --electrum-rpc-addr - # - 0.0.0.0:60401 - # - --cors - # - "*" + # ── 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: - # - lq + # - arkd-wallet # ports: - # - '3003:3002' + # - "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 - mint: - image: asoltys/nutshell:main - container_name: mint - ports: - - "3338:3338" - environment: - - MINT_RPC_SERVER_ENABLE=TRUE - - MINT_RPC_SERVER_ADDR=localhost - - MINT_RPC_SERVER_PORT=8086 - - MINT_RPC_SERVER_KEY=./server_private.pem - - MINT_RPC_SERVER_CERT=./server_cert.pem - - MINT_RPC_SERVER_CA=./ca_cert.pem - - MINT_CLNREST_URL=http://cl:3010 - - MINT_CLNREST_RUNE=S9ybLdb07sJLlsAXMM7k4wa-VBw2nZ-_6XQtIwT8maw9MA== - - MINT_BACKEND_BOLT11_SAT=CLNRestWallet - - MINT_INFO_CONTACT=[["email","support@coinos.io"],["twitter","@coinoswallet"],["nostr","npub1h2qfjpnxau9k7ja9qkf50043xfpfy8j5v60xsqryef64y44puwnq28w8ch"]] - - MINT_INFO_ICON_URL="https://coinos.io/images/icon.png" - # - MINT_BACKEND_BOLT11_SAT=FakeWallet - - MINT_LISTEN_HOST=0.0.0.0 - - MINT_LISTEN_PORT=3338 - - MINT_PRIVATE_KEY=TEST_PRIVATE_KEY - - MINT_CLNREST_COINOS_URL=http://app:3119 - - MINT_CLNREST_COINOS_JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI4MDE4NmMwLWQzODktNDViZS1iOGI2LWM4N2EwN2VlNjA5ZiIsImlhdCI6MTc0MTgwNDQyN30.oDDQeHN2CxjAOSOa6x75La8mQYnozkuSbVrBnTTto4A - command: ["poetry", "run", "mint"] - volumes: - - "/home/adam/nutshell:/app" - - "./data/mint:/app/data/mint" - # mintb: - # image: asoltys/nutshell - # container_name: mintb + # image: asoltys/arkd-wallet + # build: + # context: . + # dockerfile: wallet.Dockerfile + # container_name: arkd-wallet + # depends_on: + # - nbxplorer # ports: - # - "3339:3338" + # - "6060:6060" # environment: - # - MINT_CLNREST_URL=http://clb:3010 - # - MINT_CLNREST_RUNE=kTyXJ6yJwESVezCl4yB4z0zGMjXi11qggnKRQ4nnc2Y9MA== - # - MINT_BACKEND_BOLT11_SAT=CLNRestWallet - # # - MINT_BACKEND_BOLT11_SAT=FakeWallet - # - MINT_LISTEN_HOST=0.0.0.0 - # - MINT_LISTEN_PORT=3338 - # - MINT_PRIVATE_KEY=TEST_PRIVATE_KEYB - # - MINT_CLNREST_COINOS_URL=http://app:3119 - # - MINT_CLNREST_COINOS_JWT=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjYTM0YWU4LTdiMTItNDU4OS04ODMyLTUyMTNjOWVhMjc5NyIsImlhdCI6MTcyNDA0NjI3OH0.bdX1YLnpgqpjmjrkCdIdDbdmZUdViNSVrAJ0OX3ByPo - # command: ["poetry", "run", "mint"] + # - 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: - # - "/home/adam/nutshell:/app" - # - "./data/mint:/app/data/mint" - # - wallet: - image: asoltys/nutshell - container_name: wallet - ports: - - "4448:4448" - depends_on: - - mint - environment: - - MINT_URL=http://mint:3338 - - API_HOST=0.0.0.0 - command: ["poetry", "run", "cashu", "-d"] - pgnbxplorer: - restart: unless-stopped - image: postgres:16 - container_name: pgnbxplorer - ports: - - 5432:5432 - 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: + # - ./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 -- cgit v1.2.3