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
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.
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
-
Docker Desktop starten
Stellt sicher, dass Docker läuft.
-
Compose-Dateien prüfen
Im Ordner mit docker-compose.yml und .env:
docker compose config
-
Images laden & Stack starten
docker compose pull
docker compose up -d
-
Status prüfen
docker compose ps
docker compose logs drivoly
-
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
-
Im Browser anmelden
http://localhost:8443/portal öffnen und mit dem Admin-Konto einloggen.
-
Spaces & Nutzer
Unter /admin Nutzer anlegen, Spaces verwalten und Berechtigungen setzen.
-
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.
Alle Download-Links auch auf der Startseite.
Windows — Installation
- Installer ausführen — heruntergeladene DrivolySetup.exe starten
- Administratorrechte bestätigen (Programm, Explorer-Overlay, Startmenü)
-
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.