- 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.
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-addressfrom 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 progressstop-docker-apps.sh- Stop all containerstest-docker-setup.sh- Test with lightweight apps
5. Placeholder Apps ✓
Created placeholder pages for apps without direct images:
docker/endurain-placeholder/index.htmldocker/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:
- Start Docker Desktop (if needed)
- Download all images (~3-5GB, 10-30 min first time)
- Start all 13 apps in Docker
- 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:
- Grafana: http://localhost:3000
- Home Assistant: http://localhost:8123
- Mempool: http://localhost:4080
- Penpot: http://localhost:9001
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 definitionsstart-docker-apps.sh- Docker startup scriptstop-docker-apps.sh- Docker stop scripttest-docker-setup.sh- Testing scriptGETTING_STARTED.md- User guideDOCKER_DEV_SETUP.md- Technical docsdocker/endurain-placeholder/index.htmldocker/morphos-placeholder/index.html
Modified Files
neode-ui/src/views/Apps.vue- Added sorting, launch logicneode-ui/src/utils/dummyApps.ts- Updated portsneode-ui/start-dev.sh- Added Docker integrationneode-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
- ✅ Test the setup:
npm start - ✅ Open http://localhost:8100
- ✅ Navigate to "My Apps"
- ✅ 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
- Quick Start: See GETTING_STARTED.md
- Technical Details: See DOCKER_DEV_SETUP.md
- Architecture: See .cursor/rules/Architecture.mdc
🐛 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 composecommands 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