# Archipelago v0.1.0 - macOS Production Deployment ## Pre-Deployment Checklist ### 1. Code Preparation - [ ] All features complete and tested - [ ] No debug code or console.logs in production - [ ] All TODOs resolved or documented - [ ] Git repository clean (`git status`) - [ ] Version bumped in: - [ ] `core/archipelago/Cargo.toml` - [ ] `neode-ui/package.json` - [ ] `build-macos-production.sh` (ARCHIPELAGO_VERSION) ### 2. Security Review - [ ] No hardcoded secrets or API keys - [ ] Production `.env` template created - [ ] Secure default configurations - [ ] Authentication enabled - [ ] CORS configured properly - [ ] Rate limiting enabled - [ ] Input validation on all endpoints ### 3. Testing - [ ] Backend builds successfully: `cd core && cargo build --release` - [ ] Frontend builds successfully: `cd neode-ui && npm run build` - [ ] All Docker containers start: `docker-compose up -d` - [ ] Web UI accessible on http://localhost:8100 - [ ] Bitcoin Core UI accessible on http://localhost:18445 - [ ] LND UI accessible on http://localhost:8085 - [ ] Penpot launches correctly - [ ] Endurain launches correctly - [ ] Morphos launches correctly - [ ] Nextcloud launches correctly - [ ] No console errors in browser - [ ] WebSocket connection stable - [ ] App restart works correctly ### 4. Build Preparation - [ ] Dependencies up to date: - [ ] `cd neode-ui && npm audit fix` - [ ] `cd core && cargo update` - [ ] Build scripts executable: - [ ] `chmod +x build-macos-production.sh` - [ ] `chmod +x manage-docker.sh` - [ ] Icon prepared (`logo.png` in `neode-ui/public/assets/img/`) - [ ] Build directory clean: `rm -rf build/macos` ### 5. Documentation - [ ] README.md updated - [ ] BUILD_MACOS.md reviewed - [ ] CHANGELOG.md created with release notes - [ ] Installation instructions tested - [ ] Troubleshooting guide updated ## Build Process ### 1. Run Production Build ```bash export ARCHIPELAGO_VERSION="0.1.0" ./build-macos-production.sh ``` Expected output: ``` ✅ Production build complete! 📦 Build artifacts: • App Bundle: build/macos/Archipelago.app • DMG Installer: build/macos/Archipelago-0.1.0-macOS.dmg 📋 Build summary: • Backend: [size] (Rust) • Frontend: [size] (Vue.js) • Total Bundle: [size] ``` ### 2. Test the Build ```bash # Test app launch open build/macos/Archipelago.app # Check it opens on http://localhost:8100 # Verify all features work ``` ### 3. Code Signing (Required for Distribution) ```bash # Sign the app codesign --deep --force --verify --verbose \ --sign "Developer ID Application: Your Name (TEAMID)" \ --options runtime \ build/macos/Archipelago.app # Verify signature codesign --verify --verbose build/macos/Archipelago.app spctl --assess --verbose build/macos/Archipelago.app ``` ### 4. Notarization (macOS 10.15+) ```bash # Create signed zip ditto -c -k --keepParent build/macos/Archipelago.app Archipelago.zip # Submit for notarization xcrun notarytool submit Archipelago.zip \ --apple-id "your@email.com" \ --team-id "TEAMID" \ --password "app-specific-password" \ --wait # Get submission status xcrun notarytool info SUBMISSION_ID \ --apple-id "your@email.com" \ --team-id "TEAMID" \ --password "app-specific-password" # Staple the ticket xcrun stapler staple build/macos/Archipelago.app # Create notarized DMG hdiutil create -volname "Archipelago $ARCHIPELAGO_VERSION" \ -srcfolder build/macos/Archipelago.app \ -ov -format UDZO \ build/macos/$DMG_NAME xcrun stapler staple build/macos/$DMG_NAME ``` ### 5. Final Verification ```bash # Verify notarization spctl --assess --type execute --verbose build/macos/Archipelago.app # Test DMG hdiutil attach build/macos/Archipelago-0.1.0-macOS.dmg # Verify contents hdiutil detach /Volumes/Archipelago* ``` ## Distribution ### Direct Distribution Upload `Archipelago-0.1.0-macOS.dmg` to: - [ ] GitHub Releases - [ ] Your website download page - [ ] Update download links ### GitHub Release ```bash # Tag the release git tag -a v0.1.0 -m "Archipelago v0.1.0 - Initial macOS Release" git push origin v0.1.0 # Create GitHub release gh release create v0.1.0 \ build/macos/Archipelago-0.1.0-macOS.dmg \ --title "Archipelago v0.1.0" \ --notes "See CHANGELOG.md for details" ``` ## Post-Deployment ### 1. Monitoring - [ ] Set up analytics/crash reporting (optional) - [ ] Monitor GitHub issues for bugs - [ ] Check installation feedback ### 2. Documentation - [ ] Update website with new version - [ ] Announce on social media - [ ] Update documentation links ### 3. Support - [ ] Create installation video tutorial - [ ] Prepare FAQ document - [ ] Set up support channels (Discord, GitHub Discussions) ## Rollback Plan If critical issues are discovered: 1. **Remove from download page immediately** 2. **Post warning on GitHub releases** 3. **Prepare hotfix release** 4. **Communicate with users** ## Known Limitations - v0.1.0 - Requires Docker Desktop (not native containers) - Ollama removed due to size constraints - Manual Docker configuration required - No auto-updates (yet) - Single-user mode only ## Future Improvements - [ ] Auto-updater integration - [ ] Native container runtime (no Docker Desktop required) - [ ] Multi-user support - [ ] Mac App Store distribution - [ ] Homebrew formula: `brew install --cask archipelago` - [ ] Background service mode (launch daemon) ## Team Sign-off Before release: - [ ] Developer approval - [ ] QA approval - [ ] Security review - [ ] Legal review (licenses, copyright) - [ ] Release manager approval --- **Build Date**: _________________ **Built By**: _________________ **Tested By**: _________________ **Approved By**: _________________