Wiki: retirar credenciales y marcar como obsoletas las páginas de CDMON

Decisión de Rafa (2026-08-12): el conocimiento vive en la wiki, las
contraseñas nunca.

- Credenciales-y-accesos: vaciada y reescrita como página de punteros a
  ~/.hermes/profiles/feadulta/.env, ~/.env y ~/.ssh/id_ed25519.
- Limitaciones-servidor-prod y Sincronizacion-local-prod: credenciales
  retiradas y cabecera de OBSOLETA (describen el jail de CDMON, cuyas
  limitaciones ya no aplican tras el cutover a Hetzner del 2026-08-03).

Antes de limpiar se verificó la rotación contra el hash almacenado, sin
hacer login: la contraseña de wp-admin documentada ya NO valida en
producción. En el WordPress local SÍ seguía siendo válida — pendiente de
rotar, queda anotado en la página.

Aviso registrado en la propia página: vaciar el texto no borra los
secretos del historial de feadulta.wiki.git.
2026-08-12 11:20:57 -04:00
parent a3611a3245
commit 81cfeb149d
3 changed files with 69 additions and 74 deletions
+40 -56
@@ -1,72 +1,56 @@
# Credenciales y accesos
> **Wiki privada.** Estas credenciales solo son visibles para usuarios autenticados en Gitea local.
> **Actualizado: 2026-06-15.** El antiguo hosting `feadulta.org` (WP staging Dreamhost) fue **desmontado el 2026-05-24** — sus credenciales (SSH `feadultada`, HTTP Basic Auth `feadul316`, DB `278025353...`) ya **NO aplican**.
> **Esta wiki no contiene credenciales.** Decisión de Rafa, 2026-08-12.
> Página vaciada y reescrita por Opix ese día: solo punteros a dónde vive cada cosa.
## Producción actual: WordPress nuevo (wp-nuevo)
## Dónde está cada credencial
El WP de la migración vive ahora en el **mismo servidor que el Joomla de producción**, bajo `/web/wp-nuevo/`.
| | |
| Qué | Dónde |
|---|---|
| Subdominio | `wp-nuevo.feadulta.com` (detrás de **Cloudflare**) |
| WP root | `/web/wp-nuevo/` |
| ⚠️ NO tocar | `/web/` = Joomla vivo (feadulta.com). `/web/anterior/` = web V1 FrontPage (2006-2012) |
| Host SSH de producción, contenedor WordPress, ruta de `wp-load.php` | `~/.hermes/profiles/feadulta/.env` (WSL) |
| Clave SSH del servidor | `~/.ssh/id_ed25519` — comentario `claude-code@feadulta` |
| Tokens de Gitea | `~/.env` (WSL, permisos 600) |
| Credenciales de prod para scripts (`sync_*_to_prod.py`) | `~/.hermes/profiles/feadulta/.env` |
| Backups y alerta de Telegram | `~/backup-hetzner/` + `~/.hermes/.env` |
### SSH (mismo acceso para wp-nuevo y Joomla)
| | |
|---|---|
| Host | `134.0.10.170` |
| Usuario | `feadulta` |
| Contraseña | `C6c2A!mAl3Wj.BQF` (cambiada 2026-06-14; host key ED25519) |
| HOME | `/entrada` |
Cargar el perfil de producción:
```bash
sshpass -p 'C6c2A!mAl3Wj.BQF' ssh -o StrictHostKeyChecking=accept-new feadulta@134.0.10.170 '<comando>'
# si "host key changed": ssh-keygen -f ~/.ssh/known_hosts -R 134.0.10.170 y reconectar
set -a && source ~/.hermes/profiles/feadulta/.env && set +a
```
### Base de datos de wp-nuevo
`FEA_PROD_SSH_PASS` está **vacío a propósito**: desde el cutover a Hetzner la
autenticación es por clave, y los scripts caen a `ssh` normal cuando esa variable
está vacía. No es un valor pendiente de rellenar.
El **nombre de la BD cambia** (se regenera con cada dump) → leerlo de `/web/wp-nuevo/wp-config.php` (`DB_NAME`).
| | |
|---|---|
| Host | `127.0.0.1` (solo desde el server) |
| Usuario | `myfeadulta` |
| Contraseña | `7c7J*VqU.v1WhsHu` |
| Prefijo | `wp_` · Charset columnas **utf8mb4** |
```bash
# SIEMPRE --default-character-set=utf8mb4 (la conexión por defecto es latin1 y corrompe acentos)
DB=$(grep DB_NAME /web/wp-nuevo/wp-config.php | sed -E "s/.*'DB_NAME', *'([^']+)'.*/\1/")
mysql --default-character-set=utf8mb4 -h127.0.0.1 -umyfeadulta -p'7c7J*VqU.v1WhsHu' "$DB" -e "SQL"
```
### WordPress Admin
| Entorno | URL | Usuario | Contraseña |
|---|---|---|---|
| Local (Tailscale) | https://farmer.taild3aaf6.ts.net/fea/wp-admin | `eqpyk` | `NuevaFeAdulta2024!` |
| Prod (wp-nuevo) | https://wp-nuevo.feadulta.com/wp-admin | `eqpyk` | `NuevaFeAdulta2024!` |
## Joomla producción (feadulta.com, VIVO — solo lectura salvo migración)
Mismo servidor/SSH que arriba. **No cambiar** credenciales de cPanel ni de los admin Joomla (765 josek = hermana de Rafa, 763 icalvotorre, 57 calvo).
| | |
|---|---|
| DB | `fejoomla3` · user `fejoomla3` · pass `5FF-}5^[>7^pK4W9` · host `127.0.0.1` |
| Prefijo | `ew4r_` (K2 en `ew4r_k2_items`, cartas/contenido en `ew4r_content`) |
Ver [[Produccion-Hetzner-acceso]] para el acceso completo y verificado.
## Base de datos local (Docker)
| | |
|---|---|
| Host | `172.18.0.2` (container `wordpress-mysql`) |
| DB | `wordpress_db` · user `wordpress_user` · pass `wordpress_pass` |
No es un secreto: son las credenciales de desarrollo que define el propio
`docker-compose.yml` del repo, y sin ellas no se pueden copiar los comandos de esta
wiki.
## Brevo (boletín)
```
DB wordpress_db · user wordpress_user · pass wordpress_pass · container wordpress-mysql
```
- Cuenta Brevo ID `c3555982` · formulario embebido: ver [Alta-boletin-Brevo](Alta-boletin-Brevo)
## WordPress Admin
| Entorno | URL | Usuario |
|---|---|---|
| Local (Tailscale) | https://farmer.taild3aaf6.ts.net/fea/wp-admin | `eqpyk` |
| Producción | https://www.feadulta.com/wp-admin | `eqpyk` |
Las contraseñas no se documentan aquí. La de producción se rotó (comprobado el
2026-08-12: la que figuraba en esta página ya no valida contra el hash de prod).
⚠️ **La del WordPress local seguía siendo válida el 2026-08-12** — pendiente de
rotar. Solo es alcanzable por Tailscale, pero estuvo publicada aquí.
## Nota sobre el historial
Esta página contuvo contraseñas en claro entre junio y agosto de 2026. **Vaciarla no
las borra del historial de `feadulta.wiki.git`**: siguen siendo recuperables con
`git log -p`. La única mitigación real es rotar, no borrar. Por eso se verificó la
rotación antes de limpiar.
+15 -9
@@ -1,8 +1,17 @@
# Limitaciones del servidor de producción (wp-nuevo)
> **Actualizado 2026-06-15.** Esta página describe el servidor **actual** (`134.0.10.170`, el mismo del Joomla, donde vive `/web/wp-nuevo/`). El antiguo Dreamhost `.org` se desmontó el 2026-05-24.
> ⚠️ **PÁGINA OBSOLETA — estas limitaciones YA NO APLICAN.** Describen el jail de
> cPanel/CDMON (`134.0.10.170`), retirado en el cutover a Hetzner del 2026-08-03.
>
> Verificado el 2026-08-12 contra el servidor actual: `disable_functions` está vacío
> (`proc_open` funciona), `scp` y `docker cp` funcionan, `php` y `grep` no están rotos,
> y `mysqldump 8.4.10` está disponible en el contenedor de MySQL. Lo que sí falta hoy
> es **wp-cli**, que en CDMON sí había.
>
> Usa [[Produccion-Hetzner-acceso]] y [[Trampas-del-entorno]]. Se conserva como
> referencia histórica. Credenciales retiradas el 2026-08-12 (— Opix).
Shell muy restringido (jail cPanel). **Leer antes** de plantear cualquier operación contra prod.
Shell muy restringido (jail cPanel). Descripción histórica del entorno anterior.
## Lo que SÍ hay (habilitado por Rafa)
@@ -39,17 +48,14 @@ cd /web/wp-nuevo && wp --skip-plugins --skip-themes <comando>
```bash
# nombre de BD cambiante -> leerlo de wp-config; SIEMPRE utf8mb4
DB=$(grep DB_NAME /web/wp-nuevo/wp-config.php | sed -E "s/.*'DB_NAME', *'([^']+)'.*/\1/")
mysql --default-character-set=utf8mb4 -h127.0.0.1 -umyfeadulta -p'7c7J*VqU.v1WhsHu' "$DB" -e "SELECT ..."
# (credenciales en ~/.hermes/profiles/feadulta/.env — no se documentan aquí)
mysql --default-character-set=utf8mb4 -h127.0.0.1 -u<user> -p "$DB" -e "SELECT ..."
```
## Acceso SSH
```bash
sshpass -p 'C6c2A!mAl3Wj.BQF' ssh -o StrictHostKeyChecking=accept-new feadulta@134.0.10.170 '<cmd>'
```
`sshpass` SÍ funciona desde el local (ya no se usa paramiko). HOME en el server = `/entrada`.
Credenciales retiradas de esta página. Ver [[Credenciales-y-accesos]] y
[[Produccion-Hetzner-acceso]]. HOME en el server de CDMON era `/entrada`.
## Gotchas
+14 -9
@@ -1,20 +1,25 @@
# Sincronización local → producción (wp-nuevo)
> **Actualizado 2026-06-15.** Prod = `/web/wp-nuevo/` en `134.0.10.170` (mismo server que el Joomla). El método con `paramiko` + base64 del `.org` viejo **ya no se usa**: ahora `sshpass` y `tar` están disponibles.
> ⚠️ **PÁGINA OBSOLETA — describe el servidor cPanel/CDMON, retirado en el cutover a
> Hetzner del 2026-08-03.** Los rodeos de aquí abajo (subir ficheros con `ssh 'cat >'`,
> evitar `mysqldump`, usar `wp` porque `php` estaba roto) **ya no hacen falta**: en
> Hetzner funcionan `scp`, `docker cp`, `php` y `proc_open`.
>
> Usa [[Produccion-Hetzner-acceso]]. Se conserva esta página como referencia
> histórica del método antiguo. Credenciales retiradas el 2026-08-12 (— Opix).
Antes de tocar nada, lee [Limitaciones del servidor de producción](Limitaciones-servidor-prod).
Regla general que **sigue vigente**: los **IDs y el código viven en paralelo** entre
local y prod (misma migración). Replica los cambios del mismo modo y mantén los IDs
sincronizados.
Regla general: los **IDs y el código viven en paralelo** entre local y prod (misma migración). Replica los cambios del mismo modo y mantén los IDs sincronizados.
## Acceso
## Acceso (histórico)
```bash
export SSHPASS='C6c2A!mAl3Wj.BQF'
SSH="sshpass -e ssh -o StrictHostKeyChecking=accept-new feadulta@134.0.10.170"
WP="cd /web/wp-nuevo && wp --skip-plugins --skip-themes"
# Credenciales: ver ~/.hermes/profiles/feadulta/.env — no se documentan aquí.
SSH="ssh -i ~/.ssh/id_ed25519 rafa@188.40.120.157" # servidor ACTUAL
```
## Subir ficheros (scp/sftp NO funcionan)
## Subir ficheros (histórico: en CDMON scp/sftp no funcionaban)
Fichero único (binario-safe):
```bash