155 lines
6.9 KiB
Markdown
155 lines
6.9 KiB
Markdown
---
|
|
title: Databasus
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, database, backup, postgresql, typescript, fair-source, intermediate]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Database, https://github.com/databasus/databasus]
|
|
---
|
|
|
|
# 🗄️ Databasus
|
|
|
|
> **Le spécialiste de la sauvegarde PostgreSQL automatisée** : planification, chiffrement, restauration sélective. Une alternative moderne et self-hosted aux services managés type pgBackWeb.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [databasus.com](https://databasus.com/) |
|
|
| **GitHub** | [databasus/databasus](https://github.com/databasus/databasus) |
|
|
| **License** | **Fair Source** (source visible, restrictions sur les usages commerciaux concurrents) |
|
|
| **Langage** | TypeScript (Node.js) |
|
|
| **Étoiles GitHub** | 7,1k ⭐ |
|
|
| **Dernière MAJ** | 2026-05-30 |
|
|
| **Catégorie** | [[cat-database\|Database]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Databasus** est un outil **self-hosted de backup PostgreSQL** qui automatise planification, exécution et restauration des sauvegardes. Le projet vise clairement la simplicité opérationnelle : une UI web claire, peu de configuration, et des sauvegardes fiables avec rotation et notification. C'est un projet relativement jeune mais qui a rapidement trouvé sa place grâce à son approche opinionated et à son expérience utilisateur soignée.
|
|
|
|
⚠️ **À noter sur la licence** : Databasus utilise une licence **Fair Source** (équivalent de Business Source License). Cela signifie que le code source est **public et lisible**, mais qu'il existe des **restrictions sur l'usage commercial** : il est interdit de proposer Databasus en tant que service concurrent. Pour un usage personnel ou en entreprise interne, c'est libre ; pour du SaaS commercial, il faut contacter l'éditeur. Cette licence est différente des classiques MIT/Apache/AGPL et mérite d'être lue attentivement.
|
|
|
|
Fonctionnellement, Databasus supporte pg_dump et pg_basebackup, avec stockage sur disque local, S3, MinIO ou tout backend compatible. Les sauvegardes peuvent être chiffrées (AES-256), compressées, et la rotation est configurable par stratégie (nombre de sauvegardes conservées, durée). L'UI permet de **restaurer une sauvegarde en un clic** vers une base existante, ou de planifier des jobs récurrents. Le monitoring (succès/échec) remonte dans la même UI.
|
|
|
|
**Public cible** : **équipes utilisant PostgreSQL en production**, devs qui veulent un backup fiable sans scripter à la main, admins qui ont besoin d'une UI centralisée pour plusieurs bases.
|
|
|
|
### Fonctionnalités principales
|
|
|
|
- ✅ **Backups planifiés** : quotidien, horaire, custom cron
|
|
- ✅ **PostgreSQL** : pg_dump (logique) + pg_basebackup (physique)
|
|
- ✅ **Stockage multiple** : disque local, S3, MinIO, S3-compatible
|
|
- ✅ **Chiffrement AES-256** des sauvegardes
|
|
- ✅ **Restauration sélective** : choisir une sauvegarde et la restaurer en 1 clic
|
|
- ✅ **Rétention** : stratégie par nombre ou durée (GFS rotatif)
|
|
- ✅ **Notifications** : Email, Telegram, Discord, Webhook
|
|
- ✅ **Multi-bases** : gérer plusieurs instances PostgreSQL depuis une seule UI
|
|
- ✅ **Compression** : gzip, zstd
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
databasus:
|
|
image: databasus/databasus:latest
|
|
container_name: databasus
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
# Secret à changer en prod !
|
|
APP_SECRET_KEY: "changez-moi-en-production-32-chars-min"
|
|
APP_BASE_URL: "https://backup.example.com"
|
|
volumes:
|
|
- databasus_data:/app/data
|
|
- databasus_backups:/backups
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.databasus.rule=Host(`backup.example.com`)"
|
|
- "traefik.http.routers.databasus.entrypoints=websecure"
|
|
- "traefik.http.routers.databasus.tls.certresolver=letsencrypt"
|
|
|
|
volumes:
|
|
databasus_data:
|
|
databasus_backups:
|
|
```
|
|
|
|
### Docker Run (minimal)
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name databasus \
|
|
--restart unless-stopped \
|
|
-p 8080:8080 \
|
|
-e APP_SECRET_KEY="$(openssl rand -hex 32)" \
|
|
-v databasus_data:/app/data \
|
|
-v databasus_backups:/backups \
|
|
databasus/databasus:latest
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Créer le compte admin** : à la première connexion, créer un utilisateur avec un mot de passe fort
|
|
2. **Ajouter une instance PostgreSQL** : URL de connexion, identifiants, base par défaut
|
|
3. **Configurer le stockage distant** (optionnel) : S3, MinIO, etc.
|
|
4. **Créer un job de backup** : planification, type (logique/physique), rétention
|
|
5. **Activer les notifications** : Telegram/Email/Discord pour les succès et échecs
|
|
6. **Tester la restauration** : créer un job et le restaurer pour valider la chaîne complète
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
|
|
- **pgBackRest** — Le standard pro pour PostgreSQL (CLI, robuste, incremental)
|
|
- **wal-g** — Backup continu basé sur les WAL Postgres
|
|
- **pgBackWeb** — Interface web UI pour pgBackRest, plus récente
|
|
- **Barman** — Solution de backup managée par EnterpriseDB
|
|
- [[app-velld]] — Backups multi-bases (MySQL, Postgres, Mongo)
|
|
- **autobackup** — Scripts shell minimalistes
|
|
|
|
### Comparaison Databasus vs alternatives
|
|
|
|
| Critère | Databasus | pgBackWeb | pgBackRest | wal-g |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| Interface web | ✅ | ✅ | ❌ | ❌ |
|
|
| Facilité de setup | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
|
|
| UI intégrée | ✅ | ✅ | ❌ | ❌ |
|
|
| Stockage S3 | ✅ | ✅ | ✅ | ✅ |
|
|
| Chiffrement | ✅ | ✅ | ✅ | ✅ |
|
|
| Incrémental | ❌ | ❌ | ✅ | ✅ |
|
|
| Licence | Fair Source | AGPL | MIT | Apache |
|
|
|
|
**Verdict** : Databasus brille par sa **simplicité et son UI**. Pour des besoins de PITR (point-in-time-recovery) ou des bases très volumineuses, préférer pgBackRest ou wal-g.
|
|
|
|
### Propriétaires (ce que Databasus remplace)
|
|
|
|
- **Cloud SQL automated backups** (Google)
|
|
- **RDS automated backups** (AWS)
|
|
- **Crunchy Bridge Backup**
|
|
- **Aiven backup service**
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **🔐 `APP_SECRET_KEY` obligatoire en production** : sert à chiffrer les credentials des bases dans la BDD interne. `openssl rand -hex 32` minimum
|
|
- **🔒 Stocker les sauvegardes hors du serveur** : S3/MinIO plutôt que disque local, sinon un crash disque = perte du backup
|
|
- **🛡️ Chiffrement AES-256 des sauvegardes** : activé par défaut, conserver la clé de chiffrement dans un vault (Bitwarden, KeePass, Vaultwarden)
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel](https://databasus.com/)
|
|
- [Documentation](https://docs.databasus.com/)
|
|
- [GitHub databasus/databasus](https://github.com/databasus/databasus)
|
|
- [Fair Source Definition](https://fair.io/)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-database]] — Catégorie Database
|
|
- [[app-traefik]] — Pour exposer Databasus en HTTPS
|
|
- [[recettes-docker-compose]] — Intégration dans une stack existante
|
|
- [[securisation-home-lab]] — Bonnes pratiques de backup
|