====== Migration Baïkal → Nextcloud (calendriers & contacts) ======
Migration d'un serveur Baïkal (CalDAV/CardDAV) vers une instance Nextcloud existante, avec reconfiguration des clients Android via DAVx⁵.
===== 1. Export depuis Baïkal =====
Le script exporte le calendrier et le carnet d'adresses ''default''.
==== Le script ====
Copier le contenu ci-dessous dans un fichier ''baikal-export-user.sh'' :
#!/usr/bin/env bash
# Export Baïkal (calendrier + contacts) pour UN utilisateur.
# Usage : ./baikal-export-user.sh
# Sortie : ./baikal-export//cal-default.ics et contacts-default.vcf
set -u
BASE="https://dav.beafrancois.fr/dav/html" # <-- adapter au serveur Baïkal
OUT="./baikal-export"
read -r -p "Nom d'utilisateur Baïkal : " USER
read -r -s -p "Mot de passe pour $USER : " PASS; echo
DIR="$OUT/$USER"; mkdir -p "$DIR"
AUTH=(--digest -u "$USER:$PASS")
## --- CALENDRIER (default) ---
F="$DIR/cal-default.ics"
curl -s "${AUTH[@]}" "$BASE/cal.php/calendars/$USER/default/?export" -o "$F"
if head -1 "$F" | grep -q BEGIN:VCALENDAR; then
N=$(grep -c BEGIN:VEVENT "$F")
echo "[OK] Calendrier : $N événements -> $F"
else
echo "[!] Calendrier : export invalide (mauvais mot de passe ?) -> $F"
fi
## --- CONTACTS (default) ---
F="$DIR/contacts-default.vcf"
: > "$F"
EXPECTED=0
while read -r P; do
[ -z "$P" ] && continue
EXPECTED=$((EXPECTED+1))
curl -s "${AUTH[@]}" "https://dav.beafrancois.fr$P" >> "$F"
echo "" >> "$F"
done < <(curl -s "${AUTH[@]}" -X PROPFIND -H "Depth: 1" \
"$BASE/card.php/addressbooks/$USER/default" \
| tr -d '\r' \
| grep -o "/dav/html/card.php/addressbooks/$USER/default/[^<]*vcf")
GOT=$(grep -c BEGIN:VCARD "$F")
if [ "$GOT" -eq "$EXPECTED" ] && [ "$GOT" -gt 0 ]; then
echo "[OK] Contacts : $GOT/$EXPECTED -> $F"
else
echo "[!] Contacts : $GOT récupérés sur $EXPECTED listés -> $F"
fi
==== Exécution ====
Lancer le script :
chmod +x baikal-export-user.sh
./baikal-export-user.sh
Le script demande le nom d'utilisateur puis le mot de passe (baikal).
Les fichiers calendrier et carnet sont créés :
baikal-export//cal-default.ics
baikal-export//contacts-default.vcf
Le script affiche le nombre d'événements et de contacts récupérés.
Si la sortie affiche ''[!]'', l'export a échoué (mot de passe erroné en général). Ne pas continuer avec un fichier invalide.
===== 2. Import dans Nextcloud =====
Pour l'utilisateur, connecté avec **son** compte Nextcloud :
- **Calendrier** : application //Calendar// → ''Paramètres'' (en bas à gauche) → ''Importer un calendrier'' → sélectionner ''cal-default.ics'' → cible : calendrier « Personnel » ou un nouveau calendrier
- **Contacts** : application //Contacts// → ''Paramètres'' → ''Importer des contacts'' → sélectionner ''contacts-default.vcf''
Vérifier que les compteurs correspondent aux chiffres notés à l'export.
===== 3. Configuration Android (DAVx⁵) =====
==== Suppression de l'ancien compte Baïkal ====
Supprimer l'ancien compte avant d'ajouter le nouveau, sinon doublons d'événements et de contacts sur le téléphone.
Dans DAVx⁵ → ouvrir le compte Baïkal → menu ⋮ → ''Supprimer le compte''.
==== Ajout du compte Nextcloud ====
- DAVx⁵ → ''+'' → ''Connexion avec Nextcloud''
- URL : ''https://nuage.beafrancois.fr/nextcloud''
- suit une étape d'authentification qu'il suffit de compléter
- Sélectionner les calendriers (détectés automatiquement) et le carnet d'adresses à synchroniser
- Lancer une synchronisation manuelle et vérifier dans les applis Agenda et Contacts du téléphone