Warnung: Wenn dies ein Ordner ist, wird der gesamte Inhalt einschließlich Unterordner und Dokumente gelöscht.
Definieren Sie pfadbasierte Zugriffsregeln für Bereiche Ihres Wikis. Regeln werden in der Reihenfolge ausgewertet. Die erste Übereinstimmung gewinnt.
Erstellen und verwalten Sie Backups Ihrer Wiki-Daten. Backups umfassen alle Dokumente, Bilder und Konfigurationsdateien.
OpenProject ist eine selbst gehostete, quelloffene Projektmanagement-Software (klassisch, agil oder hybrid) mit Gantt-Charts, Boards, Zeit-/Kostenerfassung, PostgreSQL als Datenbank und Memcached als Cache.
Keine.
Tip
Optional
Wenn OpenProject auch von außerhalb des Heimnetzes erreichbar sein soll, werden zusätzlich folgende Komponenten benötigt:
mkdir /syno/openproject
mkdir /syno/openproject/assets
mkdir /syno/openproject/pgdata
Im Docker-Ordner folgende Verzeichnisstruktur anlegen:
openproject
openproject/assets
openproject/pgdata
version: "3.8"
networks:
frontend:
backend:
x-op-restart-policy: &restart_policy
restart: unless-stopped
x-op-image: &image
image: openproject/openproject:17-slim
x-op-app: &app
<<: [*image, *restart_policy]
networks:
- backend
environment:
OPENPROJECT_HTTPS: "false"
OPENPROJECT_HOST__NAME: "192.168.X.Y:5555"
DATABASE_URL: "postgres://openproject:<db-passwort>@db/openproject?pool=20&encoding=unicode&reconnect=true"
OPENPROJECT_SECRET__KEY__BASE: "<secret-key-base>"
OPENPROJECT_CACHE__MEMCACHE__SERVER: "cache:11211"
OPENPROJECT_RAILS__CACHE__STORE: "memcache"
OPENPROJECT_RAILS__RELATIVE__URL__ROOT: ""
RAILS_MIN_THREADS: "4"
RAILS_MAX_THREADS: "16"
IMAP_ENABLED: "false"
OPENPROJECT_DEFAULT__LANGUAGE: "de"
volumes:
# Für die Proxmox-VM verwenden
- /syno/openproject/assets:/var/openproject/assets
# Für die Synology verwenden
# Volume-Nummer ggf. anpassen
- /volume2/docker/openproject/assets:/var/openproject/assets
services:
db:
image: postgres:17
restart: unless-stopped
stop_grace_period: "3s"
networks:
- backend
environment:
POSTGRES_USER: openproject
POSTGRES_PASSWORD: "<db-passwort>"
POSTGRES_DB: openproject
volumes:
# Für die Proxmox-VM verwenden
- /syno/openproject/pgdata:/var/lib/postgresql/data
# Für die Synology verwenden
# Volume-Nummer ggf. anpassen
- /volume2/docker/openproject/pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U openproject -d openproject"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
cache:
image: memcached:1.6
restart: unless-stopped
networks:
- backend
seeder:
<<: *app
command: "./docker/prod/seeder"
restart: on-failure
depends_on:
db:
condition: service_healthy
cache:
condition: service_started
web:
<<: *app
command: "./docker/prod/web"
networks:
- frontend
- backend
ports:
- "5555:8080"
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health_checks/default"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
depends_on:
db:
condition: service_healthy
cache:
condition: service_started
seeder:
condition: service_completed_successfully
worker:
<<: *app
command: "./docker/prod/worker"
depends_on:
db:
condition: service_healthy
cache:
condition: service_started
seeder:
condition: service_completed_successfully
cron:
<<: *app
command: "./docker/prod/cron"
depends_on:
db:
condition: service_healthy
cache:
condition: service_started
seeder:
condition: service_completed_successfully
Note
OpenProject stellt über das okcomputer-Gem offiziell dokumentierte Healthcheck-Endpunkte bereit (u.a. /health_checks/default, /health_checks/database, /health_checks/worker). Der Healthcheck für web wurde auf Basis von /health_checks/default ergänzt. worker, cron und seeder betreiben keinen eigenen HTTP-Server und erhalten daher bewusst keinen Healthcheck; der Zustand der Background-Worker lässt sich stattdessen über web's /health_checks/worker-Endpunkt prüfen (nicht als Container-Healthcheck geeignet).
Warning
DATABASE_URL (enthält das DB-Passwort), POSTGRES_PASSWORD und OPENPROJECT_SECRET__KEY__BASE sind im obigen Stack durch Platzhalter ersetzt — siehe Notizen.
webhttp://192.168.X.Y:5555OPENPROJECT_HOST__NAME muss auf die tatsächlich genutzte Zugriffs-URL zeigen| Oberfläche | Service | Host-Pfad | Container-Pfad | Zweck |
|---|---|---|---|---|
| Proxmox-VM | web / worker / cron / seeder | /syno/openproject/assets |
/var/openproject/assets |
Anhänge, hochgeladene Dateien, Avatare |
| Proxmox-VM | db | /syno/openproject/pgdata |
/var/lib/postgresql/data |
PostgreSQL-Datenbankdateien |
| Synology | web / worker / cron / seeder | /volume2/docker/openproject/assets |
/var/openproject/assets |
Anhänge, hochgeladene Dateien, Avatare |
| Synology | db | /volume2/docker/openproject/pgdata |
/var/lib/postgresql/data |
PostgreSQL-Datenbankdateien |
| Variable | Wert | Bedeutung |
|---|---|---|
OPENPROJECT_HTTPS |
false |
Deaktiviert erzwungenes HTTPS (Instanz läuft ohne direktes TLS) |
OPENPROJECT_HOST__NAME |
192.168.X.Y:5555 |
Hostname/Adresse, unter der OpenProject erreichbar ist |
DATABASE_URL |
postgres://openproject:<db-passwort>@db/openproject?... |
Verbindungs-URL zur PostgreSQL-Datenbank |
OPENPROJECT_SECRET__KEY__BASE |
(siehe Notizen) | Geheimer Schlüssel zur Verschlüsselung von Sessions/Cookies |
OPENPROJECT_CACHE__MEMCACHE__SERVER |
cache:11211 |
Adresse des Memcached-Dienstes |
OPENPROJECT_RAILS__CACHE__STORE |
memcache |
Verwendeter Cache-Store |
OPENPROJECT_RAILS__RELATIVE__URL__ROOT |
(leer) | Relativer URL-Pfad, falls OpenProject nicht im Root betrieben wird |
RAILS_MIN_THREADS |
4 |
Minimale Anzahl Rails-Threads |
RAILS_MAX_THREADS |
16 |
Maximale Anzahl Rails-Threads |
IMAP_ENABLED |
false |
IMAP-Integration (eingehende Mails) deaktiviert |
OPENPROJECT_DEFAULT__LANGUAGE |
de |
Standardsprache der Instanz |
| Variable | Wert | Bedeutung |
|---|---|---|
POSTGRES_USER |
openproject |
Datenbank-Benutzer |
POSTGRES_PASSWORD |
(siehe Notizen) | Datenbank-Passwort |
POSTGRES_DB |
openproject |
Datenbankname |
Netzwerke: backend (alle Services), zusätzlich frontend für web
Neustart-Verhalten: unless-stopped (db, cache, web, worker, cron), on-failure (seeder)