# ⚙️ Instalación y Primeros Pasos

## Requisitos Previos

| Software | Versión Mínima |
|----------|----------------|
| **PHP** | 8.2+ |
| **Composer** | 2.x |
| **Node.js** | 18+ |
| **npm** | 9+ |
| **MySQL/MariaDB** | 5.7+ (producción) |
| **SQLite** | 3.x (desarrollo) |
| **PostgreSQL** | 13+ (producción recomendado) |

## Variables de Entorno

Copiar `.env.example` a `.env` y configurar:

```env
# Aplicación
APP_NAME="Almacén"
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

# Locale
APP_LOCALE=es
APP_FALLBACK_LOCALE=es
APP_FAKER_LOCALE=es_ES

# Base de Datos (Desarrollo)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=almacen2
DB_USERNAME=root
DB_PASSWORD=

# Base de Datos (Producción - PostgreSQL recomendado)
# DB_CONNECTION=pgsql
# DB_HOST=127.0.0.1
# DB_PORT=5432
# DB_DATABASE=almacen2
# DB_USERNAME=homestead
# DB_PASSWORD=secret

# Sesión y Cache
SESSION_DRIVER=database
SESSION_LIFETIME=120
CACHE_STORE=database

# Cola
QUEUE_CONNECTION=database

# Seguridad
BCRYPT_ROUNDS=12
```

## Pasos de Instalación

### 1. Clonar el Repositorio

```bash
git clone <repository-url> almacen2
cd almacen2
```

### 2. Instalar Dependencias PHP

```bash
composer install
```

### 3. Instalar Dependencias Node

```bash
npm install
```

### 4. Configurar Archivo de Entorno

```bash
cp .env.example .env
php artisan key:generate
```

### 5. Configurar Base de Datos

**Para desarrollo (SQLite):**

```bash
touch database/database.sqlite
php artisan migrate
```

**Para desarrollo (MySQL):**

```bash
# Crear la base de datos
mysql -u root -p -e "CREATE DATABASE almacen2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

# Ejecutar migraciones
php artisan migrate
```

**Para producción (MySQL/PostgreSQL):**

```bash
# Configurar .env con credenciales de producción
php artisan migrate --force
```

### 6. Construir Assets

```bash
npm run build
```

### 7. Iniciar el Servidor

**Desarrollo (usando scripts de composer):**

```bash
# Inicia servidor PHP, queue listener y Vite concurrently
composer run dev
```

**O manualmente:**

```bash
php artisan serve
# Visitar: http://localhost:8000
```

## Notas Específicas por Sistema Operativo

### Linux/Ubuntu/Lubuntu

```bash
# Instalar dependencias del sistema
sudo apt install php8.2-mysql php8.2-sqlite php8.2-mbstring php8.2-xml php8.2-curl php8.2-gd php8.2-zip

# Para MySQL
sudo apt install mysql-server

# Para PostgreSQL (producción)
sudo apt install postgresql postgresql-contrib
```

### Windows (WSL2 recomendado)

```bash
# En WSL2
composer install
npm install
php artisan key:generate
php artisan serve
```

### Docker (Opcional)

```bash
# Usar Laravel Sail o docker-compose existente
docker-compose up -d
php artisan migrate
```

---

*Última actualización: Marzo 2026*
