---
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
