OpenProject auf dem Synology NAS installieren: Projektmanagement mit Gantt und Tickets
OpenProject ist eine quelloffene Projektmanagement-Plattform aus Berlin mit Gantt-Diagrammen, Ticketsystem und agilen Boards, betrieben auf Ihrem Synology NAS. Die Anleitung zeigt, wie Sie das All-in-One-Docker-Image korrekt konfigurieren und starten.
Geprüft am 30.09.2026 · für openproject 17
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Wer im KMU ein vollständiges Projektmanagement-Werkzeug sucht, landet oft bei Jira oder MS Project mit laufenden Lizenzkosten. OpenProject, entwickelt von der OpenProject GmbH in Berlin, ist eine vollwertige Open-Source-Alternative: Gantt-Diagramme, Work Packages (Tickets), Scrum- und Kanban-Boards, Zeiterfassung, Budgets und ein Wiki sind in der kostenlosen Community Edition (GPLv3) enthalten. Wer ein Synology NAS betreibt, kann OpenProject als Docker-Container dauerhaft selbst hosten – alle Projektdaten verbleiben im eigenen Netzwerk, was besonders für DACH-Unternehmen mit DSGVO-Anforderungen interessant ist. Das All-in-One-Image bündelt PostgreSQL, Memcached und die Rails-Anwendung in einem Container, eine separate Datenbank ist nicht nötig.
Voraussetzungen
- Synology NAS mit mindestens 4 GB RAM (empfohlen; 2 GB Minimum), x86_64- oder ARM64-Prozessor
- DSM 7.2 oder neuer mit installiertem Container Manager aus dem Package Center
- Mindestens 5 GB freier Speicherplatz auf dem NAS-Volume (Image + Datenbankdaten)
- SSH-Zugang zum NAS (für die Schlüsselgenerierung) – Aktivierung: SSH auf dem Synology NAS aktivieren und verbinden
- Grundkenntnisse im Umgang mit dem Container Manager – Nachschlagen: Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren
- Internetzugang für den Image-Download (All-in-One-Image ca. 875 MB)
- Optional: Synology DDNS und SSL-Zertifikat für HTTPS-Zugriff von außerhalb
Schritt 1: Ordnerstruktur in der File Station anlegen
Öffnen Sie die File Station, wechseln Sie in den Ordner docker und legen Sie dort den Ordner openproject an. Darin erstellen Sie zwei Unterordner: pgdata (für die PostgreSQL-Datenbankdateien) und assets (für Anhänge und hochgeladene Dateien). Beide Verzeichnisse müssen vor dem ersten Container-Start existieren, sonst schlägt das Volume-Mapping fehl.
Vollständige Pfade auf dem NAS:
/volume1/docker/openproject/pgdata
/volume1/docker/openproject/assets
Die korrekte Ordneranlage via File Station ist in Docker-Ordner und Berechtigungen auf dem Synology NAS ausführlich erklärt.
Verifizieren: In der File Station zeigt docker/openproject genau die zwei leeren Ordner pgdata und assets.
Schritt 2: SECRET_KEY_BASE generieren
OpenProject verschlüsselt Session-Cookies und bestimmte Datenbankfelder mit einem geheimen Schlüssel. Dieser Wert muss einmalig generiert, sicher aufbewahrt und bei jedem Container-Start identisch verwendet werden. Wer ihn ändert, macht alle laufenden Sessions ungültig und verschlüsselte Datenbankfelder unlesbar.
Verbinden Sie sich per SSH mit dem NAS und führen Sie folgenden Befehl aus:
openssl rand -hex 64
Das Ergebnis ist eine 128-stellige Hexadezimalzeichenkette (64 Byte Entropie). Speichern Sie den Wert sofort in einem Passwortmanager; Sie benötigen ihn in der compose.yaml und bei jedem späteren Update.
Verifizieren: Die Ausgabe muss genau 128 Zeichen lang sein und ausschließlich Hexadezimalzeichen (0–9, a–f) enthalten. Beispiel-Längenprüfung:
openssl rand -hex 64 | wc -c
# Erwartete Ausgabe: 129 (128 Zeichen + Zeilenumbruch)
Schritt 3: compose.yaml erstellen
Erstellen Sie im Container Manager ein neues Projekt namens openproject mit folgender compose.yaml. Ersetzen Sie dabei die Platzhalter:
HIER_128_ZEICHEN_HEX_EINFUEGEN→ Ihr Schlüssel aus Schritt 2192.168.1.100:8080→ IP-Adresse Ihres NAS mit Port 8080sicheres_passwort→ ein eigenes Startpasswort für den Adminadmin@example.com→ Ihre Admin-E-Mail-Adresse
services:
openproject:
image: openproject/openproject:17
container_name: openproject
restart: unless-stopped
ports:
- "8080:80"
volumes:
- /volume1/docker/openproject/pgdata:/var/openproject/pgdata
- /volume1/docker/openproject/assets:/var/openproject/assets
environment:
- SECRET_KEY_BASE=HIER_128_ZEICHEN_HEX_EINFUEGEN
- OPENPROJECT_HOST__NAME=192.168.1.100:8080
- OPENPROJECT_HTTPS=false
- OPENPROJECT_DEFAULT__LANGUAGE=de
- OPENPROJECT_SEED_ADMIN_USER_PASSWORD=sicheres_passwort
- OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET=true
- OPENPROJECT_SEED_ADMIN_USER_MAIL=admin@example.com
Warum diese Variablen Pflicht sind
| Variable | Bedeutung | Pflicht? |
|---|---|---|
SECRET_KEY_BASE | Rails-Verschlüsselungsschlüssel für Sessions und DB-Felder | Ja |
OPENPROJECT_HOST__NAME | Externer Hostname für URL-Generierung in Formularen und E-Mails (doppelter Unterstrich!) | Ja |
OPENPROJECT_HTTPS=false | Verhindert HTTPS-Redirect-Schleifen bei HTTP-only-Betrieb | Ja (ohne HTTPS) |
OPENPROJECT_DEFAULT__LANGUAGE=de | Seedet die Datenbank auf Deutsch | Empfohlen |
OPENPROJECT_SEED_ADMIN_USER_* | Initialer Admin-Account (wirkt nur beim allerersten Start) | Optional |
Image-Varianten im Überblick
| Tag | Größe (amd64) | Architektur | Inhalt | Einsatz |
|---|---|---|---|---|
:17 | ca. 875 MB | amd64, arm64 | All-in-One: App, PostgreSQL, Memcached | Diese Anleitung |
:17-slim | ca. 410 MB | amd64, arm64 | Nur App-Server, ohne Datenbank | Mehrcontainer-Compose, nicht mit dieser compose.yaml |
:17-slim-bim | größer | nur amd64 | Slim mit BIM-Modul | Nur für Bauprojekte |
Tauschen Sie den Tag in dieser compose.yaml nicht gegen :17-slim: Dem Slim-Image fehlen PostgreSQL und Memcached, der Container startet dann ohne Datenbank. Die OpenProject-Dokumentation beschreibt das All-in-One-Image als Schnellstart; für größere Produktivsysteme empfiehlt sie die Compose-Variante mit Slim-Image (siehe FAQ).
Verifizieren: Der Container Manager speichert das Projekt openproject ohne Fehlermeldung; ungültiges YAML meldet er beim Speichern.
Schritt 4: Container starten und Seeding abwarten
Starten Sie das Projekt im Container Manager über „Erstellen“ bzw. „Starten“. Das Image wird heruntergeladen (ca. 875 MB). Anschließend beginnt der erste Start: OpenProject initialisiert die PostgreSQL-Datenbank, führt Migrationen aus und kompiliert Assets. Dieser Vorgang dauert 5 bis 10 Minuten; melden Sie sich in dieser Zeit nicht an.
Den Fortschritt zeigen die Container-Logs im Container Manager (Container → „Details“ → „Protokoll“) oder per SSH:
docker logs openproject --follow
Verifizieren: Warten Sie, bis in den Logs die Meldung erscheint:
Server available on localhost
Erst dann ist OpenProject betriebsbereit. Das Seeding prüfen Sie zusätzlich mit:
docker logs openproject 2>&1 | grep -i seed
Erwartete Ausgabe enthält Zeilen wie Seeding completed oder Seed data created. Anschließend zeigt http://<NAS-IP>:8080 die Anmeldeseite.
Schritt 5: Erster Login und Admin-Passwort ändern
Rufen Sie http://<NAS-IP>:8080 auf und melden Sie sich an:
- Benutzername:
admin - Passwort: der Wert aus
OPENPROJECT_SEED_ADMIN_USER_PASSWORD(ohne diese Variableadmin)
Da OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET=true gesetzt ist, fordert OpenProject sofort eine Passwortänderung. Wählen Sie ein starkes Passwort.
Verifizieren: Nach der Passwortänderung erscheint die Startseite. Unter Administration → Benutzer und Berechtigungen → Benutzer steht der Admin-Account mit Status „Aktiv“.
Schritt 6: Erstes Projekt mit Gantt-Ansicht anlegen
Klicken Sie in der Hauptnavigation auf das „+“-Symbol neben „Projekte“ oder wählen Sie „Projekte → Neues Projekt“. Vergeben Sie einen Projektnamen (z. B. „Website-Relaunch Q3“) und aktivieren Sie unter den Modulen „Gantt-Diagramme“ sowie „Arbeitspakete“.
Nach dem Erstellen des Projekts:
- Wechseln Sie im linken Menü zu „Arbeitspakete“.
- Erstellen Sie ein Arbeitspaket (z. B. Typ „Aufgabe“) mit Namen, Start- und Enddatum.
- Wechseln Sie über den Ansichts-Umschalter oben rechts zur Gantt-Ansicht.
Wichtig: Gantt-Balken erscheinen nur, wenn das Arbeitspaket ein Start- und ein Enddatum hat. Ohne Datum bleibt die Gantt-Ansicht leer – das ist kein Fehler, sondern ein erwartetes Verhalten.
Verifizieren: In der Gantt-Ansicht zeigt sich ein horizontaler Balken für jedes Arbeitspaket mit Datum. Balken lassen sich per Drag-and-Drop verschieben, Abhängigkeiten durch Ziehen der Verbindungspunkte anlegen. Die Community Edition enthält diese Funktionen vollständig ohne zusätzliche Lizenz.
Schritt 7: DSM-Firewall-Port freigeben (optional, aber empfohlen)
Ist die DSM-Firewall aktiv, geben Sie Port 8080 frei. Die genaue Vorgehensweise ist in der Grund-Anleitung DSM-Firewall: Ports für Docker-Container freigeben beschrieben.
Verifizieren: Rufen Sie http://<NAS-IP>:8080 von einem anderen Gerät im selben Netzwerk auf. Die OpenProject-Anmeldeseite muss erreichbar sein.
Schritt 8: Reverse Proxy für HTTPS einrichten (optional)
Für den Zugriff von außerhalb des Heimnetzes oder für eine HTTPS-verschlüsselte Verbindung eignet sich der Synology Reverse Proxy. Öffnen Sie Systemsteuerung → Anmeldeportal → Erweitert → Reverseproxy und legen Sie eine neue Regel an:
| Einstellung | Wert |
|---|---|
| Quellprotokoll | HTTPS |
| Quellhostname | openproject.example.de (oder DDNS) |
| Quellport | 443 |
| Zielprotokoll | HTTP |
| Ziel-Host | localhost |
| Zielport | 8080 |
Passen Sie danach in der compose.yaml folgende Werte an und erstellen Sie den Container neu:
environment:
- OPENPROJECT_HOST__NAME=openproject.example.de
- OPENPROJECT_HTTPS=true
Alternative mit Nginx Proxy Manager: Nginx Proxy Manager auf der Synology mit Container Manager einrichten.
Verifizieren: Rufen Sie https://openproject.example.de auf. Der Browser zeigt ein gültiges Zertifikat (kein Warnhinweis), und die OpenProject-Anmeldeseite lädt vollständig. E-Mail-Links in Benachrichtigungen müssen nun auf die HTTPS-Domain verweisen.
Troubleshooting / Typische Fehler
- Login-Seite lädt nicht nach 2 Minuten: Das initiale Datenbank-Seeding läuft noch. Beobachten Sie
docker logs openproject --follow; der erste Start dauert 5 bis 10 Minuten. - Permanente Logout-Schleife oder Cookie-Fehler nach Neustart: Der
SECRET_KEY_BASEwurde geändert oder fehlt. Tragen Sie den ursprünglichen Schlüssel aus dem Passwortmanager in diecompose.yamlein und starten Sie den Container neu. - E-Mail-Links zeigen falsche Domain oder
localhost:OPENPROJECT_HOST__NAMEist nicht gesetzt oder enthält einen einfachen statt doppelten Unterstrich (HOST_NAMEstattHOST__NAME). Variable exakt alsOPENPROJECT_HOST__NAME=<ip>:<port>eintragen – doppelter Unterstrich ist OpenProject-Konvention für verschachtelte Konfiguration. - Redirect-Schleife: OpenProject leitet alle HTTP-Anfragen auf HTTPS um:
OPENPROJECT_HTTPS=falsefehlt in dercompose.yaml. Ohne diese Variable ist der Standardtrue, was ohne TLS-Terminierung vor dem Container zu Endlosschleifen führt. - Container startet neu mit
could not connect to server: No such file or directory: Der Ordnerpgdataexistiert nicht oder hat falsche Berechtigungen. Prüfen Sie in der File Station, ob/volume1/docker/openproject/pgdatavorhanden ist und kein anderer Container denselben Pfad nutzt. - Nach Major-Update (z. B. 16 → 17) startet die App nicht: Datenbankmigrationen laufen automatisch im Hintergrund und können 5–15 Minuten dauern. Keinen zweiten Container starten – Logs beobachten und abwarten.
- Gantt-Ansicht zeigt leere Balken: Work Packages ohne Start- und Enddatum erscheinen nicht im Gantt. Beide Felder im Arbeitspaket ausfüllen, dann erscheinen die Balken automatisch.
- BIM-Edition auf ARM-Synology schlägt fehl: Die BIM-Edition unterstützt laut Dokumentation nur AMD64. Auf ARM64-Modellen das Standard-Image ohne BIM verwenden.
Häufige Fragen
Sind Gantt-Diagramme in der kostenlosen Community Edition enthalten?
Ja, vollständig. Gantt-Diagramme, Work Packages, Scrum-/Kanban-Boards und die Zeiterfassung sind in der Community Edition (CE, GPLv3) ohne Einschränkungen enthalten. Kostenpflichtige Enterprise-Funktionen betreffen vor allem erweiterte LDAP-Synchronisation, bestimmte Reporting-Features und priorisierten Support – für das Tages-Projektmanagement im KMU ist die CE ausreichend.
Was ist der Unterschied zwischen :17 und :17-slim?
:17 ist das All-in-One-Image mit eingebautem PostgreSQL und Memcached (ca. 875 MB), das diese Anleitung nutzt. :17-slim enthält nur den Anwendungsserver (ca. 410 MB) und braucht eine separate Datenbank, etwa in der offiziellen Mehrcontainer-Compose-Installation. Das BIM-Modul steckt in eigenen Tags (-slim-bim) und ist nur für Bauprojekte relevant.
Wie viel RAM benötigt OpenProject auf dem NAS?
Das All-in-One-Image benötigt mindestens 2 GB RAM, empfohlen sind 4 GB. Bei weniger als 2 GB können Hintergrundprozesse (Job-Worker für E-Mails und asynchrone Aufgaben) abstürzen oder der initiale Start schlägt fehl. NAS-Modelle mit 4+ GB RAM – etwa DS923+, DS1522+ oder RS1221+ – eignen sich gut für den Produktivbetrieb.
Kann ich OpenProject hinter dem Synology Reverse Proxy (HTTPS) betreiben?
Ja. Unter „Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy“ legen Sie eine Regel HTTPS 443 → HTTP localhost:8080 an. Setzen Sie dann OPENPROJECT_HOST__NAME auf den externen HTTPS-Hostnamen (z. B. openproject.mein-ddns.synology.me) und ändern Sie OPENPROJECT_HTTPS auf true. Der Container selbst bleibt auf HTTP – die TLS-Terminierung übernimmt der Reverse Proxy.
Wie verifiziere ich, dass das initiale Seeding erfolgreich war?
Durchsuchen Sie die Container-Logs nach Seeding-Meldungen:
docker logs openproject 2>&1 | grep -i seed
Erfolgreiche Ausgaben enthalten Zeilen wie Seeding completed oder Seed data created. Melden Sie sich anschließend an und prüfen Sie unter Administration → Benutzer und Berechtigungen → Benutzer, ob der Admin-Account vorhanden und aktiv ist.
Kann ich eine externe PostgreSQL-Datenbank vom NAS verwenden?
Das All-in-One-Image enthält eine eingebettete PostgreSQL-Instanz und ist nicht direkt gegen eine externe Datenbank austauschbar. Für eine externe Datenbankanbindung empfiehlt die offizielle Dokumentation die Docker-Compose-Mehrcontainer-Installation (opf/openproject-docker-compose auf GitHub). Diese Variante ist komplexer, aber für den Produktivbetrieb mit separaten Backup-Strategien pro Dienst sinnvoller.
Was passiert, wenn ich SECRET_KEY_BASE ändere?
Alle aktiven Browser-Sessions werden sofort ungültig – alle angemeldeten Nutzer werden ausgeloggt. Außerdem werden verschlüsselte Datenbankfelder (z. B. OAuth-Tokens) unlesbar. Behandeln Sie diesen Wert wie ein Passwort: einmal erzeugen, sicher aufbewahren, nicht ändern.
Fazit
OpenProject ist eine On-Premises-Alternative zu Jira und MS Project für KMU, die ihre Projektdaten im eigenen Netz behalten wollen. Der Berliner Hersteller veröffentlicht regelmäßig neue Versionen (17.8.0, Stand September 2026), und mit dem All-in-One-Image ist die Installation auf dem Synology NAS überschaubar, sofern die drei Pflichtvariablen stimmen. Die häufigsten Fehler in Anleitungen im Netz sind veraltete Variablennamen (SERVER_HOSTNAME statt OPENPROJECT_HOST__NAME), ein zu kurzer SECRET_KEY_BASE und das fehlende OPENPROJECT_HTTPS=false. Für ein schlankeres Aufgaben-Werkzeug eignet sich Vikunja auf dem Synology NAS an; wer zusätzlich Arbeitszeiten erfassen möchte, findet in Kimai auf dem Synology NAS die passende Ergänzung.
Weiterführende Anleitungen und Quellen
- Vikunja auf dem Synology NAS installieren: leichtgewichtige Todoist-Alternative – wenn Sie ein schlankeres Aufgaben-Werkzeug bevorzugen
- Kimai auf dem Synology NAS installieren: Zeiterfassung für KMU – Zeiterfassung als OpenProject-Ergänzung
- Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren – Grundlagen zum Compose-Workflow
- Nginx Proxy Manager auf der Synology mit Container Manager einrichten – HTTPS-Reverse-Proxy für OpenProject
Offizielle Quellen: OpenProject Docker-Installationsdokumentation · OpenProject Konfigurationsdokumentation · OpenProject auf Docker Hub


