archy/DOCKER_SETUP_COMPLETE.md
Dorian 7afefafec1 Update README and API for Docker integration and app management
- Revised README.md to clarify the use of Docker alongside Podman for containerization.
- Updated API documentation to reflect new RPC endpoints, including `auth.logout`.
- Enhanced WebSocket handling in the API for better connection management.
- Modified Neode UI to utilize a curated list of Docker-based applications, replacing previous Start9 registry calls.
- Improved error handling and logging in the marketplace for better user experience.
2026-01-27 22:55:20 +00:00

7.3 KiB

Development Environment Setup - Complete

What's Been Accomplished

1. Docker Compose Configuration ✓

Created docker-compose.yml with all 13 apps:

Bitcoin & Lightning:

  • Bitcoin Core (regtest mode, port 18443)
  • LND Lightning Network (ports 8080, 9735, 10009)
  • BTCPay Server (port 14142)
  • Mempool Explorer (port 4080)
  • Fedimint (port 8173)

Self-Hosted Services:

  • Home Assistant (port 8123)
  • Grafana (port 3000)
  • SearXNG (port 8082)
  • Ollama AI (port 11434)

Collaboration:

  • OnlyOffice (port 8083)
  • Penpot (port 9001)

Placeholders:

  • Endurain (port 8084)
  • MorphOS Server (port 8081)

2. App Definitions Updated ✓

Updated neode-ui/src/utils/dummyApps.ts:

  • Corrected ports for all Docker containers
  • All apps configured with proper LAN addresses
  • Apps sorted alphabetically in the UI

3. UI Improvements ✓

Updated neode-ui/src/views/Apps.vue:

  • Apps always display alphabetically by title
  • Order stable regardless of running/stopped state
  • Launch button opens apps at correct Docker ports
  • Reads lan-address from app manifest

4. Startup Scripts ✓

Main startup: neode-ui/start-dev.sh

  • Checks Docker status
  • Starts all Docker containers
  • Starts mock backend
  • Starts Vite dev server
  • All in one command: npm start

Main stop: neode-ui/stop-dev.sh

  • Stops Vite and backend
  • Stops all Docker containers
  • All in one command: npm stop

Docker management scripts:

  • start-docker-apps.sh - Start all containers with progress
  • stop-docker-apps.sh - Stop all containers
  • test-docker-setup.sh - Test with lightweight apps

5. Placeholder Apps ✓

Created placeholder pages for apps without direct images:

  • docker/endurain-placeholder/index.html
  • docker/morphos-placeholder/index.html

6. Documentation ✓

Getting Started Guide: GETTING_STARTED.md

  • Step-by-step setup instructions
  • Common tasks and troubleshooting
  • Quick reference for all apps

Detailed Docs: DOCKER_DEV_SETUP.md

  • Complete architecture explanation
  • Configuration details
  • Advanced usage
  • Development workflow

🚀 How to Use

First Time Setup

cd neode-ui
npm install
npm start

This will:

  1. Start Docker Desktop (if needed)
  2. Download all images (~3-5GB, 10-30 min first time)
  3. Start all 13 apps in Docker
  4. Start the UI dev server

Daily Development

cd neode-ui
npm start    # Start everything
npm stop     # Stop everything

Access Apps

UI Dashboard: http://localhost:8100

Direct Access Examples:

See GETTING_STARTED.md for complete list.

📊 Architecture

┌─────────────────────────────────────────────┐
│          Neode UI (Vue.js)                  │
│          http://localhost:8100              │
└─────────────┬───────────────────────────────┘
              │
              ├─► Mock Backend (Node.js, port 5959)
              │
              └─► Docker Containers
                  ├─► Bitcoin Core (regtest)
                  ├─► LND (Lightning)
                  ├─► BTCPay Server
                  ├─► Mempool
                  ├─► Home Assistant
                  ├─► Grafana
                  ├─► And 7 more apps...
                  └─► All on archy-net network

🎯 Key Features

Alphabetical Sorting

Apps in "My Apps" always display A-Z, regardless of state:

  • Bitcoin Core
  • BTCPay Server
  • Endurain
  • Fedimint
  • Grafana
  • Home Assistant
  • Lightning Stack
  • Mempool
  • MorphOS Server
  • Ollama
  • OnlyOffice
  • Penpot
  • SearXNG

No Blockchain Sync

  • Bitcoin Core runs in regtest mode
  • LND connects without real blockchain
  • Can generate test blocks instantly
  • Saves ~500GB+ of storage
  • Perfect for development

Production-Like

  • Same apps as production will use
  • Docker containers (like Podman in prod)
  • All services isolated
  • Proper networking
  • Can test dependencies

Start/Stop Control

From UI:

  • Launch button opens apps
  • Start/Stop buttons (UI ready, backend TBD)

From CLI:

docker compose stop bitcoin    # Stop one app
docker compose start bitcoin   # Start one app
docker compose restart lnd     # Restart an app

Easy Development

  • Hot reload for UI changes
  • View logs: docker compose logs -f [app]
  • Reset data: docker compose down -v
  • Update images: docker compose pull

📝 Files Changed/Created

New Files

  • docker-compose.yml - All app definitions
  • start-docker-apps.sh - Docker startup script
  • stop-docker-apps.sh - Docker stop script
  • test-docker-setup.sh - Testing script
  • GETTING_STARTED.md - User guide
  • DOCKER_DEV_SETUP.md - Technical docs
  • docker/endurain-placeholder/index.html
  • docker/morphos-placeholder/index.html

Modified Files

  • neode-ui/src/views/Apps.vue - Added sorting, launch logic
  • neode-ui/src/utils/dummyApps.ts - Updated ports
  • neode-ui/start-dev.sh - Added Docker integration
  • neode-ui/stop-dev.sh - Added Docker cleanup

🔄 Development Workflow

Start Working

cd archy/neode-ui
npm start

Make Changes

Edit files in src/, browser auto-reloads

View Logs

docker compose logs -f bitcoin

Stop Working

npm stop

Fresh Start

docker compose down -v
npm start

🎉 Next Steps

Immediate

  1. Test the setup: npm start
  2. Open http://localhost:8100
  3. Navigate to "My Apps"
  4. Click "Launch" on apps

Short Term

  • Connect backend API to Docker API
  • Implement real start/stop from UI
  • Add health check indicators
  • Show container logs in UI

Medium Term

  • Add app configuration UI
  • Implement backup/restore
  • Add resource monitoring
  • Create app marketplace

Long Term

  • Build Alpine Linux image
  • Integrate Podman
  • Add Tor support
  • Production deployment

📚 Documentation

🐛 Known Issues

First Run

  • Image download takes 10-30 minutes
  • Some apps need time to initialize
  • Fedimint needs guardian setup (not implemented yet)

Current Limitations

  • Start/Stop buttons in UI don't call Docker yet (need backend)
  • No health monitoring yet
  • No log viewing in UI yet
  • Bitcoin/Lightning not fully configured for channels

Workarounds

  • Use docker compose commands for now
  • Check logs with docker compose logs -f
  • Restart manually if apps don't respond

What's Working

All 13 apps defined in docker-compose
Apps display alphabetically in UI
Launch button opens correct ports
Placeholder pages for incomplete apps
One-command startup: npm start
One-command shutdown: npm stop
Bitcoin in regtest (no sync needed)
LND connected to Bitcoin
Complete documentation
Development workflow established


🎊 Ready to develop! Run npm start and open http://localhost:8100