Guía de despliegue

Databasus en un VPS: copias de PostgreSQL verificadas

Desplegar en un VPS Cloud →

Tutorial

Databasus en un VPS: copias de PostgreSQL verificadas

Autoalojamiento6 min de lectura4 pasos

Una base de datos sin copia de seguridad probada es una apuesta. Databasus es una herramienta open source (Apache-2.0) que programa las copias de tus bases PostgreSQL, MySQL, MariaDB y MongoDB, las cifra, las envía al almacenamiento que elijas — disco local, S3, Cloudflare R2, Google Drive, SFTP — y, sobre todo, comprueba que se restauran restaurándolas de verdad. Esta guía la instala en un único contenedor Docker en un VPS y configura una primera copia de PostgreSQL verificada.

Contenido· Por qué una herramienta dedicada y no un pg_dump en crontab1/10
  1. 01Por qué una herramienta dedicada y no un pg_dump en crontab
  2. 02Lo que aporta Databasus
  3. 03Databasus frente a los métodos habituales
  4. 04Requisitos previos
  5. 05Instalar Databasus con Docker Compose
  6. 06Siempre una copia fuera del VPS
  7. 07Elegir una política de retención
  8. 08Comprobar que la restauración funciona
  9. 09Solución de problemas
  10. 10Instalación en un clic desde el Marketplace de ServOrbit

Por qué una herramienta dedicada y no un pg_dump en crontab

La copia más extendida cabe en una línea: un pg_dump lanzado cada noche por cron y comprimido en un directorio. Funciona hasta el día en que descubres que llevaba tres semanas fallando sin avisar a nadie, que el disco estaba lleno o que el archivo no se restaura por falta del rol adecuado.

Databasus ataca justo esos puntos ciegos: avisa de cada fallo, aplica una política de retención, envía las copias fuera de la máquina y demuestra que se restauran. Para PostgreSQL añade lo que un volcado no puede hacer: copias físicas incrementales y streaming de WAL, que permiten volver al minuto anterior a un error.

Lo que aporta Databasus

  • PostgreSQL físico y lógico — copias completas e incrementales, streaming de WAL y recuperación a un momento dado (PITR).
  • MySQL, MariaDB, MongoDB — copias lógicas comprimidas desde la misma interfaz.
  • Programación precisa — cada hora, diaria, semanal, mensual o con una expresión cron.
  • Restauración verificada — restauración real en una base temporal e informe por tabla.
  • Almacenamientos múltiples — disco local, S3, Cloudflare R2, Google Drive, SFTP, Rclone.
  • Cifrado AES-256-GCM — archivos ilegibles incluso en un almacenamiento compartido.
  • Equipo — espacios de trabajo, roles, registro de auditoría y avisos por correo, Telegram, Slack o webhook.

Databasus frente a los métodos habituales

Desplace la tabla

Databasuspg_dump + cronInstantánea del VPS
Aviso en caso de falloSí, varios canalesHay que escribirloSegún el proveedor
Recuperación a un momento dadoSí (streaming de WAL)NoNo, solo la hora de la instantánea
Copia fuera de la máquinaS3, R2, SFTP, Drive…Hay que programarlaEn el proveedor
Restauración verificadaAutomática, con informeManualManual
GranularidadPor basePor baseEl disco entero
Interfaz y equipoSí, roles y auditoríaNoConsola del proveedor

Requisitos previos

Basta un VPS Ubuntu 24.04 con 1 GB de RAM para gestionar las copias; prevé espacio en disco si guardas copias locales, o un bucket S3 o R2 para enviarlas fuera. Necesitas Docker con el plugin Compose y, del lado de las bases, acceso de red desde el VPS y un usuario dedicado a las copias.

Si tus bases funcionan en otros servidores, abre su puerto solo a la dirección IP del VPS de Databasus, nunca a todo Internet: un cortafuegos que solo acepta ese origen limita la exposición a una única máquina que controlas. Para una base en el mismo VPS no hace falta abrir ningún puerto hacia el exterior.

