FreeScout Help Desk unter Debian 12 installieren

FreeScout ist ein Open-Source-Helpdesk und gemeinsamer Posteingang, der in PHP geschrieben wurde und auf dem Laravel-Framework basiert. Es wurde als Alternative zu Zendesk/Help Scout entwickelt. Es ist eine schlanke und leistungsstarke Helpdesk-Software, die überall installiert werden kann. FreeScout ist eine Helpdesk-Software, die 100% mobilfreundlich ist und mehrsprachige und moderne Microsoft Exchange-Authentifizierungen unterstützt.

Diese Anleitung führt dich Schritt für Schritt durch die Installation von FreeScout Help Desk auf einem Debian 12 Server. Du wirst FreeScout mit dem LEMP-Stack (Nginx, MariaDB und PHP-FPM) auf dem Debian-Server installieren und deine Installation mit SSL/TLS-Zertifikaten von Letsencrypt absichern.

Voraussetzungen

Bevor du fortfährst, überprüfe, ob du Folgendes gesammelt hast

  • Einen Debian 12 Server.
  • Einen Nicht-Root-Benutzer mit sudo-Administrator-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installieren der Abhängigkeiten

FreeScout Help Desk ist eine Open-Source-Anwendung, die in PHP geschrieben wurde, die Datenbank MySQL/MariaDB oder PostgreSQL unterstützt und mit den Webservern Nginx, Apache und IIS betrieben werden kann. In diesem Leitfaden wirst du FreeScout mit dem LEMP-Stack (Nginx, MariaDB und PHP-FPM) installieren.

Führe den folgenden Befehl aus, um deinen Debian-Paketindex zu aktualisieren und aufzufrischen.

sudo apt update

Sobald das Repository aktualisiert ist, führe den folgenden Befehl aus, um die Abhängigkeiten für FreeScout Help Desk zu installieren, einschließlich des LEMP-Stacks (Nginx, MariaDB, PHP-FPM) mit zusätzlichen PHP-Erweiterungen und Git.

sudo apt install nginx mariadb-server libmariadb-dev git php-fpm php-mysql php-mbstring php-xml php-imap php-zip php-gd php-curl php-intl

Gib y ein, um mit der Installation fortzufahren.

Abhängigkeiten installieren

Wenn die Abhängigkeiten installiert sind, überprüfe jede Abhängigkeit mit dem folgenden Befehl.

Überprüfe den Nginx-Dienst, um sicherzustellen, dass der Dienst läuft und aktiviert ist.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Die folgende Ausgabe zeigt, dass Nginx läuft und aktiviert ist.

nginx verifizieren

Überprüfe dann den MariaDB-Dienst mit dem unten stehenden Befehl.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Du solltest eine ähnliche Ausgabe sehen, die anzeigt, dass MariaDB aktiviert und aktiv ist (läuft).

mariadb prüfen

Führe nun den folgenden Befehl aus, um den PHP-FPM-Dienst zu überprüfen.

sudo systemctl is-enabled php8.2-fpm
sudo systemctl status php8.2-fpm

Die folgende Ausgabe zeigt dir, dass der PHP-FPM-Dienst läuft und aktiviert ist.

php prüfen

Überprüfe abschließend die PHP-FPM-Version und die Liste der aktivierten Erweiterungen mit dem folgenden Befehl.

php -v
php -m

Du solltest sehen, dass PHP-FPM 8.2 mit einigen aktivierten Erweiterungen installiert ist.

php-Version und Erweiterungen prüfen

PHP-FPM konfigurieren

Nachdem du die Abhängigkeiten installiert hast, konfigurierst du deine PHP-FPM-Installation, indem du die Datei php.ini anpasst.

Öffne die php.ini-Konfiguration für PHP-FPM /etc/php/8.2/fpm/php.ini mit dem folgenden Befehl des nano-Editors.

sudo nano /etc/php/8.2/fpm/php.ini

Ändere die folgenden Optionen und achte darauf, dass du die Details der Zeitzone und des Speicherlimits an deine Serverumgebung anpasst.

memory_limit = 512M
date.timezone = Europe/Stockholm
upload_max_filesize = 16M
cgi.fix_pathinfo=0

Speichere und beende die Datei, wenn du fertig bist.

Führe nun den folgenden systemctl-Befehl aus, um den PHP-FPM-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart php8.2-fpm

MariaDB Server konfigurieren

Im folgenden Schritt sicherst du deine MariaDB Serverinstallation mit dem Dienstprogramm mariadb-secure-installation. Anschließend erstellst du eine neue Datenbank und einen neuen Benutzer, die von FreeScout verwendet werden.

Um deinen MariaDB-Server zu sichern, gibst du den folgenden Befehl ein.

sudo mariadb-secure-installation

