So installierst du OpenProject unter Ubuntu 22.04

OpenProject ist ein quelloffenes und webbasiertes Projektmanagementsystem. Es bietet einen sicheren Weg für Teams, sich zu vernetzen, ihre Arbeit zu strukturieren und Ergebnisse zu erzielen. Mit OpenProject kannst du deine eigenen Aufgaben an einem Ort organisieren und Aufgaben an Teammitglieder übertragen. Die Community-Edition umfasst eine breite Palette von Funktionen und Plugins und ist kostenlos. Sie bietet eine Vielzahl von Funktionen, wie z. B. Projektplanung und -terminierung, Wikis, Foren, Agile und Scrum, Fehlerverfolgung und vieles mehr.

In diesem Beitrag wird erklärt, wie du OpenProject mit Docker auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Erste Schritte

Als Erstes musst du deine Systempakete aktualisieren und auf die neueste Version upgraden. Das kannst du mit dem folgenden Befehl tun:

apt update -y
apt upgrade -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

Docker installieren

Als Nächstes musst du die Docker-Engine auf deinem Server installieren. Du kannst sie mit folgendem Befehl installieren:

apt install docker.io -y

Sobald Docker installiert ist, kannst du die Docker-Version mit folgendem Befehl überprüfen:

docker --version

Du solltest die Docker-Version in der folgenden Ausgabe erhalten:

Docker version 20.10.12, build 20.10.12-0ubuntu4

Du kannst den Docker-Status auch mit dem folgenden Befehl überprüfen:

systemctl status docker

Du erhältst die folgende Ausgabe:

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-12 03:55:27 UTC; 27min ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 2188 (dockerd)
      Tasks: 18
     Memory: 175.3M
        CPU: 2min 52.389s
     CGroup: /system.slice/docker.service
             ??2188 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.260137217Z" level=info msg="Container failed to exit within 10s of signal>
Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.288143240Z" level=info msg="ignoring event" container=c69a4c77c21fcc30bf5>
Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.313368392Z" level=info msg="ignoring event" container=1e168552ee6decb4d38>
Sep 12 04:05:02 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:02.346672185Z" level=info msg="ignoring event" container=4f042da15c0abe50ac0>
Sep 12 04:05:03 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:03.128611054Z" level=info msg="ignoring event" container=d07c7ddcf4c5c8e1df3>
Sep 12 04:05:03 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:03.471773239Z" level=info msg="ignoring event" container=f0095298f0394b4e97c>
Sep 12 04:05:03 ubuntu2204 dockerd[2188]: time="2022-09-12T04:05:03.860303969Z" level=info msg="ignoring event" container=7c591187d6dea45ad9c>
Sep 12 04:10:05 ubuntu2204 dockerd[2188]: time="2022-09-12T04:10:05.733958315Z" level=info msg="ignoring event" container=a9126dced469461963a>
Sep 12 04:17:00 ubuntu2204 dockerd[2188]: time="2022-09-12T04:17:00.365019409Z" level=info msg="ignoring event" container=317a71b1e5e2810e618>
Sep 12 04:19:40 ubuntu2204 dockerd[2188]: time="2022-09-12T04:19:40.133136639Z" level=info msg="ignoring event" container=e5fa71f4c2a7d8f3dc4>

OpenProject Container herunterladen und starten

Die einfachste und leichteste Art, OpenProject zu installieren, ist, es mit einem Docker-Container zu starten. Du kannst ihn herunterladen und starten, indem du den folgenden Befehl ausführst:

docker run -dit -p 8080:80 -e OPENPROJECT_SECRET_KEY_BASE=secret -e OPENPROJECT_HOST__NAME=127.0.0.1:8080 -e OPENPROJECT_HTTPS=false openproject/community:12

Dadurch wird das OpenProject Community Docker-Image heruntergeladen und wie unten gezeigt gestartet:

Unable to find image 'openproject/community:12' locally
12: Pulling from openproject/community
76dff75df4d9: Pull complete 
3e8c90a1c4bb: Pull complete 
b3662c105080: Pull complete 
ad5dcb7dd592: Pull complete 
fa57cc7ce341: Pull complete 
9b3a1f58f992: Pull complete 
3ba44da7772d: Pull complete 
bb99cfe1d593: Pull complete 
d9be85920c31: Pull complete 
887163836f1b: Pull complete 
8d9b5634408e: Pull complete 
40cd37c7c054: Pull complete 
8f3f7ae1eab6: Pull complete 
0bad647edadc: Pull complete 
7604d9da2c69: Pull complete 
5064bcba96f5: Pull complete 
a31fefd0310b: Pull complete 
57856090623a: Pull complete 
c5788f49d4cb: Pull complete 
Digest: sha256:5b3850c813b44e0e83b31ee3ee7e65a22a05009f5101132caee51b4c799adaa9
Status: Downloaded newer image for openproject/community:12
cecc63dbe7c8263cdf9813a5dee5d5cfda3e2f8b8cdb78b3d038679507fa7769

Du kannst das heruntergeladene Docker-Image mit dem folgenden Befehl überprüfen:

docker images

Du erhältst die folgende Ausgabe:

REPOSITORY              TAG       IMAGE ID       CREATED       SIZE
openproject/community   12        88f613862e98   11 days ago   1.93GB

Um den Status des OpenProject-Containers zu überprüfen, führe den folgenden Befehl aus:

docker ps

Du solltest sehen, dass der OpenProject-Container gestartet ist und auf Port 8080 lauscht:

