Anonymize sensitive information and add SSH setup documentation
Documentation: - Add comprehensive SSH key setup guide in docs/SSH-SETUP.md - Add SSH configuration sections to README.md and QUICKSTART.md - Replace specific provider examples with generic alternatives - Remove Hetzner/BorgBase specific instructions for broader applicability Anonymization: - Remove company/project specific names (Agence66 → generic) - Generalize service names (/srv/app → /srv/*) - Remove detailed application lists (/opt/nextcloud, etc. → /opt/*) - Replace specific usernames and hostnames with placeholders - Change repository label from 'serveur' to 'production' Files updated: - README.md: Add SSH setup, anonymize content - QUICKSTART.md: Add SSH configuration steps - CHANGELOG.md: Generalize paths list - config.yaml: Generic title and label - install.sh: Remove branding - scripts/healthcheck.sh: Remove branding - docs/SSH-SETUP.md: New comprehensive SSH guide 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
14
CHANGELOG.md
14
CHANGELOG.md
@@ -27,19 +27,9 @@ Toutes les modifications notables de ce projet seront documentées dans ce fichi
|
||||
### Chemins sauvegardés
|
||||
|
||||
- `/var/www` - Sites web
|
||||
- `/srv/minecraftserver` - Serveur Minecraft
|
||||
- `/srv/reddiscordbot` - Bot Discord
|
||||
- `/srv/waltercoiffure` - Application Walter Coiffure
|
||||
- `/srv/*` - Services applicatifs
|
||||
- `/etc` - Configurations système
|
||||
- `/opt/nextcloud` - Nextcloud
|
||||
- `/opt/traefik` - Reverse proxy Traefik
|
||||
- `/opt/n8n` - Automation n8n
|
||||
- `/opt/portainer` - Gestion Docker
|
||||
- `/opt/uptime-kuma` - Monitoring
|
||||
- `/opt/vaultwarden` - Gestionnaire de mots de passe
|
||||
- `/opt/mailcow-dockerized` - Serveur mail
|
||||
- `/opt/netdata` - Monitoring système
|
||||
- `/opt/gitea` - Forge Git
|
||||
- `/opt/*` - Applications tierces
|
||||
- `/home` - Répertoires utilisateurs
|
||||
|
||||
### Compatibilité
|
||||
|
||||
@@ -45,13 +45,34 @@ NTFY_URL=https://ntfy.sh/votre-topic
|
||||
NTFY_USER=username:password
|
||||
```
|
||||
|
||||
## Configuration SSH (repository distant)
|
||||
|
||||
Si votre repository est distant, configurez d'abord les clés SSH :
|
||||
|
||||
```bash
|
||||
# Générer une clé SSH
|
||||
sudo ssh-keygen -t ed25519 -C "borgmatic-backup"
|
||||
# Appuyez sur Entrée 3 fois (emplacement par défaut, pas de passphrase)
|
||||
|
||||
# Copier la clé sur le serveur
|
||||
sudo ssh-copy-id -p PORT user@backup-server.com
|
||||
|
||||
# Tester (ne doit pas demander de mot de passe)
|
||||
sudo ssh -p PORT user@backup-server.com
|
||||
|
||||
# Si ssh-copy-id ne fonctionne pas, méthode manuelle :
|
||||
# 1. Afficher la clé : sudo cat /root/.ssh/id_ed25519.pub
|
||||
# 2. Se connecter : ssh -p PORT user@backup-server.com
|
||||
# 3. Ajouter : echo "VOTRE_CLE" >> ~/.ssh/authorized_keys
|
||||
```
|
||||
|
||||
## Initialiser le repository (si nouveau)
|
||||
|
||||
```bash
|
||||
# Repository local
|
||||
borg init --encryption=repokey-blake2 /path/to/repo
|
||||
|
||||
# Repository distant
|
||||
# Repository distant (SSH doit être configuré d'abord)
|
||||
borg init --encryption=repokey-blake2 ssh://user@server/path/to/repo
|
||||
|
||||
# IMPORTANT: Sauvegarder la clé !
|
||||
|
||||
97
README.md
97
README.md
@@ -1,6 +1,6 @@
|
||||
# Borgmatic Backup - Agence66
|
||||
# Borgmatic Backup
|
||||
|
||||
Configuration Borgmatic pour le backup automatique du serveur Agence66.
|
||||
Configuration Borgmatic pour le backup automatique de serveur.
|
||||
|
||||
## Vue d'ensemble
|
||||
|
||||
@@ -20,19 +20,9 @@ Ce dépôt contient la configuration complète pour effectuer des backups automa
|
||||
## Dossiers sauvegardés
|
||||
|
||||
- `/var/www` - Sites web
|
||||
- `/srv/minecraftserver` - Serveur Minecraft
|
||||
- `/srv/reddiscordbot` - Bot Discord
|
||||
- `/srv/waltercoiffure` - Walter Coiffure
|
||||
- `/srv/*` - Services applicatifs personnalisés
|
||||
- `/etc` - Configurations système
|
||||
- `/opt/nextcloud` - Nextcloud
|
||||
- `/opt/traefik` - Reverse proxy Traefik
|
||||
- `/opt/n8n` - Automation n8n
|
||||
- `/opt/portainer` - Gestion Docker
|
||||
- `/opt/uptime-kuma` - Monitoring
|
||||
- `/opt/vaultwarden` - Gestionnaire de mots de passe
|
||||
- `/opt/mailcow-dockerized` - Serveur mail
|
||||
- `/opt/netdata` - Monitoring système
|
||||
- `/opt/gitea` - Forge Git
|
||||
- `/opt/*` - Applications tierces (Nextcloud, Traefik, Docker, etc.)
|
||||
- `/home` - Répertoires utilisateurs
|
||||
|
||||
## Installation
|
||||
@@ -128,6 +118,37 @@ Points importants à vérifier :
|
||||
2. **Chemins** : Ajustez `source_directories` si nécessaire
|
||||
3. **Exclusions** : Personnalisez `exclude_patterns` selon vos besoins
|
||||
|
||||
### Configuration de l'authentification SSH (repository distant)
|
||||
|
||||
Si vous utilisez un repository distant via SSH, configurez l'authentification par clé :
|
||||
|
||||
```bash
|
||||
# 1. Générer une clé SSH pour root (si elle n'existe pas)
|
||||
sudo ssh-keygen -t ed25519 -C "borgmatic-backup"
|
||||
# Appuyez sur Entrée pour accepter l'emplacement par défaut
|
||||
# Laissez la passphrase vide pour l'automatisation
|
||||
|
||||
# 2. Afficher la clé publique
|
||||
sudo cat /root/.ssh/id_ed25519.pub
|
||||
|
||||
# 3. Copier la clé sur le serveur distant
|
||||
sudo ssh-copy-id -p PORT user@backup-server.com
|
||||
|
||||
# 4. Tester la connexion (ne doit pas demander de mot de passe)
|
||||
sudo ssh -p PORT user@backup-server.com
|
||||
```
|
||||
|
||||
**Alternative manuelle** (si ssh-copy-id ne fonctionne pas) :
|
||||
|
||||
```bash
|
||||
# Se connecter au serveur distant
|
||||
ssh -p PORT user@backup-server.com
|
||||
|
||||
# Ajouter la clé publique
|
||||
echo "VOTRE_CLE_PUBLIQUE" >> ~/.ssh/authorized_keys
|
||||
exit
|
||||
```
|
||||
|
||||
### Initialisation du repository Borg
|
||||
|
||||
Si vous utilisez un nouveau repository :
|
||||
@@ -288,6 +309,7 @@ sudo borgmatic config validate --verbosity 2
|
||||
```
|
||||
|
||||
Erreurs courantes :
|
||||
|
||||
- `repositories' is a required property` : Manque la section repositories
|
||||
- `Additional properties are not allowed` : Propriété invalide pour cette version
|
||||
- Erreurs YAML : Vérifier l'indentation (utiliser des espaces, pas des tabs)
|
||||
@@ -309,13 +331,35 @@ journalctl -u borgmatic.service -f
|
||||
|
||||
```bash
|
||||
# Tester la connexion SSH (si distant)
|
||||
ssh user@backup-server
|
||||
sudo ssh -p PORT user@backup-server
|
||||
|
||||
# Vérifier les clés SSH
|
||||
sudo ls -la /root/.ssh/
|
||||
|
||||
# Vérifier les variables d'environnement
|
||||
sudo cat /etc/borgmatic/.env
|
||||
|
||||
# Tester Borg directement
|
||||
sudo borg list $BORG_REPO
|
||||
sudo bash -c 'source /etc/borgmatic/.env && borg list $BORG_REPO'
|
||||
```
|
||||
|
||||
### Demande de mot de passe SSH
|
||||
|
||||
Si borgmatic demande le mot de passe du serveur distant :
|
||||
|
||||
```bash
|
||||
# 1. Vérifier que la clé SSH existe
|
||||
sudo ls /root/.ssh/id_ed25519
|
||||
|
||||
# 2. Si pas de clé, en générer une
|
||||
sudo ssh-keygen -t ed25519 -C "borgmatic-backup"
|
||||
|
||||
# 3. Copier la clé sur le serveur
|
||||
sudo ssh-copy-id -p PORT user@backup-server.com
|
||||
|
||||
# 4. Tester
|
||||
sudo ssh -p PORT user@backup-server.com
|
||||
# Ne doit PAS demander de mot de passe
|
||||
```
|
||||
|
||||
### Problème de permissions
|
||||
@@ -346,25 +390,6 @@ echo $NTFY_URL
|
||||
echo $NTFY_USER
|
||||
```
|
||||
|
||||
## Migration depuis l'ancien script
|
||||
|
||||
Si vous migrez depuis l'ancien script Borg :
|
||||
|
||||
1. **Le repository existant est compatible** - pas besoin de réinitialiser
|
||||
2. **Les archives existantes restent accessibles**
|
||||
3. **Le format de nommage est identique** : `backup-YYYYMMDD-HHMM`
|
||||
4. **La rétention est la même** : 7/4/6
|
||||
|
||||
Pour vérifier la compatibilité :
|
||||
|
||||
```bash
|
||||
# Lister les anciennes archives
|
||||
borg list /path/to/existing/repo
|
||||
|
||||
# Tester avec borgmatic
|
||||
borgmatic list
|
||||
```
|
||||
|
||||
## Ressources
|
||||
|
||||
- [Documentation Borgmatic](https://torsion.org/borgmatic/)
|
||||
@@ -381,4 +406,4 @@ Pour tout problème :
|
||||
|
||||
## Licence
|
||||
|
||||
Configuration personnalisée pour Agence66.
|
||||
Configuration personnalisée pour usage personnel/professionnel.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Configuration Borgmatic 2.0 pour backup serveur Agence66
|
||||
# Configuration Borgmatic 2.0 pour backup serveur
|
||||
# Compatible avec les backups Borg existants
|
||||
#
|
||||
# IMPORTANT: Nécessite Borgmatic ≥ 2.0.0 pour l'interpolation des variables d'environnement
|
||||
@@ -6,7 +6,7 @@
|
||||
# Repository Borg - utilise la variable d'environnement
|
||||
repositories:
|
||||
- path: "${BORG_REPO}"
|
||||
label: serveur
|
||||
label: production
|
||||
|
||||
# Chemins sources à sauvegarder
|
||||
source_directories:
|
||||
|
||||
238
docs/SSH-SETUP.md
Normal file
238
docs/SSH-SETUP.md
Normal file
@@ -0,0 +1,238 @@
|
||||
# Configuration SSH pour Borgmatic
|
||||
|
||||
Guide complet pour configurer l'authentification SSH par clé pour les backups distants.
|
||||
|
||||
## Pourquoi utiliser des clés SSH ?
|
||||
|
||||
- **Automatisation** : Pas de mot de passe à saisir manuellement
|
||||
- **Sécurité** : Plus sécurisé qu'un mot de passe
|
||||
- **Requis** : Nécessaire pour que le timer systemd fonctionne automatiquement
|
||||
|
||||
## Configuration étape par étape
|
||||
|
||||
### 1. Générer une clé SSH
|
||||
|
||||
```bash
|
||||
# Se connecter en root
|
||||
sudo su -
|
||||
|
||||
# Générer une clé Ed25519 (recommandé)
|
||||
ssh-keygen -t ed25519 -C "borgmatic-backup@$(hostname)"
|
||||
|
||||
# Ou RSA si Ed25519 n'est pas supporté
|
||||
ssh-keygen -t rsa -b 4096 -C "borgmatic-backup@$(hostname)"
|
||||
```
|
||||
|
||||
**Réponses aux questions** :
|
||||
|
||||
```
|
||||
Enter file in which to save the key (/root/.ssh/id_ed25519): [Entrée]
|
||||
Enter passphrase (empty for no passphrase): [Entrée - laisser vide]
|
||||
Enter same passphrase again: [Entrée]
|
||||
```
|
||||
|
||||
**Important** : Laissez la passphrase **vide** pour permettre l'automatisation.
|
||||
|
||||
### 2. Vérifier que la clé a été créée
|
||||
|
||||
```bash
|
||||
ls -la /root/.ssh/
|
||||
# Vous devriez voir :
|
||||
# id_ed25519 (clé privée - à garder secrète)
|
||||
# id_ed25519.pub (clé publique - à copier sur le serveur)
|
||||
```
|
||||
|
||||
### 3. Copier la clé sur le serveur distant
|
||||
|
||||
#### Méthode automatique (recommandée)
|
||||
|
||||
```bash
|
||||
# Syntaxe générale
|
||||
ssh-copy-id -p PORT user@backup-server.com
|
||||
|
||||
# Exemples
|
||||
ssh-copy-id -p 22 backup@backup.example.com
|
||||
ssh-copy-id -p 2222 user@192.168.1.100
|
||||
```
|
||||
|
||||
Saisissez le mot de passe du serveur **une dernière fois**.
|
||||
|
||||
#### Méthode manuelle
|
||||
|
||||
Si `ssh-copy-id` ne fonctionne pas :
|
||||
|
||||
```bash
|
||||
# 1. Afficher votre clé publique
|
||||
cat /root/.ssh/id_ed25519.pub
|
||||
|
||||
# 2. Se connecter au serveur distant
|
||||
ssh -p PORT user@backup-server.com
|
||||
|
||||
# 3. Sur le serveur distant, ajouter la clé
|
||||
mkdir -p ~/.ssh
|
||||
chmod 700 ~/.ssh
|
||||
echo "VOTRE_CLE_PUBLIQUE_ICI" >> ~/.ssh/authorized_keys
|
||||
chmod 600 ~/.ssh/authorized_keys
|
||||
exit
|
||||
```
|
||||
|
||||
### 4. Tester la connexion
|
||||
|
||||
```bash
|
||||
# Tester sans mot de passe
|
||||
ssh -p PORT user@backup-server.com
|
||||
|
||||
# Si ça fonctionne, vous êtes connecté directement !
|
||||
# Tapez 'exit' pour revenir
|
||||
```
|
||||
|
||||
**Si on vous demande toujours un mot de passe** :
|
||||
- Vérifiez les permissions : `chmod 600 /root/.ssh/id_ed25519`
|
||||
- Vérifiez le serveur : `ssh -v -p PORT user@backup-server.com` (mode verbeux)
|
||||
|
||||
## Cas spécifiques
|
||||
|
||||
### Serveurs avec interface web
|
||||
|
||||
Certains fournisseurs de stockage backup proposent une interface web pour gérer les clés SSH :
|
||||
|
||||
1. Connectez-vous à l'interface web de votre fournisseur
|
||||
2. Cherchez la section "SSH Keys" ou "Authentification"
|
||||
3. Cliquez sur "Add SSH key" ou équivalent
|
||||
4. Collez le contenu de `/root/.ssh/id_ed25519.pub`
|
||||
5. Sauvegardez
|
||||
|
||||
### Serveur VPS/Dédié
|
||||
|
||||
Pour un serveur standard avec accès SSH :
|
||||
|
||||
```bash
|
||||
# Copie standard avec ssh-copy-id
|
||||
sudo ssh-copy-id -p 22 user@backup-server.com
|
||||
|
||||
# Ou méthode manuelle
|
||||
ssh -p PORT user@backup-server.com
|
||||
mkdir -p ~/.ssh
|
||||
chmod 700 ~/.ssh
|
||||
echo "VOTRE_CLE_PUBLIQUE" >> ~/.ssh/authorized_keys
|
||||
chmod 600 ~/.ssh/authorized_keys
|
||||
exit
|
||||
```
|
||||
|
||||
## Configuration avancée
|
||||
|
||||
### Utiliser une clé SSH spécifique
|
||||
|
||||
Si vous voulez utiliser une clé dédiée uniquement pour Borgmatic :
|
||||
|
||||
```bash
|
||||
# 1. Générer une clé dédiée
|
||||
ssh-keygen -t ed25519 -f /root/.ssh/borgmatic_ed25519 -C "borgmatic-only"
|
||||
|
||||
# 2. Copier cette clé spécifique
|
||||
ssh-copy-id -i /root/.ssh/borgmatic_ed25519.pub -p PORT user@backup-server.com
|
||||
|
||||
# 3. Configurer dans /etc/borgmatic/.env
|
||||
echo 'BORG_RSH="ssh -i /root/.ssh/borgmatic_ed25519"' >> /etc/borgmatic/.env
|
||||
```
|
||||
|
||||
### Config SSH personnalisée
|
||||
|
||||
Créez `/root/.ssh/config` :
|
||||
|
||||
```
|
||||
Host backup-server
|
||||
HostName backup.example.com
|
||||
Port 22
|
||||
User backupuser
|
||||
IdentityFile /root/.ssh/borgmatic_ed25519
|
||||
StrictHostKeyChecking accept-new
|
||||
```
|
||||
|
||||
Puis dans votre repository :
|
||||
|
||||
```yaml
|
||||
repositories:
|
||||
- path: ssh://backup-server/./backups
|
||||
label: serveur
|
||||
```
|
||||
|
||||
## Vérification et troubleshooting
|
||||
|
||||
### Vérifier que tout fonctionne
|
||||
|
||||
```bash
|
||||
# 1. Test SSH
|
||||
ssh -p PORT user@backup-server.com
|
||||
# ✅ Doit se connecter SANS demander de mot de passe
|
||||
|
||||
# 2. Test Borg
|
||||
source /etc/borgmatic/.env
|
||||
borg list $BORG_REPO
|
||||
# ✅ Doit lister les archives SANS demander de mot de passe
|
||||
|
||||
# 3. Test Borgmatic
|
||||
make dry-run
|
||||
# ✅ Doit fonctionner SANS demander de mot de passe
|
||||
```
|
||||
|
||||
### Problèmes courants
|
||||
|
||||
**"Permission denied (publickey)"**
|
||||
|
||||
```bash
|
||||
# Vérifier les permissions de la clé privée
|
||||
chmod 600 /root/.ssh/id_ed25519
|
||||
|
||||
# Vérifier que la clé est bien copiée sur le serveur
|
||||
ssh -v -p PORT user@backup-server.com 2>&1 | grep "Offering public key"
|
||||
```
|
||||
|
||||
**"Host key verification failed"**
|
||||
|
||||
```bash
|
||||
# Ajouter le serveur aux known hosts
|
||||
ssh-keyscan -p PORT backup-server.com >> /root/.ssh/known_hosts
|
||||
```
|
||||
|
||||
**Borgmatic demande toujours le mot de passe**
|
||||
|
||||
```bash
|
||||
# Vérifier que SSH fonctionne bien sans mot de passe
|
||||
ssh -p PORT user@backup-server.com
|
||||
|
||||
# Vérifier les variables d'environnement
|
||||
sudo cat /etc/borgmatic/.env | grep BORG_RSH
|
||||
```
|
||||
|
||||
## Sécurité
|
||||
|
||||
### Bonnes pratiques
|
||||
|
||||
1. **Clé dédiée** : Utilisez une clé SSH spécifique pour les backups
|
||||
2. **Restrictions** : Limitez la clé aux commandes Borg uniquement (côté serveur)
|
||||
3. **Rotation** : Changez les clés régulièrement (annuellement)
|
||||
4. **Backup** : Sauvegardez votre clé privée en lieu sûr
|
||||
|
||||
### Limiter les commandes autorisées (serveur)
|
||||
|
||||
Sur le serveur de backup, dans `~/.ssh/authorized_keys` :
|
||||
|
||||
```bash
|
||||
command="borg serve --restrict-to-path /path/to/repo",restrict ssh-ed25519 AAAAC3... borgmatic-backup
|
||||
```
|
||||
|
||||
Cela limite la clé SSH à **uniquement** exécuter Borg sur ce chemin spécifique.
|
||||
|
||||
## Automatisation avec le timer systemd
|
||||
|
||||
Une fois la clé SSH configurée, le timer systemd fonctionnera automatiquement :
|
||||
|
||||
```bash
|
||||
# Le service systemd utilisera automatiquement la clé SSH de root
|
||||
systemctl status borgmatic.timer
|
||||
|
||||
# Les backups s'exécuteront à 3h du matin sans intervention
|
||||
```
|
||||
|
||||
✅ **Configuration terminée !** Les backups automatiques peuvent maintenant fonctionner sans intervention manuelle.
|
||||
@@ -13,7 +13,7 @@ YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}==================================================${NC}"
|
||||
echo -e "${GREEN}Installation de Borgmatic - Agence66${NC}"
|
||||
echo -e "${GREEN}Installation de Borgmatic${NC}"
|
||||
echo -e "${GREEN}==================================================${NC}"
|
||||
echo ""
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ ERRORS=0
|
||||
WARNINGS=0
|
||||
|
||||
echo -e "${BLUE}==================================================${NC}"
|
||||
echo -e "${BLUE}Healthcheck Borgmatic - Agence66${NC}"
|
||||
echo -e "${BLUE}Healthcheck Borgmatic${NC}"
|
||||
echo -e "${BLUE}==================================================${NC}"
|
||||
echo ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user