Initial vault setup
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user