# 🖥️ CONFIGURACION DEL AMBIENTE DE DESARROLLO LOCAL

**Sistema Operativo:** Windows  
**Ultima actualizacion:** 13 de Diciembre de 2025

---

## 📦 Software Instalado

| Software | Version | Comando de Verificacion |
|----------|---------|-------------------------|
| **Node.js** | 24.12.0 LTS | `node --version` |
| **npm** | 11.6.2 | `npm --version` |
| **PHP** | 8.4.15 | `php --version` |
| **Composer** | 2.9.2 | `composer --version` |
| **Git** | 2.52.0 | `git --version` |
| **SSH** | OpenSSH 9.5 | `ssh -V` |
| **PuTTY** | 0.83.0 | Para plink/pscp |

---

## 🚀 Scripts Automatizados (Basados en Diretrizes v3.0)

```
scripts/
├── status.ps1       # Ver estado del proyecto
├── dev.ps1          # Iniciar servidores de desarrollo
├── quick-deploy.ps1 # Deploy rapido sin commit
├── release.ps1      # Workflow completo automatizado
└── setup-ssh.ps1    # Configurar SSH sin password (una vez)
```

### Workflow Completo (release.ps1)

El script `release.ps1` automatiza TODO el proceso segun las directrices:

1. ✅ Incrementa VERSION automaticamente
2. ✅ Actualiza CHANGELOG.md
3. ✅ Hace deploy al servidor
4. ✅ Abre navegador para test
5. ✅ Espera confirmacion del usuario
6. ✅ Hace commit y push

```powershell
# Correccion de bug (patch: 1.27.2 -> 1.27.3)
.\scripts\release.ps1 -VersionType patch -ChangeDescription "Corrigido bug X" -ChangeType Fixed

# Nueva funcionalidad (minor: 1.27.2 -> 1.28.0)
.\scripts\release.ps1 -VersionType minor -ChangeDescription "Nuevo widget Y" -ChangeType Added

# Deploy solo frontend
.\scripts\release.ps1 -VersionType patch -ChangeDescription "Ajuste CSS" -Deploy frontend

# Solo documentacion (sin deploy)
.\scripts\release.ps1 -VersionType patch -ChangeDescription "Actualizar docs" -Deploy none
```

### Quick Deploy (Desarrollo)

Para iteraciones rapidas durante desarrollo:

```powershell
# Deploy solo frontend
.\scripts\quick-deploy.ps1 -Target frontend

# Deploy solo backend
.\scripts\quick-deploy.ps1 -Target backend

# Deploy ambos
.\scripts\quick-deploy.ps1 -Target both
```

---

## 🔧 Configuracion Inicial

### 1. Primera vez - Configurar SSH sin password

```powershell
.\scripts\setup-ssh.ps1
```

Esto copia tu clave publica al servidor. Despues podras conectar sin password.

### 2. Verificar estado

```powershell
.\scripts\status.ps1
```

### 3. Iniciar desarrollo local

```powershell
.\scripts\dev.ps1
```

---

## 🌐 URLs

### Desarrollo Local
| Servicio | URL |
|----------|-----|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:8000/api |

### Produccion
| Servicio | URL |
|----------|-----|
| Aplicacion | https://webmoney.cnxifly.com |
| API | https://webmoney.cnxifly.com/api |
| phpMyAdmin | https://phpmyadmin.cnxifly.com |
| Webmail | https://webmail.cnxifly.com |

---

## ⚙️ Extensiones PHP Habilitadas

- openssl, curl, mbstring, fileinfo
- pdo_mysql, zip, gd, intl, exif, sodium

El archivo `php.ini` esta en:
```
C:\Users\marco\AppData\Local\Microsoft\WinGet\Packages\PHP.PHP.8.4_Microsoft.Winget.Source_8wekyb3d8bbwe\php.ini
```

---

## 📝 Directrices de Desarrollo (v3.0)

El workflow esta completamente automatizado. Las reglas principales son:

1. **Versionamento Semantico**: Cada commit incrementa la version
2. **Test Obligatorio**: Siempre testar en produccion antes de commit
3. **Scripts de Deploy**: Nunca hacer deploy manual
4. **Documentacion**: VERSION y CHANGELOG siempre actualizados

Todo esto es manejado automaticamente por `.\scripts\release.ps1`

---

## 🆘 Solucion de Problemas

### PHP no encuentra extensiones
```powershell
php -i | Select-String "extension_dir"
```

### Error de permisos en Laravel (OneDrive)
```powershell
attrib -R "backend\bootstrap\cache" /S /D
attrib -R "backend\storage" /S /D
```

### Git no configurado
```powershell
git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"
```
