# Despliegue en Ubuntu

## Paquetes

Ejemplo con PHP 8.3:

```bash
sudo apt update
sudo apt install php8.3-fpm php8.3-sqlite3 php8.3-mbstring sqlite3
```

## Archivos y permisos

```bash
sudo mkdir -p /var/www/html/microerp
sudo cp -a . /var/www/html/microerp/
sudo cp /var/www/html/microerp/config/config.example.php /var/www/html/microerp/config/config.php
sudo chown -R www-data:www-data /var/www/html/microerp
sudo find /var/www/html/microerp -type d -exec chmod 750 {} \;
sudo find /var/www/html/microerp -type f -exec chmod 640 {} \;
sudo chmod 770 /var/www/html/microerp/database
sudo chmod 770 /var/www/html/microerp/uploads/productos
sudo chmod 770 /var/www/html/microerp/storage/logs
sudo chmod 770 /var/www/html/microerp/storage/sessions
sudo chmod 770 /var/www/html/microerp/storage/backups
sudo chmod 750 /var/www/html/microerp/scripts/*.sh
```

En `config/config.php` usá `environment=production`, `debug=false`, la zona horaria correcta, `base_path` y la URL HTTPS pública.

## Servidor

- Apache: adaptá `deploy/apache-microerp.conf`, habilitá `proxy_fcgi`, `setenvif`, `rewrite` y `headers`.
- Nginx: incorporá `deploy/nginx-microerp.conf` en el bloque HTTPS existente.

Después abrí `https://DOMINIO/microerp/install.php`. El catálogo queda en `/microerp/` y el panel en `/microerp/admin/`.

## Operación

Programá backups:

```bash
sudo -u www-data /var/www/html/microerp/scripts/backup.sh
```

Probá una restauración en un entorno separado:

```bash
sudo -u www-data /var/www/html/microerp/scripts/restore.sh /ruta/backup.tar.gz
```

Protegé externamente los backups, renová TLS y revisá `storage/logs/app.log` sin exponerlo por HTTP.
