Files
wiki/Catalogue-Self-Hosted/apps/app-pg-back-web.md
T
2026-06-09 18:40:21 +02:00

169 lines
6.5 KiB
Markdown

---
title: PG Back Web
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, database, postgresql, backup, go, beginner]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Database, https://github.com/eduardolat/pgbackweb]
---
# 🗄️ PG Back Web
> **Les sauvegardes PostgreSQL sans la douleur** : une web UI minimaliste pour programmer, superviser et restaurer vos dumps Postgres. Plus simple que `pg_dump` en cron, plus visible que les scripts maisons.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | (GitHub) |
| **GitHub** | [eduardolat/pgbackweb](https://github.com/eduardolat/pgbackweb) |
| **License** | MIT |
| **Langage** | Go (backend) + TypeScript / Svelte (frontend) |
| **Étoiles GitHub** | 2,5k ⭐ |
| **Catégorie** | [[cat-database\|Database]] |
| **Public** | Débutants à intermédiaires |
## 📝 Description
**PG Back Web** est une **interface web dédiée aux sauvegardes PostgreSQL**. Le projet se positionne comme une alternative moderne à `pg_dump` + cron : au lieu de bricoler un script et de surveiller des logs en clair, vous avez une UI qui liste les bases, programme les dumps, et permet de restaurer en un clic.
-**Découverte automatique des bases** : connectez votre Postgres, l'app détecte les bases
-**Planification flexible** : cron-like, granularité à la minute
-**Sauvegardes locales et S3** : disque local, MinIO, AWS S3, Backblaze B2, etc.
-**Restauration en un clic** : depuis l'UI, sélectionnez un dump, choisissez la base cible
-**Rétention configurable** : combien de dumps garder, par base
-**Compression** : gzip/zstd automatique
-**Notifications** : email, Discord, Slack, Telegram (en cas d'échec)
-**API REST** : tout est scriptable
-**Multi-instances** : sauvegardez plusieurs serveurs Postgres depuis une seule UI
-**Authentification intégrée** : multi-utilisateurs
-**Léger** : binaire Go unique, faible empreinte mémoire
**Public cible** : **les devs et petites équipes qui self-hostent du Postgres** et qui veulent une solution de backup **visible et self-hosted** sans payer pganalyze / pgBackRest manager. Très bon choix si vous n'avez pas 10 instances : simple, rapide à mettre en place, et bien plus lisible qu'un cron obscur.
## 🚀 Installation
### Docker Compose
```yaml
# docker-compose.yml
version: '3.8'
services:
pgbackweb:
image: eduardolat/pgbackweb:latest
container_name: pgbackweb
restart: unless-stopped
environment:
PBW_ENCRYPTION_KEY: change-me-32-bytes-base64
PBW_POSTGRES_HOST: postgres
PBW_POSTGRES_PORT: 5432
PBW_POSTGRES_USER: pgbackweb
PBW_POSTGRES_PASSWORD: change-me
PBW_POSTGRES_DB: pgbackweb
depends_on:
postgres:
condition: service_healthy
volumes:
- pgbackweb-data:/app/data
- pgbackweb-backups:/app/backups
ports:
- "8085:8085"
labels:
- "traefik.enable=true"
- "traefik.http.routers.pgbackweb.rule=Host(`pgback.example.com`)"
- "traefik.http.routers.pgbackweb.entrypoints=websecure"
- "traefik.http.routers.pgbackweb.tls.certresolver=letsencrypt"
postgres:
image: postgres:16-alpine
container_name: pgbackweb-db
restart: unless-stopped
environment:
POSTGRES_USER: pgbackweb
POSTGRES_PASSWORD: change-me
POSTGRES_DB: pgbackweb
volumes:
- pgbackweb-pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pgbackweb"]
interval: 10s
timeout: 5s
retries: 5
volumes:
pgbackweb-data:
pgbackweb-backups:
pgbackweb-pgdata:
```
### Bare-metal (Go)
```bash
git clone https://github.com/eduardolat/pgbackweb.git
cd pgbackweb
go build -o pgbackweb ./cmd/pgbackweb
./pgbackweb
```
## ⚙️ Configuration Initiale
1. **Accéder à l'UI** : `http://IP:8085` (ou via votre reverse-proxy)
2. **Créer le compte admin** : premier lancement, on vous demande un email + mot de passe
3. **Ajouter une instance Postgres à sauvegarder** : menu "Servers" → "New" → host, port, user, password, base à découvrir
4. **Créer un plan de backup** : choisissez la base, la fréquence (cron), la destination (local, S3), la rétention
5. **Tester un dump manuel** : bouton "Run now" pour vérifier que tout fonctionne
6. **Restaurer** : sélectionnez un dump dans la liste → "Restore" → choisissez la base cible
## 🔄 Alternatives
### Open Source
- [[app-portabase]] — Backup multi-bases (Postgres, MySQL, Mongo)
- [[app-velld]] — Backup multi-bases avec planification
- **pgBackRest** — Le standard bare-metal pour Postgres, sans UI web
- **wal-g** — Alternative orientée cloud (S3, GCS)
- **Barman** — Solution de backup enterprise par 2ndQuadrant
### Comparaison PG Back Web vs autres
| Critère | PG Back Web | pgBackRest | Portabase | Velld |
| :--- | :--- | :--- | :--- | :--- |
| **Interface web** | ✅ | ❌ (CLI) | ✅ | ✅ |
| **SGBD supportés** | Postgres | Postgres | Multi | Multi |
| **Installation** | 5 min | 30 min | 5 min | 5 min |
| **Granularité cron** | ✅ | ✅ | ✅ | ✅ |
| **Restauration UI** | ✅ | Partielle | ✅ | ✅ |
| **S3 / cloud** | ✅ | ✅ | ✅ | ✅ |
| **Poids** | Léger | Natif | Léger | Léger |
**Verdict** : PG Back Web est **le meilleur choix si vous ne gérez que du Postgres** et que vous voulez une UI simple. Pour du multi-bases, Portabase ou Velld sont plus adaptés.
### Propriétaires (ce que PG Back Web remplace)
- **pganalyze** (SaaS, plan gratuit limité)
- **pgBackRest Manager** (interface payante autour de pgBackRest)
- **Cloud SQL automated backups** (si vous migrez vers du managé)
## 🔐 Sécurité
- **`PBW_ENCRYPTION_KEY`** : clé de chiffrement des credentials stockés — **ne jamais la perdre**, et la garder hors du repo Git
- **Ne jamais exposer PG Back Web publiquement** : c'est un outil d'admin, gardez-le derrière un VPN (cf. [[securisation-home-lab]]) ou derrière une auth SSO
- **HTTPS obligatoire** : passez par [[app-traefik]] avec un certificat valide
## 📚 Ressources
- [GitHub eduardolat/pgbackweb](https://github.com/eduardolat/pgbackweb)
- [Documentation officielle](https://pgbackweb.evolutio.pt/)
- [Démo live](https://demo.pgbackweb.evolutio.pt/)
## 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