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

122 lines
3.1 KiB
Markdown

# 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
### Automatic (Recommended)
```bash
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)
```bash
# 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
```bash
docker ps
```
### View logs
```bash
docker compose logs -f bitcoin
docker compose logs -f btcpay
```
### Stop all containers
```bash
cd /Users/dorian/Projects/archy
./stop-docker-apps.sh
# OR
docker compose down
```
### Restart a specific container
```bash
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
## Related Files
- `/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