2132
This commit is contained in:
329
docs/SITES_REMOVAL_QUICK_REFERENCE.md
Normal file
329
docs/SITES_REMOVAL_QUICK_REFERENCE.md
Normal file
@@ -0,0 +1,329 @@
|
||||
# Sites Container Removal - Quick Reference
|
||||
|
||||
**Version:** 1.0
|
||||
**Date:** November 29, 2025
|
||||
|
||||
> **Full Guide:** See [SITES_REMOVAL_GUIDE.md](./SITES_REMOVAL_GUIDE.md) for complete step-by-step instructions
|
||||
|
||||
---
|
||||
|
||||
## TL;DR - What Changes
|
||||
|
||||
### Current Architecture (3 Containers)
|
||||
```
|
||||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||
│ Frontend │ │ Sites │ │ Backend │
|
||||
│ Port: 8021 │ │ Port: 8024 │ │ Port: 8011 │
|
||||
│ │ │ - Site Builder │ │ │
|
||||
│ │ │ - Renderer │ │ │
|
||||
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||||
```
|
||||
|
||||
### Target Architecture (2 Containers)
|
||||
```
|
||||
┌─────────────────┐ ┌─────────────────┐
|
||||
│ Frontend │ │ Backend │
|
||||
│ Port: 8021 │ │ Port: 8011 │
|
||||
│ - Main App │ │ │
|
||||
│ - Site Builder │ │ │
|
||||
│ - Renderer │ │ │
|
||||
└─────────────────┘ └─────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## What Gets Removed
|
||||
|
||||
❌ **Deleted:**
|
||||
- `/sites/` folder (after copying to frontend)
|
||||
- `/site-builder/` folder (empty, deprecated)
|
||||
- `/frontend/src/modules/siteBuilder/` (empty)
|
||||
- `igny8_sites` Docker container
|
||||
- Port 8024
|
||||
|
||||
✅ **Kept:**
|
||||
- Backend `/api/v1/site-builder/` endpoints
|
||||
- Backend `/api/v1/publisher/` endpoints
|
||||
- Backend modules: `site_builder/`, `publisher/`
|
||||
- Backend business logic: `site_building/`, `publishing/`
|
||||
- Database tables (no changes)
|
||||
- `/data/app/sites-data/` directory
|
||||
|
||||
---
|
||||
|
||||
## What Gets Moved
|
||||
|
||||
### File Movements
|
||||
|
||||
| From (Sites Container) | To (Frontend) |
|
||||
|------------------------|---------------|
|
||||
| `sites/src/builder/pages/wizard/` | `frontend/src/pages/Sites/Builder/Wizard.tsx` |
|
||||
| `sites/src/builder/pages/preview/` | `frontend/src/pages/Sites/Builder/Preview.tsx` |
|
||||
| `sites/src/builder/pages/dashboard/` | `frontend/src/pages/Sites/Builder/Dashboard.tsx` |
|
||||
| `sites/src/builder/components/layout/` | `frontend/src/components/sites/BuilderLayout.tsx` |
|
||||
| `sites/src/pages/SiteRenderer.tsx` | `frontend/src/pages/Sites/PublicSiteRenderer.tsx` |
|
||||
| `sites/src/loaders/loadSiteDefinition.ts` | `frontend/src/services/siteRenderer.api.ts` |
|
||||
| `sites/src/utils/layoutRenderer.tsx` | `frontend/src/utils/siteRenderer/layoutRenderer.tsx` |
|
||||
| `sites/src/utils/pageTypeRenderer.tsx` | `frontend/src/utils/siteRenderer/pageTypeRenderer.tsx` |
|
||||
| `sites/src/utils/templateEngine.tsx` | `frontend/src/utils/siteRenderer/templateEngine.tsx` |
|
||||
|
||||
---
|
||||
|
||||
## Route Changes
|
||||
|
||||
### Site Builder Routes
|
||||
|
||||
| Old Route (Port 8024) | New Route (Port 8021) | Auth |
|
||||
|----------------------|----------------------|------|
|
||||
| `/builder` | `/sites/builder` | Required ✅ |
|
||||
| `/builder/preview` | `/sites/builder/preview` | Required ✅ |
|
||||
| `/builder/dashboard` | `/sites/builder/dashboard` | Required ✅ |
|
||||
|
||||
### Sites Renderer Routes
|
||||
|
||||
| Old Route (Port 8024) | New Route (Port 8021) | Auth |
|
||||
|----------------------|----------------------|------|
|
||||
| `/:siteSlug` | `/sites/view/:siteSlug` | None ❌ |
|
||||
| `/:siteSlug/:pageSlug` | `/sites/view/:siteSlug/:pageSlug` | None ❌ |
|
||||
|
||||
**⚠️ Important:** Public site URLs will change! Update any hardcoded links.
|
||||
|
||||
---
|
||||
|
||||
## Files to Update
|
||||
|
||||
### Critical Files (Must Update)
|
||||
|
||||
1. **`/frontend/src/App.tsx`**
|
||||
- Add site builder routes
|
||||
- Add public renderer routes
|
||||
- Add lazy imports
|
||||
|
||||
2. **`/docker-compose.app.yml`**
|
||||
- Remove `igny8_sites` service
|
||||
- Add `/sites-data` volume mount to `igny8_frontend`
|
||||
- Add `SITES_DATA_PATH` env var to `igny8_frontend`
|
||||
|
||||
3. **`/frontend/vite.config.ts`**
|
||||
- Add `SITES_DATA_PATH` environment variable
|
||||
|
||||
### Optional Files (Verify/Update)
|
||||
|
||||
4. **`/backend/igny8_core/settings.py`**
|
||||
- Verify CORS settings (remove port 8024)
|
||||
|
||||
5. **`/frontend/src/components/sidebar/AppSidebar.tsx`**
|
||||
- Add site builder menu items
|
||||
|
||||
---
|
||||
|
||||
## Critical Commands
|
||||
|
||||
### 1. Backup First
|
||||
```bash
|
||||
cd /data/app/igny8
|
||||
tar -czf backup-sites-$(date +%Y%m%d-%H%M%S).tar.gz sites/ site-builder/
|
||||
cp docker-compose.app.yml docker-compose.app.yml.backup
|
||||
```
|
||||
|
||||
### 2. Copy Files
|
||||
```bash
|
||||
# Create directories
|
||||
mkdir -p frontend/src/pages/Sites/Builder
|
||||
mkdir -p frontend/src/components/sites/builder
|
||||
mkdir -p frontend/src/utils/siteRenderer
|
||||
|
||||
# Copy builder pages
|
||||
cp sites/src/builder/pages/wizard/WizardPage.tsx frontend/src/pages/Sites/Builder/Wizard.tsx
|
||||
cp sites/src/builder/pages/preview/PreviewCanvas.tsx frontend/src/pages/Sites/Builder/Preview.tsx
|
||||
cp sites/src/builder/pages/dashboard/SiteDashboard.tsx frontend/src/pages/Sites/Builder/Dashboard.tsx
|
||||
|
||||
# Copy renderer
|
||||
cp sites/src/pages/SiteRenderer.tsx frontend/src/pages/Sites/PublicSiteRenderer.tsx
|
||||
cp sites/src/loaders/loadSiteDefinition.ts frontend/src/services/siteRenderer.api.ts
|
||||
|
||||
# Copy utilities
|
||||
cp -r sites/src/utils/* frontend/src/utils/siteRenderer/
|
||||
```
|
||||
|
||||
### 3. Rebuild & Restart
|
||||
```bash
|
||||
# Rebuild frontend
|
||||
cd /data/app/igny8/frontend
|
||||
docker build -t igny8-frontend-dev:latest -f Dockerfile.dev .
|
||||
|
||||
# Stop sites container
|
||||
docker stop igny8_sites
|
||||
docker rm igny8_sites
|
||||
|
||||
# Start updated frontend
|
||||
cd /data/app/igny8
|
||||
docker compose -f docker-compose.app.yml up -d igny8_frontend
|
||||
```
|
||||
|
||||
### 4. Test
|
||||
```bash
|
||||
# Test site builder (requires auth)
|
||||
curl -I http://localhost:8021/sites/builder
|
||||
|
||||
# Test public renderer
|
||||
curl -I http://localhost:8021/sites/view/test-site
|
||||
|
||||
# Check logs
|
||||
docker logs -f igny8_frontend
|
||||
```
|
||||
|
||||
### 5. Cleanup (After Verification)
|
||||
```bash
|
||||
cd /data/app/igny8
|
||||
rm -rf sites/
|
||||
rm -rf site-builder/
|
||||
rm -rf frontend/src/modules/siteBuilder/
|
||||
docker rmi igny8-sites-dev:latest
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Impact on Other Features
|
||||
|
||||
### ✅ No Impact (These Still Work)
|
||||
|
||||
| Feature | Why No Impact |
|
||||
|---------|---------------|
|
||||
| Planner module | Uses only backend API |
|
||||
| Writer module | Uses only backend API |
|
||||
| Linker module | Uses only backend API |
|
||||
| Optimizer module | Uses only backend API |
|
||||
| WordPress Publishing | Talks to backend, not affected |
|
||||
| Authentication | Frontend change only |
|
||||
| Billing/Credits | Backend only |
|
||||
| AI Content Generation | Backend/Celery only |
|
||||
|
||||
### ⚠️ Needs Update (After Migration)
|
||||
|
||||
| Feature | What to Update | Impact |
|
||||
|---------|----------------|--------|
|
||||
| Site Builder UI | Routes change to `/sites/builder/*` | Low - Internal only |
|
||||
| Public Site Links | URLs change to `/sites/view/{slug}` | Medium - External links |
|
||||
| Navigation Menu | Add site builder menu items | Low - UI only |
|
||||
| Tests | Update route tests if any | Low - Dev only |
|
||||
|
||||
---
|
||||
|
||||
## Docker Compose Changes
|
||||
|
||||
### Before (3 Services)
|
||||
```yaml
|
||||
services:
|
||||
igny8_frontend: # Port 8021
|
||||
igny8_sites: # Port 8024 ❌ REMOVE THIS
|
||||
igny8_backend: # Port 8011
|
||||
igny8_celery_worker:
|
||||
igny8_celery_beat:
|
||||
```
|
||||
|
||||
### After (2 Services)
|
||||
```yaml
|
||||
services:
|
||||
igny8_frontend: # Port 8021 (updated)
|
||||
# igny8_sites removed
|
||||
igny8_backend: # Port 8011
|
||||
igny8_celery_worker:
|
||||
igny8_celery_beat:
|
||||
```
|
||||
|
||||
### Frontend Service Update
|
||||
```yaml
|
||||
igny8_frontend:
|
||||
image: igny8-frontend-dev:latest
|
||||
container_name: igny8_frontend
|
||||
ports:
|
||||
- "0.0.0.0:8021:5173"
|
||||
environment:
|
||||
VITE_BACKEND_URL: "https://api.igny8.com/api"
|
||||
SITES_DATA_PATH: "/sites" # ← ADD THIS
|
||||
volumes:
|
||||
- /data/app/igny8/frontend:/app:rw
|
||||
- /data/app/sites-data:/sites:ro # ← ADD THIS
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Testing Checklist
|
||||
|
||||
**Before Migration:**
|
||||
- [ ] Site builder wizard works at `http://localhost:8024/builder`
|
||||
- [ ] Site preview works at `http://localhost:8024/builder/preview`
|
||||
- [ ] Public site loads at `http://localhost:8024/{siteSlug}`
|
||||
|
||||
**After Migration:**
|
||||
- [ ] Site builder wizard works at `http://localhost:8021/sites/builder`
|
||||
- [ ] Site preview works at `http://localhost:8021/sites/builder/preview`
|
||||
- [ ] Blueprint dashboard works at `http://localhost:8021/sites/builder/dashboard`
|
||||
- [ ] Public site loads at `http://localhost:8021/sites/view/{siteSlug}`
|
||||
- [ ] Auth required for builder routes
|
||||
- [ ] No auth required for public renderer
|
||||
- [ ] API calls succeed from frontend
|
||||
- [ ] No console errors in browser
|
||||
- [ ] Sites data loads from `/data/app/sites-data/`
|
||||
|
||||
---
|
||||
|
||||
## Rollback (If Needed)
|
||||
|
||||
```bash
|
||||
# Quick rollback
|
||||
cp docker-compose.app.yml.backup docker-compose.app.yml
|
||||
docker compose -f docker-compose.app.yml up -d igny8_sites
|
||||
|
||||
# Full rollback
|
||||
cd /data/app/igny8
|
||||
tar -xzf backup-sites-YYYYMMDD-HHMMSS.tar.gz
|
||||
cd sites
|
||||
docker build -t igny8-sites-dev:latest -f Dockerfile.dev .
|
||||
docker compose -f docker-compose.app.yml up -d igny8_sites
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Estimation
|
||||
|
||||
| Task | Time |
|
||||
|------|------|
|
||||
| Backup & Prep | 30 min |
|
||||
| Copy Files & Update Routes | 2 hours |
|
||||
| Docker Config Updates | 30 min |
|
||||
| Rebuild & Deploy | 30 min |
|
||||
| Testing | 1-2 hours |
|
||||
| Cleanup & Docs | 1 hour |
|
||||
| **Total** | **5-6 hours** |
|
||||
|
||||
---
|
||||
|
||||
## Decision Matrix
|
||||
|
||||
### Keep Separate Sites Container If:
|
||||
- ❌ You need different deployment schedules for sites vs main app
|
||||
- ❌ You want sites on different infrastructure
|
||||
- ❌ You have high traffic public sites (performance isolation)
|
||||
- ❌ You want to scale sites independently
|
||||
|
||||
### Merge Into Frontend If:
|
||||
- ✅ You want simpler deployment (fewer containers)
|
||||
- ✅ You want unified routing and authentication
|
||||
- ✅ Sites are internal/low traffic
|
||||
- ✅ You want easier development (single app)
|
||||
- ✅ You want to reduce port complexity
|
||||
|
||||
---
|
||||
|
||||
## Support
|
||||
|
||||
**Full Documentation:** [SITES_REMOVAL_GUIDE.md](./SITES_REMOVAL_GUIDE.md)
|
||||
**Architecture Reference:** [MASTER_REFERENCE.md](./MASTER_REFERENCE.md)
|
||||
**API Reference:** [API-COMPLETE-REFERENCE.md](./API-COMPLETE-REFERENCE.md)
|
||||
|
||||
---
|
||||
|
||||
**Last Updated:** November 29, 2025
|
||||
**Status:** Ready for implementation
|
||||
Reference in New Issue
Block a user