Założenia
- przed uruchomieniem KeePassXC
- zrób kopię lokalnej bazy
- pobierz plik bazy z Google Drive
- po zakończeniu pracy z KeePassXC
- zrób kopię zdalnej bazy
- wyślij plik bazy do Google Drive
Konfiguracja rclone
z Google Drive
Trzeba uzyskać client_id
oraz client_secret
(aby nie korzystać z współdzielonych kluczy, bo tam wyczerpują się limity). W tym dokumencie nie ma informacji, jak to osiągnąć, generalnie trzeba skonfigurować Google Cloud.
Instalacja i konfiguracja rclone
sudo apt install rclone
rclone config
- Wybierz
n
(nowa konfiguracja) - Nadaj nazwę, np.
gdrive
- Wybierz typ:
drive
(Google Drive) - Postępuj zgodnie z instrukcjami — otworzy się przeglądarka, zalogujesz się do Google
- Na końcu zapisz konfigurację
Skrypt start-keepass.sh
#!/bin/bash
# 📁 Lokalizacja pliku KeePassXC i backupów
LOCAL_BASE_DIR="$HOME/others/KeePass"
LOCAL_BACKUP_DIR="$LOCAL_BASE_DIR/backups"
DB_NAME="koral"
LOCAL_FILE="$LOCAL_BASE_DIR/${DB_NAME}.kdbx"
# 📅 Znacznik czasu
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
# 📄 Lokalna kopia zapasowa
LOCAL_BACKUP_FILE="$LOCAL_BACKUP_DIR/${DB_NAME}_${TIMESTAMP}.kdbx"
# 🌐 Ścieżki w Google Drive
REMOTE_BASE_DIR="gdrive:/KeePass"
REMOTE_FILE="$REMOTE_BASE_DIR/${DB_NAME}.kdbx"
REMOTE_BACKUP_DIR="$REMOTE_BASE_DIR/backups"
REMOTE_BACKUP_FILE="$REMOTE_BACKUP_DIR/${DB_NAME}_${TIMESTAMP}.kdbx"
# 🗂️ Utwórz katalog lokalnych backupów, jeśli nie istnieje
mkdir -p "$LOCAL_BACKUP_DIR"
echo "⬇️ Synchronizacja z Google Drive..."
# 🛑 Lokalna kopia zapasowa przed nadpisaniem
if [ -f "$LOCAL_FILE" ]; then
cp "$LOCAL_FILE" "$LOCAL_BACKUP_FILE"
echo "📁 Lokalna kopia utworzona: $LOCAL_BACKUP_FILE"
fi
# ⬇️ Pobierz zdalny plik (jeśli nowszy)
rclone copyto "$REMOTE_FILE" "$LOCAL_FILE" --update -P
echo "🚀 Uruchamianie KeePassXC..."
#flatpak run org.keepassxc.KeePassXC "$LOCAL_FILE"
echo "🗄️ Tworzenie zdalnej kopii zapasowej aktualnego pliku $REMOTE_FILE => $REMOTE_BACKUP_FILE"
rclone copyto "$REMOTE_FILE" "$REMOTE_BACKUP_FILE" -P
echo "⬆️ Nadpisywanie głównego pliku zaktualizowaną wersją lokalną..."
rclone copyto "$LOCAL_FILE" "$REMOTE_FILE" --update -P
echo "✅ Synchronizacja zakończona."
Skrót uruchamiający KeePassXC.desktop
[Desktop Entry]
Name=KeePassXC
Exec=/home/pawel/others/KeePass/start-keepass.sh
Icon=/var/lib/flatpak/exports/share/icons/hicolor/256x256/apps/org.keepassxc.KeePassXC.png
Terminal=true
Type=Application
Categories=Utility;