Server Manager/ Help
Open Server Manager →

Instalar WordPress

Un clic + una pregunta (el dominio) y luego aprobar los comandos de instalación. WordPress + MariaDB en Docker, con Caddy delante y HTTPS automático, listo en 2–3 minutos. El asistente inicial de WordPress se encarga del título del sitio y de la cuenta de administrador.

Quieres WordPress funcionando en tu dominio (o simplemente en la IP de tu servidor), con HTTPS, detrás de un proxy inverso adecuado y en Docker para que no se mezcle con nada más. La receta Instalar WordPress de Server Manager hace todo eso en unos 2–3 minutos. Respondes a una pregunta (qué dominio) y luego apruebas cada comando mientras el chat lo ejecuta.

Qué tendrás al terminar

  • Un sitio WordPress 6 ejecutándose en un contenedor Docker y conectado a un contenedor MariaDB 11 en una red privada.
  • Caddy (ya ejecutándose en el host) haciendo de proxy inverso de tu dominio → el contenedor, con HTTPS de Let's Encrypt emitido automáticamente.
  • Los secretos del sitio (contraseña de la base de datos y las 8 salts de WordPress) generados automáticamente y guardados en /opt/wordpress/.env, con modo 600 y propiedad de root. Nada en texto sin cifrar en ningún otro sitio.
  • Una tarjeta de carga de trabajo en tu pantalla de inicio con el logotipo de WordPress. Haz clic en manage → para ver las pestañas específicas de la receta: WP-Admin · Plugins · Themes · Maintenance · Status · Logs · Controls · Backup.

Requisito previo: un dominio (opcional, pero recomendado)

WordPress funciona bien en una IP directa para hacer pruebas, pero para un sitio real conviene usar un dominio con HTTPS. Si aún no lo has hecho, ejecuta primero Conectar un dominio: apunta mysite.com a la IP de este servidor y confirma que el DNS se ha propagado. El asistente de instalación funciona en ambos casos, pero configurar el DNS antes de instalar es el camino más fluido: Caddy puede emitir un certificado TLS inmediatamente si el dominio ya apunta aquí.

Si de momento solo tienes una IP, no pasa nada: puedes añadir un dominio más tarde sin reinstalar: barra superior → Apuntar un dominio aquí. (O usa el botón Conectar un dominio que aparece en la barra de acciones inferior cuando haces clic en una tarjeta que todavía no tiene dominio: es el mismo asistente, pero ya orientado a esa carga de trabajo.)

Paso a paso

1Abre la paleta de recetas

Pulsa / en cualquier parte del chat para abrir la paleta, O haz clic en Ver todas las acciones debajo del chat, O haz clic en Acciones en la barra superior y elige WordPress.

Paleta de recetas con la tarjeta destacada "Instalar WordPress" resaltada
Paleta de recetas con la tarjeta destacada "Instalar WordPress" resaltada

La paleta muestra WordPress como una tarjeta destacada de Empieza aquí en la parte superior, y también dentro de la categoría Aplicaciones web más abajo. Ambas entradas inician el mismo flujo de instalación.

Nota para servidores sin Caddy. Si tu servidor ya ejecuta nginx, Apache o Traefik en lugar de Caddy, la receta de WordPress está "restringida": la tarjeta muestra una insignia 💬 vía chat. Hacer clic en ella sigue funcionando; Faro configurará WordPress de forma nativa para tu motor en lugar de instalar Caddy. Consulta ¿Por qué Caddy? y Migrar a Caddy para más contexto.
2Faro te pregunta el dominio

Después de hacer clic en la tarjeta, el chat toma el control. El primer mensaje de Faro es una comprobación rápida ("¿hay algún wordpress aquí?", "¿puertos 80/443 libres?", etc.) y una pregunta breve:

Chat mostrando la pregunta de Faro: "¿En qué dominio debe servirse este sitio WordPress?"
Chat mostrando la pregunta de Faro: "¿En qué dominio debe servirse este sitio WordPress?"

Escribe el dominio (por ejemplo, mysite.com) — o skip si quieres probar primero con la IP directa. Luego pulsa Enviar.

3Aprueba cada comando mientras se ejecuta

