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 verfügbar — macOS, Linux, Android & iOS 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.

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. Client-URL notieren

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

Clients installieren

Native Clients werden von dieser Website bereitgestellt. Aktuell ist Windows verfügbar; macOS, Linux, Android und iOS folgen demnächst.

Downloads nach Plattform

Verfügbar

Windows

Tray, Explorer-Integration, Symlinks für Geteiltes.

DrivolySetup.exe

Herunterladen
Demnächst

macOS

Menüleiste & Finder-Sync.

macOS 13+ · .dmg

Demnächst
Demnächst

Linux

AppImage oder .deb.

Demnächst verfügbar

Demnächst
Demnächst

Android

Play Store / APK.

Demnächst verfügbar

Demnächst
Demnächst

iOS

App Store.

Demnächst verfügbar

Demnächst

Alle Download-Links auch auf der Startseite.

Windows — Installation

  1. Installer ausführen — heruntergeladene 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

Geteilte Dateien

Freigaben anderer Nutzer erscheinen unter Geteilt\<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.