Switch docker-compose from regtest to signet, add standalone testnet stack (docker-compose.testnet.yml) with Bitcoin+LND+ThunderHub+Fedimint. Mock backend now auto-detects Podman/Docker sockets and includes full LND/Lightning RPC mocks. Dev scripts refactored with boot mode, testnet option, and macOS EAGAIN fix for port cleanup. Added dev faucet button to Home.vue. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
148 lines
4.1 KiB
YAML
148 lines
4.1 KiB
YAML
# Archipelago Lightning Testnet Stack (Signet)
|
|
# Real Bitcoin signet + LND + ThunderHub for testing Lightning features
|
|
#
|
|
# Start: docker compose -f docker-compose.testnet.yml up -d
|
|
# Stop: docker compose -f docker-compose.testnet.yml down
|
|
# Logs: docker compose -f docker-compose.testnet.yml logs -f
|
|
#
|
|
# First run: signet blockchain syncs in ~10 minutes (~200MB)
|
|
# LND wallet auto-created with --noseedbackup (dev only!)
|
|
#
|
|
# Access:
|
|
# ThunderHub: http://localhost:3010 (password: thunderhub)
|
|
# LND REST: http://localhost:8080
|
|
# LND gRPC: localhost:10009
|
|
# Bitcoin RPC: localhost:38332 (user: bitcoin, pass: bitcoinpass)
|
|
#
|
|
# Get signet coins: https://signetfaucet.com or https://alt.signetfaucet.com
|
|
|
|
services:
|
|
# Bitcoin Core — signet mode (lightweight testnet, ~200MB sync)
|
|
bitcoind-signet:
|
|
image: lncm/bitcoind:v27.0
|
|
container_name: archy-bitcoind-signet
|
|
ports:
|
|
- "38332:38332" # RPC
|
|
- "38333:38333" # P2P
|
|
volumes:
|
|
- signet-bitcoin-data:/data/.bitcoin
|
|
command: |
|
|
-signet
|
|
-server
|
|
-rpcuser=bitcoin
|
|
-rpcpassword=bitcoinpass
|
|
-rpcallowip=0.0.0.0/0
|
|
-rpcbind=0.0.0.0
|
|
-rpcport=38332
|
|
-txindex=1
|
|
-zmqpubrawblock=tcp://0.0.0.0:28332
|
|
-zmqpubrawtx=tcp://0.0.0.0:28333
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "bitcoin-cli", "-signet", "-rpcuser=bitcoin", "-rpcpassword=bitcoinpass", "-rpcport=38332", "getblockchaininfo"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 30s
|
|
networks:
|
|
- signet-net
|
|
|
|
# LND — connected to signet bitcoind
|
|
lnd-signet:
|
|
image: lightninglabs/lnd:v0.17.4-beta
|
|
container_name: archy-lnd-signet
|
|
ports:
|
|
- "9735:9735" # P2P (Lightning)
|
|
- "8080:8080" # REST API
|
|
- "10009:10009" # gRPC
|
|
volumes:
|
|
- signet-lnd-data:/root/.lnd
|
|
command: |
|
|
--bitcoin.active
|
|
--bitcoin.signet
|
|
--bitcoin.node=bitcoind
|
|
--bitcoind.rpchost=bitcoind-signet:38332
|
|
--bitcoind.rpcuser=bitcoin
|
|
--bitcoind.rpcpass=bitcoinpass
|
|
--bitcoind.zmqpubrawblock=tcp://bitcoind-signet:28332
|
|
--bitcoind.zmqpubrawtx=tcp://bitcoind-signet:28333
|
|
--debuglevel=info
|
|
--rpclisten=0.0.0.0:10009
|
|
--restlisten=0.0.0.0:8080
|
|
--listen=0.0.0.0:9735
|
|
--alias=archy-signet
|
|
--color=#f7931a
|
|
--noseedbackup
|
|
--accept-keysend
|
|
--gc-canceled-invoices-on-startup
|
|
depends_on:
|
|
bitcoind-signet:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "lncli", "--network=signet", "getinfo"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
networks:
|
|
- signet-net
|
|
|
|
# ThunderHub — Lightning node management UI
|
|
thunderhub-signet:
|
|
image: apotdevin/thunderhub:v0.13.31
|
|
container_name: archy-thunderhub-signet
|
|
ports:
|
|
- "3010:3000"
|
|
volumes:
|
|
- signet-lnd-data:/lnd-data:ro
|
|
- ./testnet/thunderhub-config.yaml:/data/thubConfig.yaml:ro
|
|
environment:
|
|
ACCOUNT_CONFIG_PATH: /data/thubConfig.yaml
|
|
LOG_LEVEL: info
|
|
THEME: dark
|
|
CURRENCY: BTC
|
|
FETCH_PRICES: "false"
|
|
FETCH_FEES: "true"
|
|
depends_on:
|
|
lnd-signet:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
networks:
|
|
- signet-net
|
|
|
|
# Fedimint — signet mode (optional, for ecash testing)
|
|
fedimint-signet:
|
|
image: fedimint/fedimintd:v0.10.0
|
|
container_name: archy-fedimint-signet
|
|
platform: linux/amd64
|
|
ports:
|
|
- "18173:8173" # P2P
|
|
- "18174:8174" # API
|
|
- "18175:8175" # Guardian UI
|
|
volumes:
|
|
- signet-fedimint-data:/data
|
|
environment:
|
|
FM_BITCOIND_URL: http://bitcoind-signet:38332
|
|
FM_BITCOIND_USERNAME: bitcoin
|
|
FM_BITCOIND_PASSWORD: bitcoinpass
|
|
FM_BITCOIN_NETWORK: signet
|
|
FM_BIND_P2P: 0.0.0.0:8173
|
|
FM_BIND_API: 0.0.0.0:8174
|
|
FM_BIND_UI: 0.0.0.0:8175
|
|
depends_on:
|
|
bitcoind-signet:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
networks:
|
|
- signet-net
|
|
|
|
volumes:
|
|
signet-bitcoin-data:
|
|
signet-lnd-data:
|
|
signet-fedimint-data:
|
|
|
|
networks:
|
|
signet-net:
|
|
driver: bridge
|