Cómo instalar Reactive Resume en Docker - Creador de currículums autohospedado

Reactive Resume | CV | PostgreSQL | Docker | Self-hosted | MIT

Reactive Resume en Docker: creador de currículums autohospedado, con tus datos en tu servidor

Reactive Resume es un creador de currículums y cartas de presentación de código abierto. Según su documentación, no tiene rastreadores, ni anuncios, ni plan de pago. Lo despliegas con Docker Compose junto a una base de datos PostgreSQL y tus currículums se quedan en tu hardware.

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Reactive Resume en Docker en el canal GENBYTE:

¿Qué es Reactive Resume?

Reactive Resume es un creador de currículums y cartas de presentación de código abierto. Según su documentación, el código tiene licencia MIT, sin rastreadores, sin anuncios y sin plan de pago. La versión alojada está en rxresu.me, pero puedes correr tu propia instancia.

La aplicación sirve la web, la API, el servidor MCP y los archivos subidos desde un único puerto. Los PDF los genera la propia aplicación, así que no necesitas un servicio de impresión aparte.

Idea clave: tus cuentas, currículums y cartas se guardan en tu base de datos PostgreSQL. Si quieres que nadie más pueda crear cuentas, puedes desactivar los registros después de crear la tuya.

Características principales

Editor con vista previa

Modos de escritura, diseño y revisión, con vista previa del PDF en directo.

Currículums y cartas

Gestiona varios currículums y cartas de presentación desde la misma cuenta.

PDF generado por la app

No hace falta un servicio de impresión externo; el PDF sale desde la propia aplicación.

Subida de imágenes

Guarda las fotos en una carpeta local o en un bucket compatible con S3.

Inicio de sesión flexible

Cuenta propia con verificación por email, y proveedores OAuth como Google, GitHub o LinkedIn si los configuras.

Funciones con IA opcionales

Búsqueda de empleo y asistente con IA, solo si conectas un proveedor. Están desactivadas por defecto.

Requisitos del sistema

  • Docker Engine y el plugin de Docker Compose, o Docker Desktop
  • Mínimo: 1 vCPU y 1 GB de RAM para la aplicación; reserva 2 GB si PostgreSQL corre en el mismo host
  • Disco: unos 10 GB para empezar, según las fotos que subas
  • Arquitecturas: amd64 y arm64, incluida la Raspberry Pi 4 o posterior con un sistema de 64 bits
  • Opcional: un dominio y un proxy inverso con HTTPS para usarla desde fuera de casa

Instalación con Docker Compose

Paso 1: crea la carpeta

mkdir reactive-resume && cd reactive-resume

Paso 2: crea el fichero .env

# Dirección que usarás en el navegador APP_URL="http://localhost:3000" # Contraseña de la base de datos (la misma en las dos líneas) POSTGRES_PASSWORD="cambia-esta-contrasena" DATABASE_URL="postgresql://postgres:cambia-esta-contrasena@postgres:5432/postgres" # Genera con: openssl rand -hex 32 AUTH_SECRET=""
Importante: sustituye cambia-esta-contrasena por una contraseña propia y rellena AUTH_SECRET con un valor generado. No dejes los valores de ejemplo: el .env.example del repositorio trae marcadores como "change-me" que no son seguros.

Paso 3: crea el compose.yml

services: postgres: image: postgres:18 restart: unless-stopped environment: POSTGRES_DB: postgres POSTGRES_USER: postgres POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - postgres_data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"] interval: 10s timeout: 5s retries: 10 reactive-resume: image: amruthpillai/reactive-resume:latest restart: unless-stopped ports: - "3000:3000" env_file: .env volumes: - reactive_resume_data:/app/data depends_on: postgres: condition: service_healthy volumes: postgres_data: reactive_resume_data:
Registro alternativo: la misma imagen está en GitHub Container Registry. Para usarla, cambia la imagen a ghcr.io/reactive-resume/reactive-resume:latest.

Paso 4: arranca los contenedores

docker compose up -d --wait --wait-timeout 180 # Si el arranque falla o se agota el tiempo, revisa el estado y los logs docker compose ps docker compose logs --tail=50 reactive-resume

Paso 5: crea tu cuenta

Abre http://localhost:3000 y crea tu cuenta. Entrarás directamente, aunque la aplicación también envía un email de verificación. Sin configuración SMTP, el enlace de verificación se escribe en el log de la aplicación:

docker compose logs reactive-resume | grep verify-email

Acceder a Reactive Resume

Desde el propio servidor: http://localhost:3000
Desde otro dispositivo de tu red: http://IP_DEL_SERVIDOR:3000, siempre que APP_URL coincida con la dirección que escribes en el navegador

Primeros pasos

  1. Crea tu cuenta y entra.
  2. Crea un currículum desde cero o desde una plantilla.
  3. Edita las secciones en el modo de escritura y revisa el resultado en la vista previa.
  4. Exporta a PDF desde el editor.

Casos de uso

  • Búsqueda de empleo: currículums y cartas de presentación en tu propio servidor.
  • Familia o amigos: una instancia privada para varias cuentas, con los registros desactivados.
  • Homelab: un servicio más en tu stack, con PostgreSQL y copias de seguridad propias.

Configuración avanzada

Mantenerla privada

Cuando tengas tu cuenta creada, desactiva los registros. Las cuentas existentes siguen funcionando:

FLAG_DISABLE_SIGNUPS="true"
docker compose up -d

Usarla con HTTPS y un dominio

Pon un proxy inverso delante y ajusta APP_URL a la dirección pública:

APP_URL="https://resume.tudominio.com"
Atención: APP_URL tiene que coincidir exactamente con la dirección de la barra del navegador, incluido https://. Si no coincide, las redirecciones del inicio de sesión fallan y las cookies no se mantienen.

Correo electrónico

Para verificación y recuperación de contraseña, añade los ajustes SMTP_* de la referencia de variables de entorno de la documentación oficial.

Comprobar la salud de la instancia

curl http://localhost:3000/api/health

Devuelve 200 cuando la base de datos, el almacenamiento y, si está configurado, Redis responden correctamente, y 503 si alguno falla.

Gestión y mantenimiento

Ver estado

docker compose ps

Ver logs

docker compose logs -f reactive-resume

Actualizar

docker compose pull docker compose up -d
Versiones: latest es la última versión estable. Si prefieres evitar saltos de versión mayor, usa v6. La etiqueta nightly sigue la rama principal y solo es para pruebas.

Copias de seguridad

Haz copia de dos cosas: la base de datos de PostgreSQL (volumen postgres_data) y las subidas (volumen reactive_resume_data). Sin ambas, no puedes restaurar la instancia completa.

Detener la instancia

docker compose down

Stack técnico

  • Aplicación: un único proceso Node.js 24 que sirve web, API y MCP en el puerto 3000
  • Base de datos: PostgreSQL 18 en el compose de la guía oficial
  • Almacenamiento de subidas: carpeta /app/data o bucket compatible con S3
  • Redis: opcional, para compartir estado entre procesos
  • Imagen: amruthpillai/reactive-resume en Docker Hub, o ghcr.io/reactive-resume/reactive-resume
  • Licencia: MIT

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.