# 📋 Proceso Completo de Creación de Nuevo Proyecto

**Fecha:** Noviembre 2024  
**Objetivo:** Documentar el proceso completo desde 0 hasta proyecto montado y funcional

---

## 🎯 Visión General del Proceso

El proceso completo de creación de un nuevo proyecto incluye:

1. **Conexión al VPS** - Acceso al servidor
2. **Creación en cPanel** - Configuración inicial del hosting
3. **Clonado del Core** - Obtener código base desde cd-system
4. **Configuración del Proyecto** - Setup de Laravel, BD, etc.
5. **Personalización** - Identidad, assets, configuración
6. **Verificación** - Testing y validación

---

## 📍 FASE 1: Conexión al VPS

### Paso 1.1: Conexión SSH

```bash
ssh root@72.61.45.136
```

**Ubicación del script:**
- Ruta: `/root/scripts/bulk_create_cpanel3.sh`
- Modo interactivo: `bulk_create_cpanel3.sh --interactive`

### Paso 1.2: Análisis del Script `bulk_create_cpanel3.sh`

**✅ COMPLETADO**

Ver análisis completo en: `docs/ANALISIS-COMPLETO-bulk_create_cpanel3.md`

**Resumen:**
- Crea cuenta cPanel vía WHM API
- Configura claves SSH automáticamente
- Crea base de datos MySQL con usuario
- Clona repositorio Git (opcional)
- Instala Composer (si no existe)
- Ejecuta script de setup (opcional)

---

## 📍 FASE 2: Creación en cPanel (VPS)

### Script: `bulk_create_cpanel3.sh --interactive`

**Estado:** ✅ ANALIZADO

**Inputs requeridos:**
1. Dominio del sitio
2. Usuario cPanel (máx 8 caracteres)
3. Contraseña (opcional, se genera si está vacía)
4. Plan de hosting (default: "default")
5. Email de contacto (default: "admin@example.com")
6. Cuota en MB (0 = ilimitado)

**Recursos creados:**
1. ✅ Cuenta cPanel vía `whmapi1 createacct`
2. ✅ Base de datos MySQL: `{usuario}_db` (opcional)
3. ✅ Usuario MySQL: `{usuario}_usr` (opcional)
4. ✅ Repositorio clonado en `public_html/{repo_name}` (opcional)
5. ✅ Composer instalado en `~/.local/bin/composer` (si se ejecuta setup)

**Archivos generados:**
- `/root/credenciales` - Todas las credenciales
- `./created_accounts.csv` - Lista de cuentas creadas
- `./bulk_create_cpanel.log` - Log de operaciones

**Configuración realizada:**
- Claves SSH copiadas a `/home/{usuario}/.ssh/`
- Permisos SSH configurados (700, 600, 644)
- Script de setup ejecutado (si se confirma)

---

## 📍 FASE 3: Clonado del Core (Local)

### Script: `create-complete-project.sh`

**Ubicación:** `/Applications/XAMPP/xamppfiles/htdocs/cd-system/scripts/`

**Funcionalidad:**
- Crea directorio del proyecto
- Inicializa repositorio Git
- Clona rama `cd-system` desde repositorio central
- Configura `.gitattributes` con protecciones
- Verifica archivos críticos

**Inputs requeridos:**
- Nombre del proyecto
- URL del repositorio GitHub
- Confirmación de creación

---

## 📍 FASE 4: Configuración del Proyecto (Local)

### Script: `setup_cd_project.sh`

**Ubicación:** `{PROJECT_DIR}/scripts/setup_cd_project.sh`

**Funcionalidad:**
- Instala dependencias con `composer install`
- Crea `.env` desde `.env.example`
- Configura variables de entorno
- Genera `APP_KEY`
- Ejecuta migraciones y seeders
- Crea symlink de storage

**Inputs requeridos:**
- Nombre del proyecto
- Nombre de la base de datos
- Usuario de BD (si es cPanel)
- Contraseña de BD (si es cPanel)
- Google Analytics ID (opcional)

---

## 📍 FASE 5: Personalización (Local)

### Configuración de Identidad

**Archivos a personalizar:**
- `config/site.php` - Identidad del proyecto
- `public/cd-project/assets/` - Logos, favicons, etc.
- `config/cd-system.php` - Demo seleccionado, módulos activos

**Scripts relacionados:**
- `project:update-assets` - Actualizar assets del proyecto
- `project:update-identity` - Actualizar identidad

---

## 📍 FASE 6: Sincronización con VPS

### Subida del Proyecto

**PENDIENTE DE DOCUMENTAR**

- ¿Cómo se sube el proyecto al VPS?
- ¿Qué método se usa? (Git, FTP, SCP, rsync)
- ¿Qué archivos se excluyen?
- ¿Qué permisos se establecen?

---

## 📍 FASE 7: Configuración en VPS

### Configuración Final en el Servidor

**PENDIENTE DE DOCUMENTAR**

- Configuración de virtual host
- Configuración de SSL
- Configuración de base de datos remota
- Configuración de cron jobs
- Verificación de permisos

---

## 📍 FASE 8: Verificación y Testing

### Checklist Final

- [ ] Proyecto accesible vía web
- [ ] Base de datos conectada
- [ ] Migraciones ejecutadas
- [ ] Seeders ejecutados
- [ ] Assets cargando correctamente
- [ ] Demo seleccionado funcionando
- [ ] Módulos activos funcionando
- [ ] SSL configurado (si aplica)
- [ ] Google Analytics funcionando (si aplica)

---

## 🔍 Análisis de Oportunidades de Mejora

**PENDIENTE DE COMPLETAR**

Una vez documentado todo el proceso, identificaremos:
- Pasos manuales que pueden automatizarse
- Errores comunes y cómo prevenirlos
- Optimizaciones de tiempo
- Mejoras de UX en los scripts
- Validaciones faltantes
- Documentación faltante

---

## 📝 Notas

- Este documento se actualizará conforme analicemos cada fase
- Los scripts del VPS necesitan ser analizados en detalle
- El flujo completo puede tener variaciones según el tipo de proyecto

---

**Última actualización:** Noviembre 2024  
**Estado:** 🚧 EN PROGRESO

