- 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.
122 lines
3.1 KiB
Markdown
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
|