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

226 lines
5.6 KiB
Markdown

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