Während des Vorgangs gibst du Y ein, um die neue Konfiguration zu bestätigen, oder n für Nein und Ablehnung. Im Folgenden findest du einige der MariaDB-Serverkonfigurationen, nach denen du gefragt wirst:

  • Lokale Authentifizierung auf unix_socket umstellen? Gib n für nein ein.
  • MariaDB Root-Passwort einrichten? Gib y ein, gib dann das neue MariaDB Root-Passwort ein und wiederhole die Eingabe.
  • Den anonymen Standardbenutzer entfernen? Gib zur Bestätigung y ein.
  • Fernanmeldung für den Root-Benutzer deaktivieren? Gib zur Bestätigung y ein.
  • Den Standard-Datenbanktest entfernen? Gib zur Bestätigung y ein.
  • Tabellenberechtigungen neu laden und Änderungen übernehmen? Bestätige mit y.

Nachdem du den MariaDB-Server gesichert hast, erstellst du eine neue MariaDB-Datenbank und einen neuen Benutzer, der von FreeScout verwendet werden soll. Dazu meldest du dich über den mariadb-Client am MariaDB-Server an.

Führe den folgenden mariadb-Befehl aus, um dich beim MariaDB-Server anzumelden. Gib dein MariaDB-Root-Passwort ein, wenn du dazu aufgefordert wirst.

sudo mariadb -u root -p

Führe nun die folgenden Abfragen aus, um eine neue Datenbank freescout und einen Benutzer freescout zu erstellen. Achte darauf, dass du das Passwort in der folgenden Abfrage änderst.

CREATE DATABASE freescout CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON freescout.* TO freescout@localhost IDENTIFIED BY "password";
FLUSH PRIVILEGES;

Datenbank und Benutzer anlegen

Als Nächstes führst du die folgende Abfrage aus, um den Benutzer freescout zu überprüfen und sicherzustellen, dass er auf die Datenbank freescout zugreifen kann.

SHOW GRANTS FOR freescout@localhost;

Die folgende Ausgabe bestätigt, dass der Benutzer freescout auf die Datenbank freescout zugreifen kann.

mariadb-Benutzer verifizieren

Du kannst nun quit eingeben, um den MariaDB-Server zu verlassen.

Herunterladen des FreeScout-Quellcodes

Nachdem der PHP-FPM- und der MariaDB-Server konfiguriert sind, musst du als Nächstes den FreeScout-Quellcode über Git herunterladen und die entsprechenden Rechte für den FreeScout-Quellcode einrichten.

Führe den folgenden Befehl aus, um ein neues Web-Root-Verzeichnis /var/www/freescout zu erstellen und in dieses Verzeichnis zu wechseln.

mkdir -p /var/www/freescout; cd /var/www/freescout

Lade den FreeScout-Quellcode von GitHub mit dem unten stehenden git-Befehl herunter.

git clone https://github.com/freescout-helpdesk/freescout .

Sobald der Prozess abgeschlossen ist, führst du den unten stehenden Befehl aus, um den Eigentümer des Web-Root-Verzeichnisses /var/www/freescout auf den Benutzer www-data zu ändern. Dadurch kann Nginx auf den FreeScout-Quellcode zugreifen.

sudo chown -R www-data:www-data /var/www/freescout

Schließlich kannst du auch sicherstellen, dass jedes Verzeichnis und jede Datei die richtigen Rechte hat, indem du den folgenden Befehl ausführst.

find /var/www/freescout -type f -exec chmod 664 {} \;    
find /var/www/freescout -type d -exec chmod 775 {} \;

Jetzt hast du den FreeScout-Quellcode in das Web-Root-Verzeichnis /var/www/freescout heruntergeladen. Im nächsten Schritt erstellst du eine neue Nginx-Server-Blockkonfiguration, mit der du deine FreeScout-Installation ausführen wirst.

Nginx Server-Block konfigurieren

Nachdem du den FreeScout-Quellcode heruntergeladen hast, erstellst du einen neuen Nginx-Serverblock, auf dem deine FreeScout-Installation laufen wird. Bevor du fortfährst, solltest du sicherstellen, dass der Domainname auf deine Server-IP-Adresse zeigt.

Erstelle eine neue Nginx-Serverblock-Konfiguration /etc/nginx/sites-available/freescout mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/nginx/sites-available/freescout

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen änderst

server {
    listen 80;
server_name hwdomain.io;
root /var/www/freescout/public;
index index.php index.html index.htm;

error_log /var/www/freescout/storage/logs/web-server.log;

location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Uncomment this location if you want to improve attachments downloading speed.
# Also make sure to set APP_DOWNLOAD_ATTACHMENTS_VIA=nginx in the .env file.
#location ^~ /storage/app/attachment/ {
#    internal;
#    alias /var/www/freescout/storage/app/attachment/;
#}
location ~* ^/storage/attachment/ {
expires 1M;
access_log off;
try_files $uri $uri/ /index.php?$query_string;
}
location ~* ^/(?:css|js)/.*\.(?:css|js)$ {
expires 2d;
access_log off;
add_header Cache-Control "public, must-revalidate";
}
location ~* ^/(?:css|fonts|img|installer|js|modules|[^\\\]+\..*)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
location ~ /\. {
deny  all;
}
}

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um die Serverblockdatei /etc/nginx/sites-available/freescout zu aktivieren und deine Nginx-Syntax zu überprüfen.