Faro se detiene para pedir tu aprobación en cada comando que cambia el estado del servidor. El primer lote suele ser:

  • (solo si falta) apt install docker.io docker-compose-plugin — instalar Docker.
  • mkdir -p /opt/wordpress — directorio de instalación.
  • openssl rand -base64 32 (contraseña de la BD) y openssl rand -base64 48 × 8 (las salts de WordPress).
  • Escribir /opt/wordpress/docker-compose.yml (wordpress:6 + mariadb:11 fijados, volúmenes con nombre, red interna, puerto publicado en 127.0.0.1:<random> — nunca en 0.0.0.0).
  • Escribir /opt/wordpress/.env con todos los secretos, chmod 600.
  • docker compose up -d — iniciar los contenedores.
  • Bloque de Caddyfile para tu dominio → https://mysite.com { reverse_proxy 127.0.0.1:<port> }caddy reload.
Chat mostrando un comando "docker compose up -d" esperando Aprobar / Omitir / Cancelar
Chat mostrando un comando "docker compose up -d" esperando Aprobar / Omitir / Cancelar

El texto exacto de cada comando se muestra antes de que lo apruebes. Puedes Aprobar, Omitir (rara vez conviene: normalmente rompe la instalación) o Cancelar (no deja nada ejecutándose ni tampoco nada en disco que no podamos limpiar).

¿Por qué tantas aprobaciones? Server Manager no ejecuta nada destructivo sin tu confirmación explícita. Ni siquiera en una instalación rutinaria. Es una fricción intencionada. Después de la primera instalación ya sabrás qué esperar; las siguientes se sienten más rápidas porque el ritmo de aprobación resulta familiar.

Tiempo total de instalación, incluidas las aprobaciones: normalmente 2–3 minutos. La mayor parte es la descarga de Docker (~500 MB de imágenes de WordPress + MariaDB en la primera instalación).

4Faro te da la URL

Cuando los contenedores están levantados y Caddy se ha recargado, Faro te da la URL:

Chat mostrando el mensaje de instalación completada con la URL de WordPress resaltada
Chat mostrando el mensaje de instalación completada con la URL de WordPress resaltada

También te hace una pregunta proactiva: "¿Quieres que configure copias nocturnas de la base de datos?" Elige sí o no; siempre puedes configurarlas más tarde (consulta Copias de seguridad).

5Completa el asistente inicial de WordPress

Haz clic en la URL. Se abre el asistente de instalación propio de WordPress: la configuración de Server Manager ya ha terminado; a partir de aquí estás tratando directamente con WordPress.

Pantalla de instalación de 5 minutos de WordPress: título del sitio, nombre de usuario, contraseña, tu correo electrónico y luego Instalar WordPress
Pantalla de instalación de 5 minutos de WordPress: título del sitio, nombre de usuario, contraseña, tu correo electrónico y luego Instalar WordPress

Define el título del sitio, elige un nombre de usuario administrador (no "admin": elige algo menos fácil de adivinar), establece una contraseña de administrador segura (o deja que WP genere una y guárdala en tu gestor de contraseñas) e introduce el correo electrónico del administrador. Haz clic en Instalar WordPress.

Las credenciales de administrador de WordPress NO son las mismas que tu inicio de sesión de Server Manager. Viven dentro de la base de datos de WordPress, separadas de Server Manager. Elige una contraseña segura y guárdala en un gestor de contraseñas: no hay forma de recuperar desde Server Manager una contraseña olvidada de administrador de WP sin tocar la base de datos (el chat puede hacerlo; consulta "Preguntas frecuentes" más abajo).

Listo. Inicia sesión en /wp-admin/, escribe tu primera entrada, instala un tema, instala plugins: igual que en cualquier sitio WordPress.

6De vuelta en Server Manager

Ahora aparece una tarjeta de carga de trabajo en tu pantalla de inicio con el icono de WordPress y el título de tu sitio:

Tarjeta de carga de trabajo en la pantalla de inicio: sitio WordPress con estado "OK · RUNNING"
Tarjeta de carga de trabajo en la pantalla de inicio: sitio WordPress con estado "OK · RUNNING"

