287 lines
6.2 KiB
Markdown
287 lines
6.2 KiB
Markdown
# StradaAutopartes
|
|
|
|
> Aplicación web para gestión de autopartes construida con **Laravel 10**, **Jetstream**, **Livewire**, **Tailwind CSS** y **MariaDB**.
|
|
>
|
|
> **IP**: `192.168.10.113`
|
|
> **URL local**: `http://192.168.10.113`
|
|
> **URL pública**: `https://strada.consultoria-as.com`
|
|
> **VM**: Cisco1 VMID 113
|
|
> **Estado**: ✅ Running
|
|
|
|
---
|
|
|
|
## 1. Resumen Ejecutivo
|
|
|
|
StradaAutopartes es una aplicación interna para la gestión de inventario, pedidos, caja y movimientos de un negocio de autopartes. Está alojada en una VM dedicada en el nodo Cisco1 de Proxmox.
|
|
|
|
| Aspecto | Detalle |
|
|
|---|---|
|
|
| **Framework** | Laravel 10 |
|
|
| **Frontend** | Livewire + Alpine.js + Tailwind CSS |
|
|
| **Auth/Teams** | Laravel Jetstream + Fortify |
|
|
| **Roles/Permisos** | Spatie Laravel Permission |
|
|
| **Base de datos** | MariaDB 10.11 |
|
|
| **Web server** | nginx 1.24.0 |
|
|
| **PHP** | 8.2 FPM |
|
|
| **Node.js** | 20.x |
|
|
| **Composer** | 2.10 |
|
|
|
|
---
|
|
|
|
## 2. Infraestructura
|
|
|
|
### 2.1 VM en Proxmox (Cisco1)
|
|
|
|
| Parámetro | Valor |
|
|
|---|---|
|
|
| **VMID** | 113 |
|
|
| **Nombre** | StradaAutopartes |
|
|
| **Nodo** | Cisco1 (192.168.10.185) |
|
|
| **CPU** | 4 cores |
|
|
| **RAM** | 8 GB |
|
|
| **Disco** | 78.5 GB (`local-lvm`) |
|
|
| **OS** | Ubuntu 24.04 LTS |
|
|
| **IP estática** | 192.168.10.113/24 |
|
|
| **Gateway** | 192.168.10.254 |
|
|
| **DNS** | 8.8.8.8, 8.8.4.4 |
|
|
|
|
### 2.2 Acceso
|
|
|
|
| Método | Comando / URL |
|
|
|---|---|
|
|
| SSH root | `ssh root@192.168.10.113` |
|
|
| Password root | `Aasi940812` |
|
|
| Web | `http://192.168.10.113` |
|
|
|
|
> **Recomendación de seguridad**: cambiar el password de root en la primera oportunidad.
|
|
|
|
---
|
|
|
|
## 3. Software Instalado
|
|
|
|
```bash
|
|
# Stack web
|
|
nginx
|
|
mariadb-server / mariadb-client
|
|
|
|
# PHP 8.2 + extensiones
|
|
php8.2-fpm php8.2-cli php8.2-common php8.2-mysql php8.2-zip php8.2-gd
|
|
php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath php8.2-intl
|
|
php8.2-opcache php8.2-readline php8.2-sqlite3 php8.2-redis
|
|
|
|
# Herramientas
|
|
composer 2.10
|
|
nodejs 20.x + npm
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Estructura de Directorios
|
|
|
|
```
|
|
/var/www/stradaautopartes/ # Código fuente de la aplicación
|
|
├── app/
|
|
├── bootstrap/
|
|
├── config/
|
|
├── database/
|
|
├── public/ # Document root de nginx
|
|
├── resources/
|
|
├── routes/
|
|
├── storage/
|
|
└── .env # Variables de entorno
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Base de Datos
|
|
|
|
| Parámetro | Valor |
|
|
|---|---|
|
|
| **Host** | 127.0.0.1 |
|
|
| **Database** | `strada` |
|
|
| **Usuario** | `strada` |
|
|
| **Password** | `StradaAAS2024!` |
|
|
| **Root password** | `StradaAAS2024!` |
|
|
|
|
### 5.1 Comandos útiles
|
|
|
|
```bash
|
|
# Acceso a MariaDB
|
|
mysql -u strada -p'StradaAAS2024!' strada
|
|
|
|
# Backup
|
|
mysqldump -u strada -p'StradaAAS2024!' strada > /tmp/strada_backup.sql
|
|
|
|
# Restore
|
|
mysql -u strada -p'StradaAAS2024!' strada < /tmp/strada_backup.sql
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Configuración de nginx
|
|
|
|
`/etc/nginx/sites-available/stradaautopartes`:
|
|
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name _;
|
|
root /var/www/stradaautopartes/public;
|
|
index index.php index.html;
|
|
|
|
client_max_body_size 64M;
|
|
|
|
location / {
|
|
try_files $uri $uri/ /index.php?$query_string;
|
|
}
|
|
|
|
location ~ \.php$ {
|
|
include snippets/fastcgi-php.conf;
|
|
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
|
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
include fastcgi_params;
|
|
}
|
|
|
|
location ~ /\.(?!well-known).* {
|
|
deny all;
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 7. Variables de Entorno (.env)
|
|
|
|
Resumen de valores clave:
|
|
|
|
```ini
|
|
APP_NAME=StradaAutopartes
|
|
APP_ENV=local
|
|
APP_DEBUG=true
|
|
APP_URL=http://192.168.10.113
|
|
|
|
DB_CONNECTION=mysql
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=3306
|
|
DB_DATABASE=strada
|
|
DB_USERNAME=strada
|
|
DB_PASSWORD=StradaAAS2024!
|
|
```
|
|
|
|
> **Nota**: el archivo `.env` ya está creado en `/var/www/stradaautopartes/.env`.
|
|
|
|
---
|
|
|
|
## 8. Comandos de Mantenimiento
|
|
|
|
```bash
|
|
# Acceder a la VM
|
|
ssh root@192.168.10.113
|
|
|
|
cd /var/www/stradaautopartes
|
|
|
|
# Reiniciar servicios
|
|
systemctl restart nginx
|
|
systemctl restart php8.2-fpm
|
|
systemctl restart mariadb
|
|
|
|
# Permisos
|
|
chown -R www-data:www-data storage bootstrap/cache public
|
|
chmod -R 775 storage bootstrap/cache
|
|
|
|
# Instalar dependencias PHP
|
|
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-interaction --optimize-autoloader
|
|
|
|
# Actualizar dependencias
|
|
COMPOSER_ALLOW_SUPERUSER=1 composer update --no-interaction --optimize-autoloader
|
|
|
|
# Instalar/build frontend
|
|
npm install
|
|
npm run build
|
|
|
|
# Migraciones
|
|
php artisan migrate --force
|
|
|
|
# Limpiar cache
|
|
php artisan config:clear
|
|
php artisan cache:clear
|
|
php artisan route:clear
|
|
php artisan view:clear
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Actualización desde Git
|
|
|
|
```bash
|
|
ssh root@192.168.10.113
|
|
cd /var/www/stradaautopartes
|
|
git pull origin main
|
|
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-interaction --optimize-autoloader
|
|
npm install && npm run build
|
|
php artisan migrate --force
|
|
php artisan optimize
|
|
chown -R www-data:www-data storage bootstrap/cache public
|
|
```
|
|
|
|
---
|
|
|
|
## 10. Cloudflare Tunnel
|
|
|
|
La aplicación está expuesta a internet a través de un **Cloudflare Tunnel** (`cloudflared`).
|
|
|
|
| Parámetro | Valor |
|
|
|---|---|
|
|
| **Tunnel name** | `strada` |
|
|
| **Tunnel ID** | `10c867f3-4492-497e-94e8-374ba1e02844` |
|
|
| **Subdominio** | `strada.consultoria-as.com` |
|
|
| **URL pública** | `https://strada.consultoria-as.com` |
|
|
| **Origen local** | `http://localhost:80` |
|
|
| **Servicio** | `cloudflared` |
|
|
|
|
### Comandos útiles
|
|
|
|
```bash
|
|
# Estado del servicio
|
|
systemctl status cloudflared
|
|
|
|
# Ver logs
|
|
journalctl -u cloudflared -f
|
|
|
|
# Listar tuneles
|
|
cloudflared tunnel list
|
|
|
|
# Recargar configuracion
|
|
systemctl restart cloudflared
|
|
```
|
|
|
|
### Configuración
|
|
|
|
`/root/.cloudflared/config.yml`:
|
|
|
|
```yaml
|
|
tunnel: 10c867f3-4492-497e-94e8-374ba1e02844
|
|
credentials-file: /root/.cloudflared/10c867f3-4492-497e-94e8-374ba1e02844.json
|
|
|
|
ingress:
|
|
- hostname: strada.consultoria-as.com
|
|
service: http://localhost:80
|
|
- service: http_status:404
|
|
```
|
|
|
|
---
|
|
|
|
## 11. Seguridad y Pendientes
|
|
|
|
- [ ] Cambiar password de root.
|
|
- [x] Configurar HTTPS con certificado SSL (gestionado por Cloudflare).
|
|
- [ ] Crear primer usuario administrador desde `/register`.
|
|
- [x] Configurar dominio propio para acceso público.
|
|
- [ ] Revisar y aplicar `npm audit fix` para las vulnerabilidades reportadas.
|
|
- [ ] Evaluar unir la VM a Tailscale para acceso remoto seguro.
|
|
|
|
---
|
|
|
|
*Documentación StradaAutopartes - Consultoria Alcaraz Salazar*
|
|
*Actualizado: 18 de Junio de 2026*
|