Files
igny8/docs/SITES_REMOVAL_QUICK_REFERENCE.md
IGNY8 VPS (Salman) 98396cb7b9 2132
2025-11-29 16:44:22 +00:00

9.8 KiB

Sites Container Removal - Quick Reference

Version: 1.0
Date: November 29, 2025

Full Guide: See 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)

  1. /backend/igny8_core/settings.py

    • Verify CORS settings (remove port 8024)
  2. /frontend/src/components/sidebar/AppSidebar.tsx

    • Add site builder menu items

Critical Commands

1. Backup First

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

# 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

# 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

# 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)

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)

services:
  igny8_frontend:    # Port 8021
  igny8_sites:       # Port 8024 ❌ REMOVE THIS
  igny8_backend:     # Port 8011
  igny8_celery_worker:
  igny8_celery_beat:

After (2 Services)

services:
  igny8_frontend:    # Port 8021 (updated)
  # igny8_sites removed
  igny8_backend:     # Port 8011
  igny8_celery_worker:
  igny8_celery_beat:

Frontend Service Update

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)

# 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
Architecture Reference: MASTER_REFERENCE.md
API Reference: API-COMPLETE-REFERENCE.md


Last Updated: November 29, 2025
Status: Ready for implementation