docs: completar PROMPT_IA sección 22 produccion, BD dev/prod, LOCAL_DEPLOY_CONTEXT con datos reales

This commit is contained in:
2026-06-05 12:05:31 -05:00
parent e8e35b5dc5
commit f61e09a1e2
+94 -1
View File
@@ -73,6 +73,8 @@ pflores.linkedcorp.net/
## 3. Base de datos ## 3. Base de datos
### Desarrollo
``` ```
Host: 192.168.222.20 Host: 192.168.222.20
DB: paty.wordpress DB: paty.wordpress
@@ -81,11 +83,22 @@ Password: paty.wordpress
Prefijo: cv_ → tabla principal: cv_options Prefijo: cv_ → tabla principal: cv_options
``` ```
Conexión de prueba:
```bash ```bash
mysql -u "paty.wordpress" -p"paty.wordpress" -h 192.168.222.20 "paty.wordpress" --ssl=0 mysql -u "paty.wordpress" -p"paty.wordpress" -h 192.168.222.20 "paty.wordpress" --ssl=0
``` ```
### Producción
```
Host: 192.168.222.32
DB: paty.wordpress
Usuario: paty.wordpress
Password: (ver LOCAL_DEPLOY_CONTEXT.md)
Prefijo: cv_
```
> La BD de producción es una copia completa de la de desarrollo. Misma estructura, mismos datos del CV. Credenciales distintas.
--- ---
## 4. Arrancar / reiniciar el servidor ## 4. Arrancar / reiniciar el servidor
@@ -763,3 +776,83 @@ echo "1.0.1" > VERSION
# Anotar cambio en CHANGELOG.md # Anotar cambio en CHANGELOG.md
# Luego commit y push normal # Luego commit y push normal
``` ```
---
## 22. Servidor de producción
### Datos del servidor
- Host: `192.168.222.3`
- SSH: `deploy@192.168.222.3 -p 2203`
- `deploy` tiene sudo NOPASSWD
- Ruta app: `/opt/apps/pflores.linkedcorp.net`
- Servicio systemd: `pflores-web.service`
- Puerto interno: `127.0.0.1:8081`
- NPM proxy: `pflores.linkedcorp.net` → `192.168.222.3:8081`
Credenciales SSH: ver `LOCAL_DEPLOY_CONTEXT.md`
### Estructura en producción
```
/opt/apps/pflores.linkedcorp.net/
├── backend/wordpress/ ← WordPress + temas + plugins
├── frontend/ ← temas (lumina, persona-cv, cvolio via symlink)
├── scripts/deploy_prod_web.sh ← script de deploy
└── .env ← config producción (local, nunca versionar)
```
### Deploy recurrente (flujo completo)
```bash
# 1. En desarrollo: commit + push a Gitea (ver sección 21)
# 2. En el servidor de producción:
ssh deploy@192.168.222.3 -p 2203
cd /opt/apps/pflores.linkedcorp.net
bash scripts/deploy_prod_web.sh
```
El script hace: `git reset --hard` + verificar plugins + `systemctl restart` + verificar HTTP 200.
### Comandos útiles en producción
```bash
sudo systemctl status pflores-web
sudo systemctl restart pflores-web
sudo journalctl -u pflores-web -n 50 --no-pager
curl -s -o /dev/null -w "HTTP %{http_code}" http://127.0.0.1:8081/
curl -sI http://127.0.0.1:8081/?cv_pdf=1 | grep Content-Type
```
### Plugins de terceros (no en git)
Si desaparecen tras un `git reset --hard`, el script de deploy los reinstala automáticamente. También se pueden instalar manualmente:
```bash
cd /opt/apps/pflores.linkedcorp.net/backend/wordpress/wp-content/plugins
# CMB2
wget -q https://downloads.wordpress.org/plugin/cmb2.latest-stable.zip -O cmb2.zip && python3 -c "import zipfile; zipfile.ZipFile('cmb2.zip').extractall('.')" && rm cmb2.zip
# WP Mail SMTP
wget -q https://downloads.wordpress.org/plugin/wp-mail-smtp.latest-stable.zip -O wpmail.zip && python3 -c "import zipfile; zipfile.ZipFile('wpmail.zip').extractall('.')" && rm wpmail.zip
```
### WordPress core (no en git)
Si hay que reinstalar el core de WordPress en el servidor:
```bash
cd /opt/apps/pflores.linkedcorp.net/backend/wordpress
wget -q https://wordpress.org/wordpress-7.0.zip -O /tmp/wp.zip
python3 -c "
import zipfile,shutil,os
z=zipfile.ZipFile('/tmp/wp.zip')
z.extractall('/tmp/wp_extract')
src='/tmp/wp_extract/wordpress'
for d in ['wp-admin','wp-includes']:
if not os.path.exists(d): shutil.copytree(os.path.join(src,d),d)
for f in os.listdir(src):
if os.path.isfile(os.path.join(src,f)): shutil.copy2(os.path.join(src,f),f)
"
rm -rf /tmp/wp.zip /tmp/wp_extract
```