sudo ln -s /etc/nginx/sites-available/freescout /etc/nginx/sites-enabled/
sudo nginx -t

Wenn du eine korrekte Syntax hast, solltest du die Ausgabe test is successful – syntax is ok erhalten.

nginx Server-Block einrichten

Führe nun den folgenden Befehl aus, um den Nginx-Dienst neu zu starten und die vorgenommenen Änderungen zu übernehmen.

sudo systemctl restart nginx

Im nächsten Schritt wirst und musst du SSL/TLS-Zertifikate von letsencrypt über Certbot und das Certbot Nginx Plugin generieren.

FreeScout mit SSL/TLS-Zertifikaten absichern

Um FreeScout Help Desk zu installieren, musst du HTTPS auf deinem Webserver aktivieren. Im folgenden Schritt wirst du SSL/TLS-Zertifikate von Letsencrypt über Certbot und das Certbot Nginx Plugin generieren.

Installiere Certbot und das Certbot Nginx-Plugin mit dem folgenden apt-Befehl. Gib y ein, um mit der Installation fortzufahren.

sudo apt install certbot python3-certbot-nginx

certbot installieren

Als Nächstes führst du den folgenden Certbot-Befehl aus, um neue SSL/TLS-Zertifikate für deinen Domainnamen zu erstellen. Achte darauf, dass du die Details deiner E-Mail-Adresse und deines Domainnamens mit deinen Daten änderst.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email alice@example.io -d help.example.io

Sobald der Vorgang abgeschlossen ist, sind deine SSL/TLS-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com/ verfügbar. Außerdem wird deine Nginx-Serverblockdatei /etc/nginx/sites-available/freescout automatisch mit HTTPS konfiguriert, was durch das Certbot Nginx-Plugin geschieht.

FreeScount-Installation über den Web-Installer

Starte deinen Webbrowser und rufe den Domainnamen deiner FreeScount-Installation auf, z. B. http://glpi.hwdomain.io/. Du wirst auf eine sichere HTTPS-Verbindung und die FreeScount-Installationsseite weitergeleitet.

Klicke auf Anforderungen prüfen, um sicherzustellen, dass alle benötigten PHP-Erweiterungen installiert sind.

Anforderungen prüfen

Wenn die erforderlichen PHP-Erweiterungen installiert sind, klicke auf Berechtigungen prüfen, um fortzufahren.

php-Erweiterungen prüfen

Vergewissere dich nun, dass das FreeScout-Verzeichnis beschreibbar ist. Klicke dann auf Umgebungen konfigurieren.

Gib deinen Domainnamen in die App-URL-Einstellung ein und klicke auf Datenbank einrichten

App-Url

Wähle als Standarddatenbank MySQL und gib den Datenbanknamen, den Benutzer und das Passwort ein. Klicke dann auf Anwendung einrichten, um fortzufahren.

Datenbankdetails eingeben

Wähle die Sprache der Anwendung und die Zeitzone und klicke auf Admin einrichten.

Sprache auswählen Zeitzone

Erstelle nun einen neuen Admin-Benutzer für deine FreeScount-Installation. Gib deine E-Mail-Adresse, den neuen Benutzer und das Passwort ein und klicke dann auf Installieren, um mit der FreeScout-Installation fortzufahren.

Admin-Setup

Wenn die Installation erfolgreich war, solltest du die folgenden Bestätigungen sehen. Außerdem siehst du, dass du einen neuen Cron-Job für FreeScout erstellen musst.

Installation beendet

Gehe zurück zu deinem Terminalserver und führe den folgenden Befehl aus, um einen neuen Cron-Job für FreeScout zu erstellen.

crontab -u www-data -e

Gib die unten stehende Konfiguration ein.

* * * * * php /var/www/freescout/artisan schedule:run >> /dev/null 2>&1

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

Als Nächstes kehrst du zu deinem Webbrowser zurück und klickst auf “ Anmelden“, dann wird die FreeScout-Anmeldeseite angezeigt. Gib deine Admin-E-Mail-Adresse und dein Passwort ein und klicke dann auf Anmelden.

freescout Login-Seite

Wenn deine Installation erfolgreich war, solltest du das FreeScout-Dashboard wie folgt sehen:

Freescout Dashboard

Fazit

Abschließend lässt sich sagen, dass du FreeScout Help Desk nun erfolgreich auf dem Debian 12 Server mit dem LEMP Stack (Nginx, MariaDB und PHP-FPM) installiert hast. Außerdem hast du deine FreeScout-Installation mit SSL/TLS-Zertifikaten abgesichert, die von letsencrypt generiert wurden. Jetzt kannst du FreeScout als Helpdesk-Plattform für deine lokale/interne Organisation einrichten und nutzen.

Das könnte dich auch interessieren …