Installation & Erste Schritte

Server-Image aus der Docker Registry, vollständige docker-compose.yml und Windows-Client-Download von dieser Seite.

Dokumentation

Voraussetzungen

  • Server: Docker Desktop (Windows/macOS) oder Docker Engine + Compose v2 (Linux)
  • Server-Image: drivoly/server aus der Docker Registry pullen
  • Clients: Windows zum Download — macOS, iOS und Android in Entwicklung; Linux demnächst
  • Netzwerk: Port 8443 frei auf dem Host (in Compose anpassbar)

Server mit Docker installieren

Der Drivoly-Server wird als fertiges Docker-Image bereitgestellt. Ihr ladet die docker-compose.yml herunter und startet den Stack — Web-Portal und Admin sind sofort verfügbar.

Image aus der Registry

docker pull drivoly/server:latest — danach mit docker compose pull && docker compose up -d starten.

docker-compose.yml

Legt die Datei in einem leeren Ordner ab (z. B. ~/drivoly) oder ladet sie herunter:

docker-compose.yml herunterladen

docker-compose.yml
name: drivoly

services:
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: drivoly
      POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?set a strong database password}"
      POSTGRES_DB: drivoly
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U drivoly -d drivoly"]
      interval: 5s
      timeout: 5s
      retries: 10

  drivoly:
    image: drivoly/server:latest
    restart: unless-stopped
    ports:
      - "8443:8443"
    environment:
      LISTEN_ADDR: "0.0.0.0:8443"
      DATA_DIR: "/data"
      PUBLIC_BASE_URL: "${PUBLIC_BASE_URL:-http://localhost:8443}"
      ALLOWED_ORIGINS: "${ALLOWED_ORIGINS:-http://localhost:8443}"
      DATABASE_URL: "postgres://drivoly:${POSTGRES_PASSWORD:?set a strong database password}@db:5432/drivoly?sslmode=disable"
      JWT_SECRET: "${JWT_SECRET:?set a random secret of at least 32 characters}"
      ALLOW_REGISTER: "${ALLOW_REGISTER:-false}"
      BOOTSTRAP_ADMIN_EMAIL: "${BOOTSTRAP_ADMIN_EMAIL:?set the initial admin email}"
      BOOTSTRAP_ADMIN_PASSWORD: "${BOOTSTRAP_ADMIN_PASSWORD:?set a strong initial admin password}"
    volumes:
      - blobdata:/data
    depends_on:
      db:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8443/health"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 15s

volumes:
  pgdata: {}
  blobdata: {}

.env-Datei anlegen

Legt im gleichen Ordner eine Datei namens .env an. Docker Compose liest diese Werte automatisch.

.env
POSTGRES_PASSWORD=replace-with-a-long-random-database-password
JWT_SECRET=replace-with-at-least-32-random-characters
BOOTSTRAP_ADMIN_EMAIL=admin@example.com
BOOTSTRAP_ADMIN_PASSWORD=replace-with-a-strong-initial-admin-password
PUBLIC_BASE_URL=http://localhost:8443
ALLOWED_ORIGINS=http://localhost:8443
ALLOW_REGISTER=false
  1. Docker Desktop starten

    Stellt sicher, dass Docker läuft.

  2. Compose-Dateien prüfen

    Im Ordner mit docker-compose.yml und .env:

    docker compose config
  3. Images laden & Stack starten
    docker compose pull
    docker compose up -d
  4. Status prüfen
    docker compose ps
    docker compose logs drivoly
  5. Erstlogin

    Meldet euch mit den Bootstrap-Werten aus eurer .env-Datei an:

    • E-Mail: BOOTSTRAP_ADMIN_EMAIL
    • Passwort: BOOTSTRAP_ADMIN_PASSWORD

Wichtige URLs

Produktion absichern

In .env und eurer Infrastruktur mindestens anpassen:

  • POSTGRES_PASSWORD — starkes Datenbankpasswort
  • JWT_SECRET — mindestens 32 Zeichen, zufällig
  • BOOTSTRAP_ADMIN_PASSWORD — starkes Passwort
  • PUBLIC_BASE_URL / ALLOWED_ORIGINS — eure öffentliche HTTPS-Domain
  • ALLOW_REGISTER — nur true, wenn Registrierung gewollt ist