Instalar Databasus con Docker Compose

  1. Crear el archivo Compose

    Crea un directorio /opt/databasus y coloca en él este docker-compose.yml. El puerto solo se publica en la interfaz local, y extra_hosts permite al contenedor llegar a una base instalada en el propio VPS mediante el nombre host.docker.internal.

    services:
      databasus:
        image: databasus/databasus:v3.62.0
        restart: unless-stopped
        ports:
          - "127.0.0.1:4005:4005"
        extra_hosts:
          - "host.docker.internal:host-gateway"
        volumes:
          - databasus-data:/databasus-data
    
    volumes:
      databasus-data: {}
  2. Arrancar el contenedor

    Arranca Databasus y sigue su inicio:

    docker compose up -d
    docker compose logs -f databasus

    En el primer arranque, la imagen inicializa su propia base de metadatos y aplica sus migraciones en el volumen databasus-data. La línea http server listening on :4005 indica que está lista, en pocos segundos.

  3. Abrir la interfaz y crear la cuenta

    Desde tu equipo, abre un túnel SSH hacia el VPS:

    ssh -L 4005:127.0.0.1:4005 root@<ip-vps>

    Después ve a http://localhost:4005 y crea tu cuenta: la primera cuenta creada pasa a ser administradora. Los registros posteriores siguen abiertos por defecto con un rol de miembro, así que desactiva los registros externos en los ajustes.

  4. Declarar una base PostgreSQL

    En el servidor PostgreSQL, crea un rol dedicado que solo pueda leer:

    CREATE ROLE databasus WITH LOGIN PASSWORD 'a-long-password';
    GRANT pg_read_all_data TO databasus;

    En Databasus, añade la base con su host (para una base del mismo VPS: host.docker.internal), su puerto, ese rol y su contraseña, y después un destino de almacenamiento y una programación. Lanza una primera copia a mano para comprobar que termina.

Siempre una copia fuera del VPS

Una copia guardada en el disco del servidor protege frente a un DROP TABLE desafortunado, no frente a la pérdida de la máquina. Añade al menos un destino externo — un bucket S3 o R2 — y activa el cifrado: el archivo no le sirve de nada a quien llegue a él sin la clave.

Elegir una política de retención

Databasus ofrece cuatro maneras de acotar el historial: una duración (siete días, tres meses, un año), un número (las treinta últimas), una rotación GFS (abuelo, padre, hijo: copias horarias, diarias, semanales, mensuales y anuales conservadas por separado) y límites de tamaño, por copia y en total.

Para una aplicación en producción, un buen punto de partida es una copia diaria conservada treinta días, más una rotación GFS mensual durante un año y un límite total de tamaño que evite que el almacenamiento se desborde. Añade el streaming de WAL si perder un día de datos es inaceptable.

Comprobar que la restauración funciona

Es la función que distingue a Databasus. Después de cada copia, o según un calendario, arranca una base temporal, restaura en ella la copia, compara el tamaño obtenido con el de la copia y lista cada tabla con su número de filas. Puede enviarte el informe, o solo los fallos.

Programar al menos una verificación semanal de tu base más importante. El día de un incidente no descubrirás que faltaba una extensión o un rol: la verificación te lo habrá dicho semanas antes.

Guarda también un registro de esos informes: son la prueba fechada de que tu plan de recuperación se ha ejercitado. Suele ser la primera pregunta de un cliente o de un auditor tras un incidente, y la respuesta «restauramos cada semana, aquí están los informes» zanja la discusión.

Solución de problemas

Falla la conexión a una base del mismo VPS. El servidor de base de datos solo escucha en 127.0.0.1: añade la interfaz de la red Docker a listen_addresses (PostgreSQL) o a bind-address (MySQL), autoriza la subred Docker en pg_hba.conf y reinicia el servicio.

Falla una copia hacia S3. Comprueba la región, el nombre del bucket y los permisos de la clave de acceso: debe poder escribir, listar y borrar objetos bajo el prefijo elegido, o la retención no podrá purgar las copias antiguas.

No llega ninguna notificación. Prueba el canal desde su página de configuración; para el correo, hay que indicar un servidor SMTP en los ajustes.

La interfaz deja de responder. Lee los registros con docker compose logs --tail 100 databasus: cada tarea en segundo plano se registra al arrancar.

Instalación en un clic desde el Marketplace de ServOrbit

El Marketplace de ServOrbit instala Databasus en tu VPS sin línea de comandos: despliega el contenedor con el acceso a host.docker.internal ya declarado, publica el puerto en la interfaz local y te indica en el área de cliente el puerto que debes usar para el túnel SSH. También puedes asociarle un dominio para un acceso permanente por HTTPS.

Tus copias de bases de datos, en tu propio VPS

Un VPS ServOrbit con Ubuntu 24.04 y 1 GB de RAM basta para Databasus. Instalación en un clic desde el Marketplace, acceso por túnel SSH, y tus copias van al almacenamiento que elijas.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva