# Producción LinkedSign ## Servidor de aplicación - Host: `192.168.222.3` - SSH: `deploy@192.168.222.3 -p 2203` - Ruta base: `/opt/apps/linkedsign` ## Estructura en servidor - Código fuente: `/opt/apps/linkedsign/source` - Frontend runtime: `/opt/apps/linkedsign/frontend` - Backend runtime: `/opt/apps/linkedsign/backend` - Storage persistente: `/opt/apps/linkedsign/storage` - Logs: `/opt/apps/linkedsign/logs` ## Servicios persistentes - Backend: `linkedsign-backend.service` - Frontend: `linkedsign-frontend.service` ## Puertos internos - Frontend: `127.0.0.1:3000` - Backend: `127.0.0.1:4000` ## Estado actual - Frontend local responde en `3000` - Backend local responde en `4000` - Ambos servicios quedaron `enabled` y `running` ## Nginx Proxy Manager ### Proxy host principal - Domain: `sign.linkedcorp.net` - Forward Hostname/IP: `192.168.222.3` - Forward Port: `3000` - Scheme: `http` - SSL: certificado para `sign.linkedcorp.net` ### Custom location - Location: `/api` - Forward Hostname/IP: `192.168.222.3` - Forward Port: `4000` - Scheme: `http` No hace falta rewrite. El backend ya acepta `/api`. ## Base de datos - Host MariaDB: `192.168.222.32` - Base de datos: `linkedsign` - Usuario: `linkedsign_user` ## Bloqueo pendiente MariaDB rechazó el acceso desde el servidor web: - Error: `Access denied for user 'linkedsign_user'@'192.168.222.3'` En el servidor MariaDB debes ejecutar: ```sql GRANT ALL PRIVILEGES ON linkedsign.* TO 'linkedsign_user'@'192.168.222.3' IDENTIFIED BY 'INa*hkFanYa_zICF'; FLUSH PRIVILEGES; ``` Si quieres permitir desde más de un host del mismo segmento: ```sql GRANT ALL PRIVILEGES ON linkedsign.* TO 'linkedsign_user'@'192.168.222.%' IDENTIFIED BY 'INa*hkFanYa_zICF'; FLUSH PRIVILEGES; ``` ## Comandos útiles ```bash sudo systemctl status linkedsign-frontend sudo systemctl status linkedsign-backend sudo journalctl -u linkedsign-frontend -n 100 --no-pager sudo journalctl -u linkedsign-backend -n 100 --no-pager ``` ## Pendiente después del GRANT Cuando MariaDB permita acceso desde `192.168.222.3`, falta: 1. Crear/validar tablas en producción. 2. Probar login real. 3. Confirmar operación completa del sistema. ## Seguridad El token de Gitea usado durante esta preparación quedó expuesto en el chat. Debe rotarse.