So installierst du Focalboard unter Ubuntu 22.04

Focalboard ist ein Open-Source- und selbstgehostetes Projektmanagement-Tool. Es ist mehrsprachig und eine Alternative zu Asana, Trello und Notion, die von Entwicklern genutzt werden kann, um Arbeit in Teams zu verfolgen und zu verwalten. Es basiert auf Kanban und ist für Desktops und Server verfügbar. Es kann als eigenständiger persönlicher Server für Tests und Entwicklung verwendet werden. Focalboard hilft Entwicklern dabei, ihre Aufgaben zu erledigen, Meilensteine zu erreichen und ihre Ziele zu verwirklichen.

In diesem Beitrag zeigen wir dir, wie du Focalboard mit Nginx als Reverse Proxy auf Ubuntu 22.04 installierst.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 22.04 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

PostgreSQL installieren und konfigurieren

Focalboard verwendet PostgreSQL, um seine Daten zu speichern. Daher muss der PostgreSQL-Datenbankserver auf deinem System installiert sein.

Wenn er nicht installiert ist, kannst du ihn zusammen mit anderen Paketen mit dem folgenden Befehl installieren:

apt-get install curl wget gnupg2 -y
apt-get install postgresql postgresql-contrib -y

Nach der Installation von PostgreSQL stellst du mit folgendem Befehl eine Verbindung zu PostgreSQL her:

su - postgres
psql

Als Nächstes erstellst du eine Datenbank und einen Benutzer für PostgreSQL mit dem folgenden Befehl:

CREATE DATABASE focaldb;
CREATE USER focaluser WITH PASSWORD 'password';

Verlasse die PostgreSQL-Shell mit folgendem Befehl:

\q
exit

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Focalboard installieren und konfigurieren

Besuche zunächst die Download-Seite des Focalboard Git Hub und lade die neueste Version von Focalboard mit folgendem Befehl herunter:

