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 – alles auf deinem Synology NAS, DSGVO-konform und ohne Cloud-Abhängigkeit. Diese Anleitung zeigt dir, wie du das All-in-One-Docker-Image korrekt konfigurierst und startest.

Wer im KMU-Umfeld ein vollständiges Projektmanagement-Tool sucht, landet schnell bei Jira oder MS Project – und zahlt entsprechend. 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-Applikation in einem einzigen Container, sodass du keine separate Datenbank betreiben musst.
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
- Stabiler Internetzugang für den Image-Download (~385 MB für Slim, ~817 MB für vollständig)
- Optional: Synology DDNS und SSL-Zertifikat für HTTPS-Zugriff von außerhalb
Schritt 1: Ordnerstruktur in der File Station anlegen
Öffne die File Station im DSM und navigiere nach docker. Lege dort einen neuen Ordner openproject an. Darin erstellst du 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: Navigiere in der File Station zu docker/openproject – du solltest dort genau zwei Ordner sehen: pgdata und assets. Beide müssen leer sein.
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.
Verbinde dich per SSH mit dem NAS und führe folgenden Befehl aus:
openssl rand -hex 64
Das Ergebnis ist eine 128-stellige Hexadezimalzeichenkette (64 Byte Entropie). Kopiere diesen Wert sofort in einen Passwortmanager oder eine sichere Notiz – du benötigst ihn gleich 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
Erstelle im Container Manager ein neues Projekt namens openproject und trage folgende compose.yaml ein. Ersetze dabei die drei markierten Platzhalter:
HIER_64_ZEICHEN_HEX_EINFUEGEN→ dein in Schritt 2 generierter Schlüssel192.168.1.100:8080→ die tatsächliche IP-Adresse deines NAS mit Port 8080admin@example.com→ deine 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_64_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 | BIM-Modul | Empfehlung |
|---|---|---|---|---|
:17 | ~817 MB | amd64, arm64 | Ja | Nur wenn BIM benötigt |
:17-slim | ~385 MB | amd64, arm64 | Nein | Für Synology empfohlen |
Für reines KMU-Projektmanagement empfiehlt sich :17-slim – es spart knapp 430 MB und enthält alle relevanten Features. Das BIM-Modul (Building Information Modeling) ist ausschließlich für Architektur- und Bauprojekte relevant. Wechsle einfach den Tag in der image-Zeile.
Verifizieren: Öffne im Container Manager das Projekt openproject und prüfe, ob die YAML-Syntax ohne Fehler gespeichert wurde. Der Container Manager zeigt eine Meldung an, wenn die YAML ungültig ist.
Schritt 4: Container starten und Seeding abwarten
Starte das Projekt im Container Manager über die Schaltfläche „Starten" oder „Erstellen". Das Image wird jetzt heruntergeladen (~385 MB für Slim). Anschließend beginnt der erste Start: OpenProject initialisiert die PostgreSQL-Datenbank, führt Migrationen aus und kompiliert Assets. Dieser Vorgang dauert 5–10 Minuten – versuche in dieser Zeit nicht, dich einzuloggen.
Um den Fortschritt zu verfolgen, öffne die Container-Logs im Container Manager (Rechtsklick auf den Container → „Details" → „Protokoll") oder verbinde dich per SSH und führe aus:
docker logs openproject --follow
Verifizieren: Warte, bis in den Logs die Meldung erscheint:
Server available on localhost
Erst dann ist OpenProject betriebsbereit. Du kannst zusätzlich prüfen, ob das Seeding erfolgreich war:
docker logs openproject 2>&1 | grep -i seed
Erwartete Ausgabe enthält Zeilen wie Seeding completed oder Seed data created. Öffne anschließend http://<NAS-IP>:8080 im Browser – die OpenProject-Anmeldeseite muss erscheinen.
Schritt 5: Erster Login und Admin-Passwort ändern
Rufe http://<NAS-IP>:8080 im Browser auf. Melde dich mit den Standard-Zugangsdaten an:
- Benutzername:
admin - Passwort:
admin(oder das inOPENPROJECT_SEED_ADMIN_USER_PASSWORDgesetzte Passwort)
Da OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET=true gesetzt ist, fordert OpenProject sofort eine Passwortänderung. Wähle ein starkes Passwort und hinterlege deine korrekte E-Mail-Adresse.
Verifizieren: Nach erfolgreicher Passwortänderung landest du auf dem OpenProject-Dashboard. Navigiere zu Administration → Benutzer (oben rechts Zahnrad-Symbol → Administration → Benutzer und Berechtigungen → Benutzer). Der Admin-Account muss dort mit dem Status „Aktiv" gelistet sein.
Schritt 6: Erstes Projekt mit Gantt-Ansicht anlegen
Klicke in der Hauptnavigation auf das „+"-Symbol neben „Projekte" oder gehe über das Hamburger-Menü zu „Projekte → Neues Projekt". Vergib einen Projektnamen (z. B. „Website-Relaunch Q3") und aktiviere unter den Modulen „Gantt-Diagramme" sowie „Arbeitspakete".
Nach dem Erstellen des Projekts:
- Wechsle im linken Menü zu „Arbeitspakete"
- Erstelle ein neues Arbeitspaket (z. B. Typ „Aufgabe"), vergib einen Namen und setze ein Start- sowie ein Enddatum
- Wechsle nun ü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. Du kannst Balken per Drag-and-Drop verschieben und Abhängigkeiten zwischen Paketen durch Ziehen der Verbindungspunkte erstellen. Die Community Edition enthält diese Funktionen vollständig ohne zusätzliche Lizenz.
Schritt 7: DSM-Firewall-Port freigeben (optional, aber empfohlen)
Wenn du die DSM-Firewall aktiv hast, musst du Port 8080 für den Zugriff freigeben. Die genaue Vorgehensweise ist in der Grund-Anleitung DSM-Firewall: Ports für Docker-Container freigeben beschrieben.
Verifizieren: Rufe 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 empfiehlt sich der Synology Reverse Proxy. Öffne im DSM Systemsteuerung → Anmeldeportal → Erweitert → Reverseproxy und lege eine neue Regel an:
| Einstellung | Wert |
|---|---|
| Quellprotokoll | HTTPS |
| Quellhostname | openproject.deine-domain.de (oder DDNS) |
| Quellport | 443 |
| Zielprotokoll | HTTP |
| Ziel-Host | localhost |
| Zielport | 8080 |
Passe danach in der compose.yaml folgende Werte an und starte den Container neu:
environment:
- OPENPROJECT_HOST__NAME=openproject.deine-domain.de
- OPENPROJECT_HTTPS=true
Eine ausführliche Anleitung zum Nginx Proxy Manager als Alternative findest du unter Nginx Proxy Manager auf der Synology mit Container Manager einrichten.
Verifizieren: Rufe https://openproject.deine-domain.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. Beobachte
docker logs openproject --followund warte aufServer available on localhost. Geduld – der erste Start dauert 5–10 Minuten. - Permanente Logout-Schleife oder Cookie-Fehler nach Neustart: Der
SECRET_KEY_BASEwurde geändert oder fehlt. Stelle sicher, dass der identische Schlüssel aus dem ersten Start in dercompose.yamlsteht. Wert aus dem Passwortmanager holen und eintragen, Container neu starten. - 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üfe in der File Station, ob/volume1/docker/openproject/pgdatavorhanden ist, und stelle sicher, dass kein anderer Prozess denselben Pfad verwendet. - 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 offizieller Dokumentation nur
linux/amd64. VariableOPENPROJECT_EDITION=bimentfernen oder das Standard-Image ohne diese Variable 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?
Das :17-Image enthält alle Module inklusive BIM (Building Information Modeling für Architektur/Bauwesen, ca. 817 MB). Das :17-slim-Image lässt BIM weg (ca. 385 MB) und ist für Standard-Projektmanagement die bessere Wahl auf ressourcenbeschränkten NAS-Geräten. Für KMU ohne Bauprojekte ist :17-slim immer die richtige Wahl.
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. Im Synology Control Panel unter „Anmeldeportal → Erweitert → Reverseproxy" legst du eine Regel HTTPS 443 → HTTP localhost:8080 an. Setze dann OPENPROJECT_HOST__NAME auf den externen HTTPS-Hostnamen (z. B. openproject.mein-ddns.synology.me) und ändere 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?
Beobachte die Container-Logs auf Seeding-Meldungen:
docker logs openproject 2>&1 | grep -i seed
Erfolgreiche Ausgaben enthalten Zeilen wie Seeding completed oder Seed data created. Logge dich anschließend ein und prüfe 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. Behandle diesen Wert wie ein Passwort: einmal generieren, sicher aufbewahren, nie ändern.
Fazit
OpenProject ist die überzeugendste On-Premises-Alternative zu Jira und MS Project für DACH-KMU, die ihre Projektdaten nicht in die Cloud geben wollen. Das deutsche Hersteller-Team liefert regelmäßige Releases (Version 17.5.0, Stand Juni 2026), und das All-in-One-Docker-Image macht die Installation auf dem Synology NAS erstaunlich unkompliziert – solange man die drei Pflicht-Variablen korrekt setzt. 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. Mit dieser Anleitung umgehst du all diese Fallstricke von Anfang an. Für ein leichtgewichtigeres Aufgaben-Tool als Alternative bietet 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 du ein schlankeres Aufgaben-Tool bevorzugst
- 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