AeThex-OS/DISTRIBUTION_SETUP.md
2026-02-12 12:42:48 -07:00

302 lines
7.1 KiB
Markdown

# AeThex OS Distribution - Complete Setup Guide
## 🎯 Overview
You now have a complete Roblox-style distribution system with:
- ✅ Beautiful download page at `/download`
- ✅ Server API endpoints for downloading installers
- ✅ Auto-update system built into desktop app
- ✅ Web launcher for one-click installs
- ✅ Marketing materials and embed codes
## 📦 Build the Production Installer
Before users can download, you need to build the production installer:
```bash
# Build desktop app (takes ~5-10 minutes first time)
cd shell/aethex-shell
npm run tauri build
# Creates two installers:
# 1. shell/aethex-shell/src-tauri/target/release/bundle/nsis/AeThex-OS_0.1.0_x64-setup.exe (2.5 MB)
# 2. shell/aethex-shell/src-tauri/target/release/bundle/msi/AeThex-OS_0.1.0_x64_en-US.msi (3.7 MB)
```
## 🚀 Server Setup
### 1. Start Your Server
```bash
# From project root
npm run dev
# Server runs on: http://localhost:5000
# React app: http://localhost:5000/download
```
### 2. API Endpoints (Automatic)
These endpoints are already configured:
```
http://localhost:5000/api/download/desktop → NSIS installer
http://localhost:5000/api/download/desktop/msi → MSI installer
http://localhost:5000/api/download/version → Version info (for auto-updates)
```
## 🌐 How Users Install
### Method 1: Website Download Page
```
User visits: http://localhost:5000/download
Clicks: "Download for Windows"
Downloads: AeThex-OS-setup.exe
Runs installer → App installed!
```
### Method 2: Direct Download Link
```
User clicks: http://localhost:5000/api/download/desktop
Browser downloads installer immediately
```
### Method 3: Web Launcher (Auto-start)
```
User visits: http://localhost:5000/launcher.html?autoinstall=true
Download starts automatically
```
## 🔄 Auto-Update System
The desktop app automatically checks for updates:
### How It Works
1. On launch, app checks: `https://aethex.dev/api/download/version`
2. Compares current version (0.1.0) with latest version
3. If new version available, shows update dialog
4. User clicks "Update" → downloads and installs new version
### To Release an Update
1. **Increment version** in `shell/aethex-shell/package.json`:
```json
{
"version": "0.2.0"
}
```
2. **Rebuild** the installer:
```bash
cd shell/aethex-shell
npm run tauri build
```
3. **Deploy** new installers to your server
4. **Users get notified** automatically on next launch
## 🎨 Marketing Materials
All created in `MARKETING_MATERIALS.md`:
### Social Media Posts
- ✅ Twitter/X post
- ✅ LinkedIn announcement
- ✅ Discord message
- ✅ Reddit post
### Embed Codes
- ✅ HTML buttons
- ✅ JavaScript widgets
- ✅ React components
- ✅ Email signatures
All embed codes in `EMBED_CODES.html`
## 📊 Testing Locally
### 1. Test Download Page
```bash
# Start server
npm run dev
# Visit in browser
http://localhost:5000/download
# Click "Download for Windows"
# Should see 404 if installer not built yet
```
### 2. Build Installer (Recommended)
```bash
cd shell/aethex-shell
npm run tauri build
# Wait 5-10 minutes
# Installer will be created at:
# src-tauri/target/release/bundle/nsis/AeThex-OS_0.1.0_x64-setup.exe
```
### 3. Test Download Again
```bash
# Restart server if needed
npm run dev
# Visit download page
http://localhost:5000/download
# Click "Download for Windows"
# Should download AeThex-OS-setup.exe
```
## 🌍 Production Deployment
### Option 1: Deploy to aethex.dev (Recommended)
1. **Build installer locally**:
```bash
cd shell/aethex-shell
npm run tauri build
```
2. **Deploy to your server** (Railway, Vercel, etc.)
```bash
git add .
git commit -m "feat: add download system and installers"
git push
```
3. **Upload installers** to your server or CDN
- Option A: Commit installers to repo (not recommended, large files)
- Option B: Upload to S3/R2/DigitalOcean Spaces
- Option C: Host on GitHub Releases
### Option 2: Use GitHub Releases
1. **Create release on GitHub**:
```bash
git tag v0.1.0
git push origin v0.1.0
```
2. **Upload installers** to GitHub release page
3. **Update download routes** in `server/download-routes.ts`:
```typescript
const installerPath = 'https://github.com/[username]/[repo]/releases/download/v0.1.0/AeThex-OS-setup.exe';
```
### Option 3: CDN Hosting
1. **Upload to CDN** (Cloudflare R2, AWS S3, DigitalOcean Spaces)
2. **Update download routes** to point to CDN URLs:
```typescript
const installerPath = 'https://cdn.aethex.dev/downloads/AeThex-OS-setup.exe';
```
## 🔐 Production Checklist
Before going live:
- [ ] Build production installer (`npm run tauri build`)
- [ ] Test download locally
- [ ] Choose hosting method (GitHub Releases / CDN / Server)
- [ ] Update production URLs in code if needed
- [ ] Test auto-update system
- [ ] Verify installers work on clean Windows machine
- [ ] Set up analytics tracking
- [ ] Prepare social media posts
- [ ] Create launch announcement
## 📈 Analytics & Monitoring
### Track Downloads
Add to your download page (`client/src/pages/download.tsx`):
```typescript
const handleDownload = async () => {
// Track with your analytics
gtag('event', 'download_start', {
event_category: 'installer',
event_label: 'windows_desktop'
});
// ... download logic
};
```
### Monitor Active Users
The `/api/download/version` endpoint logs all update checks:
- Track how many users check for updates
- Monitor active installations
- Track update adoption rate
## 🎬 Launch Strategy
### Week Before Launch
1. Build and test installer thoroughly
2. Set up hosting infrastructure
3. Prepare social media posts
4. Notify mailing list subscribers
### Launch Day
1. Deploy download system
2. Post on all social media channels
3. Share on Reddit, Hacker News, IndieHackers
4. Email announcement to users
5. Monitor download metrics
### Week After Launch
1. Gather user feedback
2. Fix critical bugs
3. Share success metrics
4. Plan first update (v0.2.0)
## 🆘 Troubleshooting
### "Port 1420 already in use"
```bash
# Kill the process
taskkill //F //PID [process-id-from-netstat]
```
### "Installer not found" error
```bash
# Build the installer first
cd shell/aethex-shell
npm run tauri build
```
### Download fails in browser
- Check if installer exists at expected path
- Verify server has read permissions
- Check browser console for errors
- Test direct API endpoint: `http://localhost:5000/api/download/desktop`
### Auto-update not working
- Verify `tauri.conf.json` updater endpoint is correct
- Check version endpoint returns valid JSON
- Ensure app has internet connection
- Look at console logs in desktop app
## 📞 Support & Help
- **Documentation**: See `MARKETING_MATERIALS.md` for full guide
- **Embed Codes**: See `EMBED_CODES.html` for ready-to-use code
- **Issues**: File bugs on GitHub
- **Community**: Discord server
---
**Next Steps:**
1. Build the production installer: `cd shell/aethex-shell && npm run tauri build`
2. Test download locally: `npm run dev` → visit `http://localhost:5000/download`
3. Deploy to production when ready
**Built:** 2026-02-12
**Version:** MVP Distribution System
**Status:** Ready for Testing ✅