OpenProject Docker HowTo

OpenProject wird als Docker-Container gut gepflegt und ist daher die erste Wahl. Damit die Daten bei einem Update nicht verschwinden, ist ein überblenden von lokalen Verzeichnissen des Docker-Container zum Host-System ratsam.

Die Datenverzeichnisse mit:

mkdir -p /var/lib/openproject/pgdata

mkdir /var/lib/openproject/logs

mkdir /var/lib/openproject/static

erstellen.

Der Docker-Container wird mit folgenden Befehl geholt und gestartet:

docker run \
  -p 127.0.0.1:8080:80 \
  -v /var/lib/openproject/pgdata:/var/lib/postgresql/9.6/main \
  -v /var/lib/openproject/logs:/var/log/supervisor \
  -v /var/lib/openproject/static:/var/db/openproject \
  -e SECRET_KEY_BASE=secret \
  openproject/community:8 &

Die Postgres Datenbank wird automatisch installiert und konfiguriert.

Da man ja nicht per http://localhost:8080 auf den Docker Container zugreifen kann, ist ein Apache virtueller Host notwendig.Wer noch nicht mod_proxy in den Apache eingebunden hat muss diesen erst noch installieren.

 
  1. sudo a2enmod proxy
  2. sudo a2enmod proxy_http
  3. sudo a2enmod proxy_balancer
  4. sudo a2enmod lbmethod_byrequests
  5. sudo service apache2 restart
 

Man erstellt eine eigene Domain oder Subdomain openproject.<domainname>. Die Konfiguration für den virtuellen Host könnte so aussehen:

Apache ##############################

        SSLEngine On
        SSLCertificateFile /etc/letsencrypt/live/openproject.<domainname>/cert.pem
        SSLCertificateChainFile /etc/letsencrypt/live/openproject.<domainname>/chain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/openproject.<domainname>/privkey.pem
        SSLProtocol All -SSLv2 -SSLv3
        SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

        ServerAdmin webmaster@<domainname>

        DocumentRoot /var/www/project

        ErrorLog /var/log/apache2/error.log

        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

        ServerName project.<domainname>:443

        RequestHeader unset Authorization
        RequestHeader set X-Forwarded-Proto "https"
        <Directory /var/www/project>
                Options +Indexes +FollowSymLinks +MultiViews
                AllowOverride All
                <RequireAny>
                    <RequireAll>
                        Require all grantedt
                    </RequireAll>
                 </RequireAny>
        </Directory>

        <Location />
                ProxyPreserveHost On
                ProxyPass http://127.0.0.1:8080/
                ProxyPassReverse http://127.0.0.1:8080/
        </Location>

Apache ##############################

Wichtig ist hierbei ProxyPreserveHost , da sonst der Host 127.0.0.1 nicht umgeschrieben wird und die Webseite teilweise Web-Links mit 127.0.0.1 versieht.

In der Anfangszeit habe ich meine Webseite zusätzlich mit einem Passwort geschützt. Damit war eine Erstellung von Arbeitspaketen nicht möglich. Fehlermeldung: Logindaten nicht korrekt. Ursache war mein zusätzlicher Passwortschutz. Der Apache2 Eintrag "RequestHeader unset Authorization" hat hier die erste Authorization entfernt und der Login von OpenProject wird nun genutzt.

Man muss sich zu Anfang mit admin / admin anmelden. Im nächsten Schritt vergibt man ein neues Passwort und wählt die Sprache aus. Unter Administration->Systemkonfiguration Protokoll auf https stellen.

Sollte im Nachgang OpenProject den Fehler 422 ausgeben oder kommt der Fehler nach einem Neustart des Docker-Containers, liegt es wahrscheinlich an Sessions, die unter http angelegt werden. Der Apache2 Eintrag - RequestHeader set X-Forwarded-Proto "https" - hat diesen Fehler beseitigt.

Nun sollte die Instanz sauber laufen.

OpenProject kann den Projektteilnehmer über ihre Task per Mail informieren. Hierbei kann man einen SMTP Server in der Software angeben. Die Einstellungen können direkt beim Start des Docker-Container oder später über das Admin Menu eingestellt werden.

Hierbei unbedingt die Namensauflösung prüfen. Der Docker-Container muss zugriff zu einem evtl. vorhandenen lokalen DNS Server bekommen.

 

Weiter Informationen im Benutzerhandbuch von OpenProject.

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.