OP OpenPrivateDrive
OP OpenPrivateDrive

Installation und Bereitstellung

Step-by-step guide to deploying OpenPrivateDrive on your own private infrastructure.

01 Empfohlen: Docker-Bereitstellung

Der schnellste und zuverlässigste Weg zur Bereitstellung von OpenPrivateDrive ist Docker Compose. So werden alle Abhängigkeiten (LibreOffice, FFmpeg usw.) korrekt konfiguriert.

Schnellstart-Befehl
SECRET_KEY='long-random-secret' ADMIN_PASSWORD='strong-admin-password' docker compose up -d --build

Details nach der Bereitstellung

  • URL: http://server-ip:5350
  • Standard-Admin: admin
  • Passwort: Der Wert von ADMIN_PASSWORD
  • Persistente Daten: ./data/instance, ./data/storage, ./data/logs

02 Manuelle Bereitstellung

Für Bare-Metal- oder angepasste Linux-Bereitstellungen (Ubuntu 22.04+ empfohlen) folgen Sie diesen Schritten:

1. Klonen und Abhängigkeiten
git clone https://github.com/christophe-cremieux/openprivatedrive.git
cd openprivatedrive
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
2. Systemabhängigkeiten

Erforderlich für Vorschauen und Miniaturen

sudo apt update
sudo apt install libreoffice ffmpeg python3-magic
3. Anwendung initialisieren
flask db upgrade
# Admin user is auto-bootstrapped on first run using .env
python run.py

4. Produktion mit Gunicorn + Nginx

In Produktion läuft die App über Gunicorn hinter einem Nginx-Reverse-Proxy mit aktiviertem SSL.

gunicorn --workers 3 --bind 127.0.0.1:5100 run:app

03 Umgebungskonfiguration

Erstellen Sie eine .env Datei im Projektstamm, um das Verhalten der Anwendung zu konfigurieren:

Variable Beschreibung
SECRET_KEY Lange Zufallszeichenfolge für Sitzungssignierung.
ADMIN_PASSWORD Passwort für den ersten „admin“-Benutzer.
STORAGE_PATH Absoluter Pfad zum privaten Dateispeicher.
DATABASE_URL SQLAlchemy-Verbindungszeichenfolge (SQLite unterstützt).
FLASK_ENV Für Live-Umgebungen auf „production“ setzen.
SESSION_COOKIE_SECURE Bei HTTPS-Betrieb auf „True“ setzen.

04 Backup und Wiederherstellung

Regelmäßige Backups sind entscheidend. Sowohl die SQLite-Datenbank als auch der physische Speicher müssen gemeinsam gesichert werden, um Konsistenz zu gewährleisten.

Docker Docker-Backup und -Wiederherstellung

Verwenden Sie diese Skripte auf dem Host, um Ihre Docker-basierten Daten zu verwalten:

Backup bash scripts/docker_backup.sh
Wiederherstellung bash scripts/docker_restore.sh my_backup.tar.gz

Diese Skripte sichern aus Konsistenzgründen sowohl die SQLite-Datenbank als auch die physischen Speichervolumes gemeinsam.

Manual Manuelles Backup und Wiederherstellung

Für manuelle Installationen verwenden Sie die generischen Backup- und Wiederherstellung-Skripte:

bash scripts/backup.sh bash scripts/restore.sh my_backup.tar.gz

05 Sicherheitscheckliste

  • Ändern Sie ADMIN_PASSWORD sofort nach der ersten Anmeldung.
  • Erzwingen Sie HTTPS über Nginx und setzen Sie SESSION_COOKIE_SECURE=True.
  • Verwenden Sie starke Zufallszeichenfolgen für SECRET_KEY.
  • Prüfen Sie „Public Links“ regelmäßig im Admin-Dashboard.
  • Legen Sie konkrete Upload-Erweiterungsrichtlinien in den Admin-Einstellungen fest.
  • Stellen Sie sicher, dass STORAGE_PATH nicht über den Webserver erreichbar ist.

06 Fehlerbehebung und Funktionen

Häufige Probleme

  • Vorschauen fehlen: Prüfen Sie, ob libreoffice und ffmpeg installiert sind.
  • Upload-Fehler: Prüfen Sie MAX_CONTENT_LENGTH und Nginx client_max_body_size.
  • Datenbank gesperrt: Stellen Sie sicher, dass nur ein Prozess auf die SQLite-Datei zugreift.

Wichtige Funktionen

  • Admin-Bootstrapping: Admin-Konto wird beim ersten Start erstellt.
  • Passwortverwaltung: Reset-Links für Benutzer und Self-Service-Änderung.
  • Upload-Kontrolle: Richtlinienbasierte Erweiterungsblockierung und Link-Limits.
  • Vollständige Verschlüsselung: Zero-Knowledge-Ordner- und Datei-Uploads werden unterstützt.
Open Source & Self-Hosted

Having trouble with installation?

Our team can hundle the entire deployment, security hardening, und backup setup for you.