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;
Kategorie: linux