Haz clic en manage → para abrir el con las pestañas específicas de la receta:

  • WP-Admin — enlace de un clic a https://your-domain/wp-admin/.
  • Plugins — lista de plugins instalados con botones de un clic para activar, desactivar, actualizar o eliminar. (Añadir plugins nuevos sigue haciéndose desde WP-Admin: ahí es donde está el índice de búsqueda de plugins.)
  • Themes — lo mismo que Plugins, pero para temas.
  • Maintenance — tres cosas en una pestaña: Vaciar la caché de WordPress (forzar la reconstrucción en la siguiente visita), Buscar y reemplazar en la base de datos (normalmente para cambiar la URL del sitio; correcto con wp-cli para que no se corrompan los datos PHP serializados; por defecto muestra una vista previa segura sin aplicar cambios) y Actualizar el núcleo de WordPress (con recordatorio de copia de seguridad / clon antes de cambiar nada).
  • Status / Logs / Controls / Backup — las pestañas universales (todas las cargas de trabajo las tienen).
Pestaña WP-Admin de ServicePanel: URL de destino y botón "Abrir administrador de WordPress →"
Pestaña WP-Admin de ServicePanel: URL de destino y botón "Abrir administrador de WordPress →"
Pestaña Plugins de ServicePanel: lista de plugins con botones Activar/Desactivar
Pestaña Plugins de ServicePanel: lista de plugins con botones Activar/Desactivar

Qué se ha instalado exactamente

Como referencia (no necesitas tocar nada de esto: el panel del servicio se encarga de todo):

DóndeQué
/opt/wordpress/docker-compose.ymlDefiniciones de contenedores (WordPress 6 + MariaDB 11)
/opt/wordpress/.envSecretos (contraseña de la BD + 8 salts de WP) — chmod 600, propiedad de root
Volumen con nombre de Docker wp_datawp-content de WordPress (subidas, plugins, temas)
Volumen con nombre de Docker db_dataArchivos de datos de MariaDB
Red de Docker wordpress_defaultRed interna para que los dos contenedores se comuniquen
/etc/caddy/CaddyfileEl bloque de proxy inverso para tu dominio (a un caddy reload de quedar activo)
Directorio de datos de CaddyCertificado de Let's Encrypt emitido automáticamente para tu dominio

El contenedor de WordPress publica su puerto en 127.0.0.1:<random in 38000–39999>solo en localhost. Caddy llega a él a través de ese puerto local; internet solo ve Caddy en 80/443. Así que, aunque WordPress tuviera una vulnerabilidad, el contenedor en sí no queda expuesto directamente.

Preguntas frecuentes

¿Dónde consigo plugins? Desde la búsqueda de WP-Admin → Plugins → Add New de WordPress, como en cualquier sitio WP normal. Una vez instalados, la pestaña Plugins del panel de servicio de Server Manager los muestra con acciones de un clic para activar, desactivar, actualizar o eliminar.

**¿Puedo editar wp-config.php?** Está dentro del contenedor y se regenera al ejecutar docker compose up. Los cambios personalizados van en /opt/wordpress/.env (los secretos y las cosas que WordPress lee mediante variables de entorno) o en /opt/wordpress/docker-compose.yml (la propia definición del contenedor). Para añadir una variable de entorno personalizada, pídeselo a Faro: "add WP_DEBUG=true to the wordpress container" — y aprueba el cambio.

He perdido la contraseña de administrador. No uses el enlace "Lost your password?" de WordPress salvo que hayas configurado Enviar correo desde tu dominio (si no, el correo no llegará a ninguna parte). En su lugar, pídele a Faro: "reset the WordPress admin password." Ejecuta un patrón seguro de rotación dentro de la BD (nunca imprime una contraseña en texto sin cifrar) y te dice la nueva contraseña una vez.

También he perdido el nombre de usuario administrador. Pregunta a Faro: "who's the WordPress admin?" — listará las cuentas con rol de administrador desde la base de datos.

¿Puedo ejecutar varios sitios WordPress en el mismo servidor? Sí. Solo tienes que volver a ejecutar la receta Instalar WordPress con otro dominio: Faro detectará la instalación existente en /opt/wordpress/ (su comprobación previa busca wordpress en docker ps) y propondrá un directorio de instalación que no entre en conflicto (normalmente /opt/wordpress-<short-name>/) para que los nuevos contenedores, volúmenes y bloque de Caddy no choquen con los originales. Caddy multiplexa por dominio. Consulta Varios sitios en el mismo servidor para ver la explicación completa.

