170 lines
6.6 KiB
Markdown
170 lines
6.6 KiB
Markdown
---
|
|
title: Velld
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, database, backup, typescript, multi-db, automation]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Database, https://github.com/dendianugerah/velld]
|
|
---
|
|
|
|
# 🗄️ Velld
|
|
|
|
> **Gestion et automatisation de backups de bases** : un tableau de bord moderne pour programmer, superviser et restaurer vos sauvegardes multi-SGBD, avec un accent fort sur l'automation.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | (GitHub) |
|
|
| **GitHub** | [dendianugerah/velld](https://github.com/dendianugerah/velld) |
|
|
| **License** | MIT |
|
|
| **Langage** | TypeScript (Node.js + Next.js) |
|
|
| **Étoiles GitHub** | 474 ⭐ |
|
|
| **Catégorie** | [[cat-database\|Database]] |
|
|
| **Public** | Intermédiaires |
|
|
|
|
## 📝 Description
|
|
|
|
**Velld** est une **plateforme de gestion de backups de bases de données** avec une interface moderne et un focus sur l'automatisation. Concurrent direct de [[app-portabase]], il vise le même public — les homelabbers et équipes qui veulent unifier leurs sauvegardes — mais avec une stack 100 % TypeScript et une approche plus orientée "dashboard".
|
|
|
|
- ✅ **Multi-bases** : MySQL, PostgreSQL, MongoDB, MariaDB
|
|
- ✅ **Dashboard moderne** : visualisation de l'état de santé des backups en un coup d'œil
|
|
- ✅ **Planification flexible** : cron, intervalles personnalisés
|
|
- ✅ **Stockage multiple** : local, S3, S3-compatible (MinIO, Backblaze, Wasabi)
|
|
- ✅ **Restauration depuis l'UI** : sélection d'un dump, choix de la base cible
|
|
- ✅ **Rétention configurable** : par stratégie, par base
|
|
- ✅ **Compression et chiffrement** : dumps compressés, chiffrés au repos
|
|
- ✅ **Notifications** : Discord, Slack, email, webhook
|
|
- ✅ **API REST** : intégration dans vos workflows CI/CD
|
|
- ✅ **Authentification intégrée** : multi-utilisateurs
|
|
- ✅ **Historique détaillé** : logs d'exécution, durée, taille, statut
|
|
|
|
**Public cible** : **les équipes qui gèrent plusieurs bases** et veulent **automatiser** leurs sauvegardes avec une supervision claire. Le projet est plus jeune que [[app-pg-back-web]] mais plus orienté multi-bases. C'est un choix solide si vous appréciez l'écosystème TypeScript / Next.js (cohérence avec un éventuel front-end custom).
|
|
|
|
## 🚀 Installation
|
|
|
|
### Docker Compose
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
velld:
|
|
image: ghcr.io/dendianugerah/velld:latest
|
|
container_name: velld
|
|
restart: unless-stopped
|
|
environment:
|
|
VELLD_SECRET: change-me-32-bytes-secret
|
|
VELLD_DATABASE_URL: postgresql://velld:change-me@velld-db:5432/velld
|
|
VELLD_ADMIN_EMAIL: admin@example.com
|
|
VELLD_ADMIN_PASSWORD: change-me-now
|
|
depends_on:
|
|
velld-db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- velld-data:/app/data
|
|
- velld-backups:/app/backups
|
|
ports:
|
|
- "8091:8091"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.velld.rule=Host(`velld.example.com`)"
|
|
- "traefik.http.routers.velld.entrypoints=websecure"
|
|
- "traefik.http.routers.velld.tls.certresolver=letsencrypt"
|
|
|
|
velld-db:
|
|
image: postgres:16-alpine
|
|
container_name: velld-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: velld
|
|
POSTGRES_PASSWORD: change-me
|
|
POSTGRES_DB: velld
|
|
volumes:
|
|
- velld-pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U velld"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
velld-data:
|
|
velld-backups:
|
|
velld-pgdata:
|
|
```
|
|
|
|
### Bare-metal (Node.js)
|
|
|
|
```bash
|
|
git clone https://github.com/dendianugerah/velld.git
|
|
cd velld
|
|
pnpm install
|
|
pnpm build
|
|
pnpm start
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Accéder à l'UI** : `http://IP:8091` (ou via reverse-proxy)
|
|
2. **Login admin** avec les credentials initialisés par les variables d'environnement
|
|
3. **Ajouter une connexion source** : menu "Connections" → choisir le type (MySQL, Postgres, Mongo) → credentials
|
|
4. **Définir une destination de stockage** : menu "Storage" → local ou S3 (bucket, region, clés)
|
|
5. **Créer un schedule de backup** : sélectionner connexion + destination + fréquence + rétention
|
|
6. **Tester une exécution manuelle** : bouton "Run now" depuis le schedule, vérifier l'apparition du dump
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
|
|
- [[app-portabase]] — Concurrent direct, plus mature sur le multi-bases
|
|
- [[app-pg-back-web]] — Référence Postgres, plus simple si mono-SGBD
|
|
- **BorgBackup / Restic** — Backups fichiers/dossiers, pas spécifiques aux bases
|
|
- **pgBackRest** — Standard bare-metal Postgres
|
|
- **Autobackup scripts** — DIY cron + `pg_dump`
|
|
|
|
### Comparaison Velld vs autres
|
|
|
|
| Critère | Velld | Portabase | PG Back Web | pgBackRest |
|
|
| :--- | :--- | :--- | :--- | :--- |
|
|
| **Multi-SGBD** | ✅ | ✅ | ❌ (Postgres) | ❌ (Postgres) |
|
|
| **UI moderne** | ✅ | ✅ | ✅ | ❌ (CLI) |
|
|
| **Automation** | Forte | Moyenne | Forte | Forte |
|
|
| **S3 / cloud** | ✅ | ✅ | ✅ | ✅ |
|
|
| **Chiffrement at rest** | ✅ | ✅ | ✅ | ✅ |
|
|
| **Notifications** | Multi | Limité | Multi | Logs |
|
|
| **API REST** | ✅ | ✅ | ✅ | Partielle |
|
|
| **Stack** | TypeScript | Dart | Go | Bash/C |
|
|
|
|
**Verdict** : Velld est un **concurrent sérieux de Portabase** avec une stack 100 % TypeScript appréciée en entreprise. Pour un projet jeune mais actif, c'est un bon choix si vous voulez une UI moderne. Pour du Postgres pur, [[app-pg-back-web]] reste plus simple.
|
|
|
|
### Propriétaires (ce que Velld remplace)
|
|
|
|
- **SimpleBackups** (SaaS freemium)
|
|
- **Aiven** (backups managés)
|
|
- **Cloud Provider backup automation** (scripts custom)
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **`VELLD_SECRET`** : clé de chiffrement des secrets, à sauvegarder **hors-ligne** dès l'init
|
|
- **HTTPS obligatoire** via [[app-traefik]] : les dumps transitent des credentials et des données
|
|
- **Restreindre l'accès** : Velld expose un contrôle total sur les bases, gardez-le derrière un VPN / SSO (cf. [[securisation-home-lab]])
|
|
- **Chiffrement S3** : SSE-KMS recommandé sur le bucket de destination, IAM keys rotatives
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub dendianugerah/velld](https://github.com/dendianugerah/velld)
|
|
- [Documentation officielle](https://github.com/dendianugerah/velld#readme)
|
|
- [Issues & Roadmap](https://github.com/dendianugerah/velld/issues)
|
|
|
|
## 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
|