Für den Produktivbetrieb: TLS_CERT_FILE und TLS_KEY_FILE setzen. Ohne TLS nur für lokale Tests.

Funktionen im Überblick

Das Web-Portal und die nativen Clients decken Sync, Freigaben und Verwaltung ab — mit diesen Schwerpunkten:

Web-Portal

  • Datei-Explorer mit Vorschau, Drag & Drop und Speicherkontingent
  • Freigaben per ACL und öffentliche Download-Links (optional mit Passwort & Ablauf)
  • Eingehende Freigaben unter „Eingehend“ — ohne doppelte Blob-Kopie
  • Profil: Avatar, Passwort, 2FA, Wiederherstellungscodes und Geräte-Sessions

Admin & System

  • Nutzer, Spaces, ACLs und Speicherkontingente
  • SMTP für Test-Mails und Einladungs-E-Mails bei Nutzeranlage
  • Backups (database.json + postgres.sql) und Health-Monitoring
  • WebSocket-Ereignisse für Echtzeit-Aktualisierung in Portal und Clients

Portal & Admin nach dem Start

  1. Im Browser anmelden

    http://localhost:8443/portal öffnen und mit dem Admin-Konto einloggen.

  2. Spaces & Nutzer

    Unter /admin Nutzer anlegen, Spaces verwalten und Berechtigungen setzen.

  3. 2FA & System

    Unter /admin/profile 2FA aktivieren. Unter /admin/system SMTP, Backups und Health prüfen.

  4. Client-URL notieren

    Für alle Clients die Server-URL verwenden, z. B. http://localhost:8443 (ohne Pfad).

Clients installieren

Der Windows-Client steht als ZIP zum Download bereit. macOS, iOS und Android sind noch in Entwicklung und werden hier veröffentlicht, sobald sie bereit sind. Linux folgt demnächst.

Downloads nach Plattform

Verfügbar

Windows

Tray, Explorer-Integration und Incoming-Ordner für empfangene Freigaben.

DrivolySetup.zip

Herunterladen

Mit Download akzeptieren Sie die proprietäre Drivoly-Lizenz. Zwingende Verbraucherrechte bleiben unberührt: LICENSE

In Entwicklung

macOS

Menüleisten-App, Finder-Sync und Hintergrund-Daemon — in Entwicklung.

macOS 14+ · in Entwicklung

In Entwicklung
In Entwicklung

iOS

Portal, Sync und Freigaben für iPhone und iPad — in Entwicklung.

iOS 17+ · in Entwicklung

In Entwicklung
In Entwicklung

Android

Portal, Sync und Freigaben — in Entwicklung.

Android · in Entwicklung

In Entwicklung
Demnächst

Linux

AppImage oder .deb.

Demnächst verfügbar

Demnächst

Alle Download-Links auch auf der Startseite.

Windows — Installation

  1. ZIP entpacken — LICENSE.txt und README.txt lesen, dann DrivolySetup.exe starten
  2. Administratorrechte bestätigen (Programm, Explorer-Overlay, Startmenü)
  3. Ersteinrichtung im Dialog:
    • Server-URL, z. B. http://localhost:8443 oder eure Domain
    • E-Mail und Passwort (wie im Web-Portal)
    • Lokalen Sync-Ordner wählen

macOS, iOS und Android sind noch nicht verfügbar. Downloads erscheinen auf dieser Seite, sobald die Clients fertig sind.

Empfangene Freigaben

Freigaben anderer Nutzer erscheinen unter Incoming\<Nutzer>\ als Symlinks. Unter Windows können dafür Administratorrechte erforderlich sein.

Fehlerbehebung

Connection refused / Server nicht erreichbar
Docker Desktop läuft? docker compose ps — Container drivoly healthy? Nur http:// verwenden, nicht https (ohne TLS).
Port 8443 belegt
In docker-compose.yml Mapping ändern, z. B. "9443:8443", dann http://localhost:9443 nutzen.
Client verbindet nicht
Server-URL ohne trailing slash, gleiche Zugangsdaten wie im Portal. Firewall: ausgehend zu Server-Port erlauben.
Server stoppen / Daten behalten
docker compose down — Volumes pgdata und blobdata bleiben erhalten.