VER=$(curl -s https://api.github.com/repos/mattermost/focalboard/releases/latest|grep tag_name | cut -d '"' -f 4)
wget https://github.com/mattermost/focalboard/releases/download/${VER}/focalboard-server-linux-amd64.tar.gz

Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvzf focalboard-server-linux-amd64.tar.gz

Verschiebe das Focalboard mit folgendem Befehl in das Verzeichnis /opt:

mv focalboard /opt

Als Nächstes bearbeitest du die Konfigurationsdatei von Focalboard:

nano /opt/focalboard/config.json

Ändere die folgenden Zeilen, die mit deiner Datenbank übereinstimmen, wie unten gezeigt:

"dbtype": "postgres",
"dbconfig": "postgres://focaluser:[email protected]/focaldb?sslmode=disable&connect_timeout=10",

Speichere und schließe die Datei, wenn du fertig bist.

Erstelle eine Systemd-Dienstdatei für Focalboard

Es ist eine gute Idee, Focalboard mit systemd zu starten und zu verwalten. Dazu musst du eine systemd-Dienstdatei für Focalboard erstellen:

nano /lib/systemd/system/focalboard.service

Füge die folgenden Zeilen ein:

[Unit]
Description=Focalboard server

[Service]
Type=simple
Restart=always
RestartSec=5s
ExecStart=/opt/focalboard/bin/focalboard-server
WorkingDirectory=/opt/focalboard

[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei und lade dann den systemd-Daemon neu, um die Änderungen zu übernehmen:

systemctl daemon-reload

Starte und aktiviere den Focalboard-Dienst mit dem folgenden Befehl:

systemctl start focalboard
systemctl enable focalboard

Jetzt kannst du den Status des Focalboards mit dem folgenden Befehl überprüfen:

systemctl status focalboard

Du erhältst die folgende Ausgabe:

? focalboard.service - Focalboard server
     Loaded: loaded (/lib/systemd/system/focalboard.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-08-21 11:22:22 UTC; 8s ago
   Main PID: 4347 (focalboard-serv)
      Tasks: 4 (limit: 2242)
     Memory: 18.1M
        CPU: 1.977s
     CGroup: /system.slice/focalboard.service
             ??4347 /opt/focalboard/bin/focalboard-server

Aug 21 11:22:23 ubuntu2204 focalboard-server[4347]: debug [2022-08-21 11:22:23.507 Z] listener(s) for blockID                  caller="ws/ser>
Aug 21 11:22:23 ubuntu2204 focalboard-server[4347]: debug [2022-08-21 11:22:23.507 Z] listener(s) for blockID                  caller="ws/ser>
Aug 21 11:22:23 ubuntu2204 focalboard-server[4347]: debug [2022-08-21 11:22:23.510 Z] listener(s) for workspaceID              caller="ws/ser>
Aug 21 11:22:23 ubuntu2204 focalboard-server[4347]: debug [2022-08-21 11:22:23.510 Z] listener(s) for blockID                  caller="ws/ser>
Aug 21 11:22:23 ubuntu2204 focalboard-server[4347]: debug [2022-08-21 11:22:23.510 Z] listener(s) for blockID                  caller="ws/ser>
Aug 21 11:22:24 ubuntu2204 focalboard-server[4347]: debug [2022-08-21 11:22:24.928 Z] import archive - done                    caller="app/im>
Aug 21 11:22:24 ubuntu2204 focalboard-server[4347]: info  [2022-08-21 11:22:24.937 Z] initialized workspace                    caller="app/wo>
Aug 21 11:22:24 ubuntu2204 focalboard-server[4347]: info  [2022-08-21 11:22:24.941 Z] Server.Start                             caller="server>
Aug 21 11:22:24 ubuntu2204 focalboard-server[4347]: info  [2022-08-21 11:22:24.941 Z] http server started                      caller="web/we>
Aug 21 11:22:24 ubuntu2204 focalboard-server[4347]: info  [2022-08-21 11:22:24.947 Z] Starting unix socket server              caller="server>

Zu diesem Zeitpunkt ist Focalboard gestartet und lauscht auf Port 8000. Du kannst die zu überwachenden Ports mit dem folgenden Befehl überprüfen:

ss -antpl | grep focalboard

Du erhältst die folgende Ausgabe:

LISTEN 0      4096               *:8000            *:*    users:(("focalboard-serv",pid=4347,fd=9))
LISTEN 0      4096               *:9092            *:*    users:(("focalboard-serv",pid=4347,fd=8))

Sobald du fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Nginx als Reverse Proxy konfigurieren

Als Nächstes empfiehlt es sich, Nginx als Reverse Proxy zu installieren und zu konfigurieren, um über Port 80 auf das Focalboard zuzugreifen. Installiere zunächst den Nginx-Server mit dem folgenden Befehl:

apt-get install nginx -y

Sobald der Nginx-Server installiert ist, erstellst du eine Konfigurationsdatei für den virtuellen Nginx-Host:

nano /etc/nginx/conf.d/focalboard.conf

Füge die folgenden Zeilen hinzu:

upstream focalboard {
   server localhost:8000;
   keepalive 32;
}

server {
   listen 80;

   server_name focalboard.example.com;

   location ~ /ws/* {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 1d;
       proxy_send_timeout 1d;
       proxy_read_timeout 1d;
       proxy_pass http://focalboard;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://focalboard;
   }
}

Speichere und schließe die Datei, wenn du fertig bist, und überprüfe dann Nginx mit folgendem Befehl auf Syntaxkonfigurationsfehler:

nginx -t

Du erhältst die folgende Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starte anschließend den Nginx-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart nginx

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

systemctl status nginx

Du solltest die folgende Ausgabe sehen:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-08-21 11:24:08 UTC; 7s ago
       Docs: man:nginx(8)
    Process: 5017 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 5018 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 5019 (nginx)
      Tasks: 2 (limit: 2242)
     Memory: 2.6M
        CPU: 35ms
     CGroup: /system.slice/nginx.service
             ??5019 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??5020 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Aug 21 11:24:08 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Aug 21 11:24:08 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Zugriff auf die Focalboard-Weboberfläche

Öffne nun deinen Webbrowser und gib die URL http://focalboard.example.com/login ein, um auf das Focalboard zuzugreifen. Du wirst auf die Anmeldeseite von Focalboard weitergeleitet:

Klicke auf die Schaltfläche “ Konto erstellen „. Du solltest die Seite zur Erstellung eines Focalboard-Kontos sehen:

Anmeldung

Gib deine E-Mail-Adresse, deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche “ Registrieren „. Auf der folgenden Seite solltest du das Focalboard-Dashboard sehen:

Focalboard unter Ubuntu

Aktiviere SSL auf Focalboard

Aus Sicherheitsgründen ist es ratsam, Focalboard mit Let’s Encrypt SSL zu sichern. Als nächstes musst du das Certbot Client-Paket installieren, um Let’s Encrypt SSL zu installieren und zu verwalten.

Installiere zunächst Certbot mit dem folgenden Befehl:

apt-get install python3-certbot-nginx -y

Sobald die Installation abgeschlossen ist, führst du den folgenden Befehl aus, um Let’s Encrypt SSL auf deiner Website zu installieren:

certbot --nginx -d focalboard.example.com

Du wirst aufgefordert, eine gültige E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing 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
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for focalboard.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/focalboard.conf

Als Nächstes wählst du aus, ob der HTTP-Datenverkehr auf HTTPS umgeleitet werden soll oder nicht (siehe unten):

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Gib 2 ein und drücke die Eingabetaste, um die Installation abzuschließen. Du solltest die folgende Ausgabe sehen:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/focalboard.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://focalboard.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=focalboard.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/focalboard.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/focalboard.example.com/privkey.pem
   Your cert will expire on 2022-11-21. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

 - 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.

Fazit

Herzlichen Glückwunsch! Du hast Focalboard erfolgreich mit Nginx als Reverse Proxy auf Ubuntu 22.04 installiert. Jetzt kannst du Focalboard in deinem Unternehmen einsetzen und deine Projekte einfach über den Webbrowser verwalten und verfolgen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …