archy/DEV_MODE_2_DOCKER_FIX.md
Dorian 30ed48ad1b Enhance Docker integration and API for container management
- Implemented Docker container scanning and periodic updates in the Server initialization.
- Added new RPC endpoints for managing Docker containers, including start, stop, and restart functionalities.
- Updated the API to handle package management for Docker-based applications.
- Improved environment variable handling for user-specific configurations in Podman and Docker clients.
- Enhanced the development startup script to include Docker container management and provide clearer instructions for full stack setup.
2026-01-27 23:21:26 +00:00

3.1 KiB

Dev Mode 2 - Docker Integration Fix

Problem

When running scripts/dev-start.sh and selecting option 2 (Full stack), the Docker containers (including Bitcoin Core) were not automatically started. The script only started the Rust backend and Vue frontend.

Solution

Updated scripts/dev-start.sh to automatically call start-docker-apps.sh before starting the backend and frontend.

What Changed

/Users/dorian/Projects/archy/scripts/dev-start.sh

Mode 2 (Full stack) now:

  1. Starts Docker containers first (start-docker-apps.sh)
  2. Starts Rust backend with Docker runtime enabled
  3. Starts Vue frontend
  4. Shows helpful message that Docker containers keep running

Manual instructions (option 6) now:

  • Shows Docker startup as Terminal 1
  • Shows correct environment variables
  • Shows how to stop Docker apps

How to Use

cd /Users/dorian/Projects/archy
./scripts/dev-start.sh
# Choose option 2: Full stack

This will now:

  1. Start all 13 Docker apps (Bitcoin Core, BTCPay, LND, Mempool, etc.)
  2. Start the Rust backend with Docker scanning enabled
  3. Start the Vue frontend
  4. Open http://localhost:8100

Manual (Advanced)

# Terminal 1: Docker Apps
cd /Users/dorian/Projects/archy
./start-docker-apps.sh

# Terminal 2: Backend
cd /Users/dorian/Projects/archy/core
export ARCHIPELAGO_CONTAINER_RUNTIME=docker
export ARCHIPELAGO_DEV_MODE=true
cargo run --bin archipelago

# Terminal 3: Frontend
cd /Users/dorian/Projects/archy/neode-ui
npm run dev

Docker Container Management

View running containers

docker ps

View logs

docker compose logs -f bitcoin
docker compose logs -f btcpay

Stop all containers

cd /Users/dorian/Projects/archy
./stop-docker-apps.sh
# OR
docker compose down

Restart a specific container

docker compose restart bitcoin

Bitcoin Core Status

Bitcoin Core is now:

  • Running in Docker container archy-bitcoin
  • Accessible on RPC port 18443
  • In regtest mode (no blockchain sync)
  • Scanned by Rust backend every 5 seconds
  • Displayed in "My Apps" section
  • Launch button opens custom glassmorphism UI in new tab

Architecture Flow

dev-start.sh (mode 2)
    ↓
start-docker-apps.sh
    ↓
docker-compose.yml (starts all 13 apps)
    ↓
Rust backend (scans Docker containers)
    ↓
Vue frontend (displays apps with real status)

Notes

  • Docker containers keep running even after Ctrl+C
  • This is intentional for faster restarts
  • Use docker compose down or ./stop-docker-apps.sh to stop them
  • First run will download ~3-5GB of Docker images
  • Subsequent runs are instant
  • /Users/dorian/Projects/archy/scripts/dev-start.sh - Main dev launcher
  • /Users/dorian/Projects/archy/start-docker-apps.sh - Docker startup
  • /Users/dorian/Projects/archy/stop-docker-apps.sh - Docker shutdown
  • /Users/dorian/Projects/archy/docker-compose.yml - All 13 apps
  • /Users/dorian/Projects/archy/core/archipelago/src/container/docker_packages.rs - Docker scanner
  • /Users/dorian/Projects/archy/neode-ui/public/bitcoin-core.html - Bitcoin Core UI