archy/DEPLOYMENT_CHECKLIST.md
Dorian 7069b20064 Update README and configuration for macOS support
- 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.
2026-01-28 11:12:19 +00:00

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.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

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:

  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: _________________