- 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.
226 lines
5.6 KiB
Markdown
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**: _________________
|