CONTAINER ID   IMAGE                      COMMAND                  CREATED          STATUS          PORTS                                             NAMES
cecc63dbe7c8   openproject/community:12   "./docker/prod/entry…"   12 seconds ago   Up 11 seconds   5432/tcp, 0.0.0.0:8080->80/tcp, :::8080->80/tcp   silly_fermi

Du kannst auch die Protokolle des OpenProject-Containers mit folgendem Befehl überprüfen:

docker logs cecc63dbe7c8

Du erhältst die folgende Ausgabe:

=> Booting Puma
=> Rails 7.0.3.1 application starting in production 
=> Run `bin/rails server --help` for more startup options
I, [2022-09-12T04:25:12.466164 #138]  INFO -- : Using schema cache file /app/db/schema_cache.yml
[138] Puma starting in cluster mode...
[138] * Puma version: 5.6.4 (ruby 3.1.2-p20) ("Birdie's Version")
[138] *  Min threads: 4
[138] *  Max threads: 16
[138] *  Environment: production
[138] *   Master PID: 138
[138] *      Workers: 2
[138] *     Restarts: (?) hot (?) phased
[138] * Preloading application
[138] * Listening on http://0.0.0.0:8080
[138] Use Ctrl-C to stop
[138] - Worker 1 (PID: 337) booted in 0.01s, phase: 0
[138] - Worker 0 (PID: 336) booted in 0.02s, phase: 0

Apache als Reverse Proxy für OpenProject konfigurieren

Wie du sehen kannst, lauscht OpenProject auf Port 8080. Es wird daher empfohlen, Apache als Reverse Proxy zu konfigurieren, um über Port 80 auf das OpenProject zuzugreifen.

Installiere zunächst das Apache-Webserver-Paket mit dem folgenden Befehl:

apt install apache2 -y

Sobald der Apache installiert ist, aktiviere die benötigten Module mit dem folgenden Befehl:

a2enmod proxy_http headers rewrite

Als Nächstes erstellst du eine Konfigurationsdatei für den virtuellen Apache-Host mit dem folgenden Befehl:

nano /etc/apache2/sites-available/openproject.conf

Füge die folgenden Konfigurationen hinzu:

<VirtualHost *:80>
ServerName openproject.linuxbuz.com

RewriteEngine on
RewriteRule "^$" "/" [R,L]

ProxyRequests off

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

</VirtualHost>

Speichere und schließe die Datei und aktiviere dann den virtuellen OpenProject-Host mit dem folgenden Befehl:

a2ensite openproject.conf

Starte abschließend den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl reload apache2

Du kannst den Apache-Status auch mit dem folgenden Befehl überprüfen:

systemctl status apache2

Du erhältst die folgende Ausgabe:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-09-12 04:26:23 UTC; 1min 30s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 14508 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
   Main PID: 14058 (apache2)
      Tasks: 55 (limit: 4579)
     Memory: 5.4M
        CPU: 98ms
     CGroup: /system.slice/apache2.service
             ??14058 /usr/sbin/apache2 -k start
             ??14512 /usr/sbin/apache2 -k start
             ??14513 /usr/sbin/apache2 -k start

Sep 12 04:26:23 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

OpenProject mit Let’s Encrypt SSL sichern

Es wird auch empfohlen, SSL auf der OpenProject-Website zu aktivieren. Installiere zunächst das Certbot-Client-Paket mit dem folgenden Befehl:

apt install python3-certbot-apache -y

Als Nächstes führst du den folgenden Befehl aus, um Let’s Encrypt SSL für deine Website-Domain herunterzuladen und zu installieren.

certbot --apache -d openproject.linuxbuz.com

Beantworte alle Fragen wie unten gezeigt, um Let’s Encrypt SSL zu installieren:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): hitjethva@gmail.com


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017-w-v1.3-notice.pdf.
You must agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: (Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for openproject.linuxbuz.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/openproject.linuxbuz.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/openproject.linuxbuz.com/privkey.pem
This certificate expires on 2022-12-11.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for openproject.linuxbuz.com to /etc/apache2/sites-available/openproject-le-ssl.conf
Added an HTTP->HTTPS rewrite in addition to other RewriteRules; you may wish to check for overall consistency.
Congratulations! You have successfully enabled HTTPS on https://openproject.linuxbuz.com
We were unable to subscribe you the EFF mailing list because your e-mail address appears to be invalid. You can try again later by visiting https://act.eff.org.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Zugriff auf OpenProject Web UI

Öffne nun deinen Webbrowser und rufe das OpenProject über die URL https://openproject.linuxbuz.com auf. Du solltest die Willkommensseite von OpenProject sehen:

Klicke auf die Schaltfläche Anmelden. Du solltest die Anmeldeseite von OpenProject sehen:

Gib den Standardbenutzernamen und das Standardpasswort admin / admin ein und klicke dann auf die Schaltfläche Anmelden. Du solltest den Bildschirm zur Passwortänderung sehen:

Ändere dein Standardpasswort und klicke auf die Schaltfläche „Speichern“. Auf dem folgenden Bildschirm solltest du das OpenProject-Dashboard sehen:

Fazit

Herzlichen Glückwunsch! Du hast OpenProject mit Docker erfolgreich auf Ubuntu 22.04 installiert. Jetzt kannst du OpenProject in deiner Organisation einführen und damit beginnen, dein Projekt von einem zentralen Ort aus zu verwalten und zu verfolgen.

Das könnte dich auch interessieren …