- Revamped README.md to enhance clarity and detail on features, installation, and system requirements for Archipelago. - Added macOS-specific configuration in `config.rs` to detect when running from a macOS app bundle, adjusting data directory paths accordingly. - Introduced a new production build script in `package.json` for optimized deployment of the Neode UI.
5.6 KiB
5.6 KiB
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.tomlneode-ui/package.jsonbuild-macos-production.sh(ARCHIPELAGO_VERSION)
2. Security Review
- No hardcoded secrets or API keys
- Production
.envtemplate 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 fixcd core && cargo update
- Build scripts executable:
chmod +x build-macos-production.shchmod +x manage-docker.sh
- Icon prepared (
logo.pnginneode-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
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
# 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)
# 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+)
# 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
# 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
# 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:
- Remove from download page immediately
- Post warning on GitHub releases
- Prepare hotfix release
- 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: _________________