WordPress va lento / se está quedando sin memoria. Cada instalación necesita unos 256–512 MB de RAM en reposo (WordPress + MariaDB juntos). En un servidor de 1 GB puedes ejecutar uno con comodidad; en uno de 2 GB, dos; etc. La tarjeta de carga de trabajo de la pantalla de inicio muestra el uso actual de RAM: si ves que se acerca al total del servidor, es hora de ampliar el servidor o mover los sitios pesados a instancias más grandes. Si WP-Admin muestra específicamente "Allowed memory size exhausted" en mitad de una acción, pide a Faro en el chat que aumente el memory_limit de PHP: editará el archivo de configuración correcto dentro del contenedor y reiniciará.

¿Puedo migrar aquí un sitio WordPress existente? Sí: para eso está el asistente Migrar aquí un sitio existente. Copia los archivos y la BD de tu sitio desde el proveedor anterior y lo instala aquí usando la misma receta.

¿Puedo tener HTTPS sin dominio? No con Let's Encrypt (exigen un dominio real). El sitio se servirá por HTTP sin cifrar en http://<your-ip> hasta que apuntes un dominio al servidor; entonces el HTTPS se emitirá automáticamente en unos 30 segundos.

Qué NO cubre esta guía

  • WordPress multisitio (red) — la receta instala un WP de un solo sitio. Multisitio se activa dentro del propio WordPress, después de instalar, mediante cambios en wp-config.php. Pide a Faro que lo active; el cambio está en el archivo de entorno y en una bandera en la base de datos de WP.
  • Temas/plugins personalizados de WordPress incluidos con tu código — la receta instala un WP estándar. Si tienes un tema personalizado y plugins como código, despliega mediante Migrar aquí un sitio existente (desde tu entorno de desarrollo) o como paquete de copia de seguridad mediante Restaurar desde una copia de seguridad.
  • Refuerzo / configuración de seguridad de WordPress — la receta te da valores predeterminados razonables (secretos aleatorios, puerto no expuesto públicamente, secretos en variables de entorno). Cosas como 2FA, Wordfence o análisis de malware: instálalas como plugins dentro de WordPress.
  • Enviar correo DESDE WordPress — los plugins de WP-Mail o formularios de contacto necesitan un endpoint SMTP/API. Ejecuta Enviar correo desde tu dominio (Resend) y conecta esas credenciales en un plugin SMTP de WP.

Referencia

Rutas de instalación predeterminadas:

  • Directorio de instalación: /opt/wordpress/ (o /opt/wordpress-<suffix>/ si hay varias)
  • Archivo de Compose: /opt/wordpress/docker-compose.yml
  • Entorno / secretos: /opt/wordpress/.env
  • Bloque de Caddy: /etc/caddy/Caddyfile — busca la línea reverse_proxy de tu dominio

Los nombres de contenedor siguen el patrón predeterminado de Compose <project>-<service>-<n>: normalmente wordpress-wordpress-1 (web) y wordpress-db-1 (base de datos) en Compose v2 moderno; la v1 antigua usa separadores _ (wordpress_wordpress_1). Ejecuta docker ps para confirmar exactamente qué se está ejecutando en tu servidor.

Rango de puertos internos: 38000–39999 — la receta elige uno libre al azar y lo publica en 127.0.0.1. Solo Caddy en el host puede alcanzarlo; internet no.

Versiones de WordPress + MariaDB: fijadas a las etiquetas mayores wordpress:6 y mariadb:11. Las actualizaciones de corrección de errores se descargan con docker compose pull. Las actualizaciones de versión mayor (WP 6 → 7, MariaDB 11 → 12) se piden aparte en el chat: a veces necesitan migraciones de BD.

Para desinstalar: el panel manage → de la tarjeta de la pantalla de inicio tiene una acción Delete dentro de Controls. Detiene los contenedores, opcionalmente borra los volúmenes con nombre (con lo que pierdes tus datos) o los conserva (para que puedas reinstalar más tarde), y elimina el bloque de Caddy. También hay una acción de un clic en la barra de acciones inferior (haz clic en la tarjeta → Delete).