Installation

Vous pouvez installer Databasus de plusieurs façons : script automatisé (recommandé), simple docker run, Docker Compose, Helm pour Kubernetes ou Docker Compose avec Caddy pour les déploiements en production.

Configuration requise

Databasus a besoin des ressources système minimales suivantes pour fonctionner correctement :

  • CPU : au moins 1 cœur
  • RAM : minimum 500 Mo
  • Stockage : 5 Go pour l'installation, plus l'espace nécessaire pour vos backups
  • Docker : Docker Engine 20.10+ et Docker Compose v2.0+

Option 1 : script d'installation (recommandé, Linux uniquement)

Le script d'installation va :

  • ✅ Installer Docker avec Docker Compose (s'ils ne sont pas déjà installés)
  • ✅ Configurer Databasus
  • ✅ Activer le démarrage automatique au redémarrage du système
sudo apt-get install -y curl && \
sudo curl -sSL https://raw.githubusercontent.com/databasus/databasus/refs/heads/main/install-databasus.sh | sudo bash

Dans ce cas, Databasus sera installé dans le répertoire /opt/databasus.

Option 2 : simple docker run

La façon la plus simple de lancer Databasus :

docker run -d \
  --name databasus \
  -p 4005:4005 \
  -v ./databasus-data:/databasus-data \
  --restart unless-stopped \
  databasus/databasus:latest

Cette seule commande va :

  • ✅ Démarrer Databasus
  • ✅ Stocker toutes les données dans le répertoire ./databasus-data
  • ✅ Redémarrer automatiquement après un redémarrage du système

Option 3 : configuration Docker Compose

Créez un fichier docker-compose.yml avec la configuration suivante :

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    ports:
      - "4005:4005"
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped

Puis exécutez :

docker compose up -d

Gardez à l'esprit que le démarrage peut prendre jusqu'à ~2 minutes.

Option 4 : Kubernetes avec Helm

Pour les déploiements Kubernetes, installez directement depuis le registre OCI. Choisissez la méthode d'accès adaptée à votre environnement.

Avec ClusterIP + port-forward (développement)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace

Accès via port-forward :

kubectl port-forward svc/databasus-service 4005:4005 -n databasus
# Access at http://localhost:4005

Avec LoadBalancer (environnements cloud)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set service.type=LoadBalancer

Récupérez l'IP externe et accédez à Databasus :

kubectl get svc databasus-service -n databasus
# Access at http://<EXTERNAL-IP>:4005

Avec Ingress (accès par nom de domaine)

helm install databasus oci://ghcr.io/databasus/charts/databasus \
  -n databasus --create-namespace \
  --set ingress.enabled=true \
  --set ingress.hosts[0].host=backup.example.com

Pour les autres options (NodePort, TLS, HTTPRoute pour Gateway API), consultez la documentation du chart Helm.

Exécution derrière le reverse proxy Caddy

Pour les déploiements en production, vous pouvez utiliser Caddy comme reverse proxy pour obtenir des certificats HTTPS automatiques et un accès sécurisé à Databasus. Voici une configuration Docker Compose complète avec Caddy.

Docker Compose avec Caddy

Créez un fichier docker-compose.yml :

services:
  databasus:
    container_name: databasus
    image: databasus/databasus:latest
    volumes:
      - ./databasus-data:/databasus-data
    restart: unless-stopped
    # No port exposed - Caddy handles external access

  caddy:
    container_name: caddy
    image: caddy:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy-data:/data
      - ./caddy-config:/config
    restart: unless-stopped
    depends_on:
      - databasus

Créez un Caddyfile dans le même répertoire :

backup.example.com {
    reverse_proxy databasus:4005
}

Puis démarrez les services :

docker compose up -d

Cette configuration fournit :

  • ✅ HTTPS automatique avec les certificats Let's Encrypt
  • ✅ Redirection de HTTP vers HTTPS
  • ✅ Reverse proxy vers Databasus
  • ✅ Persistance des données pour Caddy comme pour Databasus

Remplacez backup.example.com par votre propre domaine. Assurez-vous que le DNS de votre domaine pointe vers l'adresse IP de votre serveur avant de démarrer les services.

Premiers pas

Après l'installation :

  1. Lancez et ouvrez Databasus : démarrez Databasus et rendez-vous sur http://localhost:4005
  2. Créez votre première tâche de sauvegarde : cliquez sur "New Backup" et configurez la connexion à votre base PostgreSQL
  3. Configurez la planification : définissez la fréquence des backups (horaire, quotidienne, hebdomadaire, mensuelle ou cron)
  4. Choisissez la destination de stockage : sélectionnez où stocker vos backups (local, S3, Google Drive, etc.)
  5. Configurez les notifications : ajoutez des canaux de notification (Slack, Telegram, Discord) pour être alerté du statut des backups
  6. Lancez la sauvegarde : enregistrez votre configuration et regardez votre premier backup s'exécuter !

Health checks

Health check Docker

Un health check intégré est activé automatiquement pour docker run et Docker Compose. Le conteneur passe à l'état healthy dès que Databasus répond aux requêtes (après un court délai de démarrage). Il vérifie uniquement que l'application répond, donc le conteneur n'est pas redémarré pour des conditions non critiques comme un espace disque faible.

Endpoint de monitoring / statut

Pour le monitoring de disponibilité et les tableaux de bord de statut :

GET http://<host>:4005/api/v1/system/health

Renvoie 200 quand tout va bien, ou 503 avec une raison quand quelque chose demande de l'attention : base de données interne, cache, occupation disque (au-delà de 95 %), outils clients de bases de données, planificateur de backups et vivacité de l'agent de vérification. L'endpoint est accessible sans authentification, et CORS est ouvert pour les outils de monitoring qui tournent dans le navigateur.

⚠️ Important : utilisez cet endpoint pour le monitoring et les alertes, pas comme liveness probe de conteneur ou de Kubernetes : il renvoie 503 pour des états dégradés mais fonctionnels (par exemple un disque presque plein), ce qui redémarrerait un conteneur en état de marche.

Kubernetes

Utilisez une liveness/readiness probe qui exécute databasus healthcheck ; gardez l'endpoint /api/v1/system/health pour le monitoring externe.

Comment mettre à jour Databasus ?

Mettre à jour une installation Docker

Pour mettre à jour Databasus exécuté via Docker, vous devez l'arrêter, nettoyer le cache Docker et redémarrer le conteneur.

  1. Allez dans le répertoire où Databasus est installé (généralement /opt/databasus)
  2. Arrêtez le conteneur : docker compose stop
  3. Nettoyez le cache Docker : docker system prune -a
  4. Redémarrez le conteneur : docker compose up -d

Cela récupérera la dernière version de Databasus depuis Docker Hub (si vous n'avez pas figé la version dans le fichier docker-compose.yml).

Mettre à jour une installation Helm

Pour mettre à jour Databasus exécuté sur Kubernetes via Helm, utilisez la commande upgrade :

helm upgrade databasus oci://ghcr.io/databasus/charts/databasus -n databasus

Si vous avez des valeurs personnalisées, ajoutez -f values.yaml ou utilisez des options --set pour préserver votre configuration. Helm effectuera une mise à jour progressive vers la nouvelle version.

Migrer depuis Postgresus

Databasus est le nouveau nom de Postgresus. Si vous utilisez actuellement Postgresus, vous pouvez continuer à l'utiliser ou migrer vers Databasus.

Important : renommer simplement l'image Docker ne suffit pas, car Postgresus et Databasus utilisent des dossiers de données et des noms de base internes différents.

Pour migrer :

  1. Arrêtez votre conteneur Postgresus : docker compose stop
  2. Installez Databasus avec l'une des méthodes ci-dessus (utilisez un autre chemin de volume, ./databasus-data)
  3. Recréez manuellement vos bases de données, stockages et notificateurs dans Databasus

Pendant la migration, Postgresus et Databasus peuvent tourner côte à côte avec des ports et des chemins de volume différents.

Dépannage

Le conteneur ne démarre pas

Si le conteneur ne démarre pas, consultez les logs :

docker logs databasus

Port déjà utilisé

Si le port 4005 est déjà utilisé, vous pouvez le changer dans votre docker-compose.yml :

ports:
  - "8080:4005" # Change 8080 to any available port

Erreurs de permissions

Si vous rencontrez des problèmes de permissions sur le répertoire de données :

sudo chown -R $USER:$USER ./databasus-data
chmod -R 755 ./databasus-data