4.1 KiB
Producción — pflores.linkedcorp.net
Estado actual
- Versión:
1.0.0 - Estado:
operativo - Última validación:
2026-06-05
Acceso público
- URL:
https://pflores.linkedcorp.net - Admin:
https://pflores.linkedcorp.net/wp-admin - PDF:
https://pflores.linkedcorp.net/?cv_pdf=1
Servidor de aplicación
- Host:
192.168.222.3 - SSH:
deploy@192.168.222.3 -p 2203 - Ruta base:
/opt/apps/pflores.linkedcorp.net - Credenciales SSH: ver
.token_giteabloque# Produccion user
Estructura en servidor
- Código fuente:
/opt/apps/pflores.linkedcorp.net/ - WordPress:
/opt/apps/pflores.linkedcorp.net/backend/wordpress/ - Plugins propios:
backend/wordpress/wp-content/plugins/pflores-cv-fields/ - Temas:
backend/wordpress/wp-content/themes/ - Config:
/opt/apps/pflores.linkedcorp.net/.env(local, nunca versionar) - Script de deploy:
scripts/deploy_prod_web.sh
Servicio systemd
- Servicio:
pflores-web.service - Puerto:
0.0.0.0:8081
⚠ El servicio DEBE escuchar en
0.0.0.0:8081, no en127.0.0.1:8081. NPM viene de una IP externa y no puede alcanzar el loopback. Si queda en127.0.0.1el resultado es 502 Bad Gateway.
sudo systemctl status pflores-web
sudo systemctl restart pflores-web
sudo journalctl -u pflores-web -n 50 --no-pager
Nginx Proxy Manager
- Domain:
pflores.linkedcorp.net - Forward Hostname/IP:
192.168.222.3 - Forward Port:
8081 - Scheme:
http - SSL: certificado
pflores.linkedcorp.net, Force SSL activado X-Forwarded-Proto: https— wp-config.php lo detecta automáticamente
Base de datos (producción)
- Host:
192.168.222.32 - Base:
paty.wordpress - Usuario:
paty.wordpress - Prefijo de tablas:
cv_ - Credenciales: ver
.token_giteabloque# Base de datos
Plugins de terceros (no en git — reinstalar si es necesario)
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 — reinstalar si es necesario)
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; ..."
Verificación rápida
# Desde el servidor de producción:
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
curl -s -o /dev/null -w "favicon: HTTP %{http_code}\n" http://127.0.0.1:8081/favicon.ico
Problemas conocidos y soluciones
502 Bad Gateway general
El servicio escucha en 0.0.0.0:8081. Si queda en 127.0.0.1 NPM no puede alcanzarlo.
502 en recursos estáticos (CSS, JS, favicon) con NPM Cache Assets activado
NPM cachéa respuestas de error (502/404). Si un recurso faltaba antes y ahora existe, NPM sigue sirviendo la respuesta vieja desde caché. Solución: en NPM, desactivar Cache Assets → guardar → reactivar → guardar. Para un sitio CV, Cache Assets puede quedarse desactivado sin impacto notable.
CSS/JS con 404 tras clonar el repo en un servidor nuevo
Los symlinks persona-cv, lumina y cvolio en wp-content/themes/ usan rutas relativas
(../../../../frontend/...). Si al clonar quedan rotos, recrearlos:
THEMES='/opt/apps/pflores.linkedcorp.net/backend/wordpress/wp-content/themes'
FRONTEND='/opt/apps/pflores.linkedcorp.net/frontend'
rm -f $THEMES/persona-cv $THEMES/lumina $THEMES/cvolio
ln -s $FRONTEND/persona-cv-theme $THEMES/persona-cv
ln -s $FRONTEND/lumina-cv-theme $THEMES/lumina
ln -s $FRONTEND/cvfolio-theme $THEMES/cvolio
favicon.ico
El archivo backend/wordpress/favicon.ico está en git (foto de Patricia, 16/32/48px).
No hace falta recrearlo manualmente.
Pendientes
- Configurar SMTP en WP Mail SMTP
- Confirmar que NPM apunta a
192.168.222.3:8081