Initial vault setup
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
---
|
||||
title: Portabase
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, database, backup, mysql, postgresql, mongo, dart, multi-db]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Database, https://github.com/Portabase/portabase]
|
||||
---
|
||||
|
||||
# 🗄️ Portabase
|
||||
|
||||
> **Le couteau suisse du backup de bases de données** : une seule app pour sauvegarder **MySQL, PostgreSQL, MongoDB, SQLite, et d'autres**, avec une UI web simple et un binaire unique.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | (GitHub) |
|
||||
| **GitHub** | [Portabase/portabase](https://github.com/Portabase/portabase) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Dart (Flutter web backend) |
|
||||
| **Étoiles GitHub** | 961 ⭐ |
|
||||
| **Catégorie** | [[cat-database\|Database]] |
|
||||
| **Public** | Débutants à intermédiaires |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Portabase** est un **outil de backup et restore de bases de données multi-SGBD** avec une interface web. Contrairement à [[app-pg-back-web]] qui est focalisé Postgres, Portabase vise large : vous connectez une ou plusieurs bases, l'app détecte le type (MySQL, Postgres, Mongo, SQLite), et vous pouvez programmer des dumps centralisés.
|
||||
|
||||
- ✅ **Multi-bases** : MySQL, MariaDB, PostgreSQL, MongoDB, SQLite
|
||||
- ✅ **Interface web unique** pour toutes vos instances
|
||||
- ✅ **Planification cron-like** : sauvegardes automatiques à fréquence configurable
|
||||
- ✅ **Stockage local + S3** : disque, MinIO, AWS S3, Backblaze B2
|
||||
- ✅ **Restauration en un clic** depuis l'UI
|
||||
- ✅ **Historique des dumps** : visualisation taille, durée, statut
|
||||
- ✅ **Rétention** : combien de dumps garder par base
|
||||
- ✅ **Compression** : gzip automatique
|
||||
- ✅ **Notifications** : webhook, email (selon configuration)
|
||||
- ✅ **Binaire unique Dart** : déploiement simple
|
||||
- ✅ **Authentification intégrée**
|
||||
|
||||
**Public cible** : **les homelabbers et petites équipes qui self-hostent des bases hétérogènes**. Si vous avez un WordPress (MySQL), un Nextcloud (Postgres), et un Mongo de logging, Portabase unifie tout dans une seule UI. C'est l'équivalent moderne d'un script `pg_dump` + `mysqldump` + cron, mais avec une console centralisée.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Docker Compose
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
portabase:
|
||||
image: ghcr.io/portabase/portabase:latest
|
||||
container_name: portabase
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
PORTABASE_ADMIN_EMAIL: admin@example.com
|
||||
PORTABASE_ADMIN_PASSWORD: change-me-now
|
||||
PORTABASE_ENCRYPTION_KEY: 32-bytes-random-base64-key
|
||||
volumes:
|
||||
- portabase-data:/app/data
|
||||
- portabase-backups:/app/backups
|
||||
ports:
|
||||
- "8090:8090"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.portabase.rule=Host(`portabase.example.com`)"
|
||||
- "traefik.http.routers.portabase.entrypoints=websecure"
|
||||
- "traefik.http.routers.portabase.tls.certresolver=letsencrypt"
|
||||
|
||||
volumes:
|
||||
portabase-data:
|
||||
portabase-backups:
|
||||
```
|
||||
|
||||
### Bare-metal (Dart)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/Portabase/portabase.git
|
||||
cd portabase
|
||||
dart pub get
|
||||
dart run bin/main.dart
|
||||
```
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Accéder à l'UI** : `http://IP:8090` (ou via reverse-proxy HTTPS)
|
||||
2. **Login** avec les credentials admin configurés
|
||||
3. **Ajouter une connexion** : menu "Connections" → "New" → choisir le type (MySQL, Postgres, Mongo, SQLite) → host, port, user, password
|
||||
4. **Tester la connexion** : bouton "Test" pour vérifier que l'app peut joindre la base
|
||||
5. **Créer un job de backup** : sélectionner la connexion, choisir les bases, la fréquence, la destination (local ou S3)
|
||||
6. **Premier dump manuel** : bouton "Backup now" pour valider end-to-end avant d'automatiser
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
|
||||
- [[app-pg-back-web]] — Équivalent focalisé Postgres, plus mature
|
||||
- [[app-velld]] — Concurrent direct, aussi multi-bases
|
||||
- **BorgBackup / Restic** — Pas spécifique aux bases, mais excellent pour archiver
|
||||
- **Autobackup** (scripts) — DIY avec cron + `pg_dump` / `mysqldump`
|
||||
- **pgBackRest** — Standard bare-metal pour Postgres
|
||||
|
||||
### Comparaison Portabase vs autres
|
||||
|
||||
| Critère | Portabase | PG Back Web | Velld | Scripts cron |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| **Multi-SGBD** | ✅ | ❌ (Postgres) | ✅ | ✅ (DIY) |
|
||||
| **UI web** | ✅ | ✅ | ✅ | ❌ |
|
||||
| **Restauration UI** | ✅ | ✅ | ✅ | ❌ (manuel) |
|
||||
| **S3** | ✅ | ✅ | ✅ | ✅ (script) |
|
||||
| **Notifications** | ✅ | ✅ | ✅ | ✅ (script) |
|
||||
| **Difficulté setup** | 5 min | 5 min | 5 min | 30+ min |
|
||||
| **Maturité** | Jeune | Établi | Jeune | — |
|
||||
|
||||
**Verdict** : Portabase est **idéal pour le multi-bases** quand vous voulez une seule console pour tout. Si vous n'avez que du Postgres, [[app-pg-back-web]] est plus spécialisé. Si vous voulez un outil avec une roadmap active et de l'automation, comparez avec Velld.
|
||||
|
||||
### Propriétaires (ce que Portabase remplace)
|
||||
|
||||
- **SimpleBackups** (SaaS, freemium)
|
||||
- **SnapShooter** (SaaS pour backups serveur)
|
||||
- **Cloud Provider backups** managés
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- **`PORTABASE_ENCRYPTION_KEY`** : indispensable pour chiffrer les credentials et les dumps au repos — **à sauvegarder hors-ligne**
|
||||
- **Placez Portabase derrière un reverse-proxy authentifié** : exposition contrôlée, cf. [[securisation-home-lab]]
|
||||
- **HTTPS obligatoire** : les dumps contiennent des données sensibles, ne jamais transiter en clair
|
||||
- **Chiffrement des destinations S3** : activez SSE sur le bucket et les permissions IAM minimales
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [GitHub Portabase/portabase](https://github.com/Portabase/portabase)
|
||||
- [Documentation officielle](https://github.com/Portabase/portabase/wiki)
|
||||
- [Site du projet](https://portabase.app/)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-database]] — Catégorie Database
|
||||
- [[app-traefik]] — Reverse-proxy HTTPS
|
||||
- [[recettes-docker-compose]] — Templates Docker Compose
|
||||
- [[securisation-home-lab]] — Sécuriser l'accès aux interfaces d'admin
|
||||
- [[app-portainer]] — Gestion des containers Docker
|
||||
- [[app-dockge]] — Alternative UI à Portainer
|
||||
Reference in New Issue
Block a user