Zulip ist ein Open-Source-Chatserver, ähnlich wie Microsoft Teams, Rocket Chat oder Slack. Es ist in Python geschrieben und verwendet Django, PostgreSQL und JavaScript. Es lässt sich in über 90 Plug-ins von Drittanbietern integrieren, darunter Github, Jira, Stripe, Zendesk, Sentry usw. Sie können die Integrationen erweitern, indem Sie sie mit Zapier und IFTTT verbinden. Es bietet Funktionen wie privates Messaging, Gruppenchats, Thread-Konversationen, benutzerdefinierte Kanäle, Videoanrufe, Datei-Uploads per Drag-and-Drop, benutzerdefinierte Emojis, Giphy-Integration, Vorschau von Bildern und Tweets und vieles mehr. Zulip wird mit Desktop- und mobilen Apps für jede Plattform geliefert, wodurch es plattformunabhängig ist.
In diesem Tutorial erfahren Sie, wie Sie Zulip Chat auf einem Debian 11-basierten Server installieren und konfigurieren.
Voraussetzungen
-
Ein Server mit Debian 11.
-
Mindestens 2 GB RAM, wenn Sie weniger als 100 Benutzer erwarten. Holen Sie sich für mehr als 100 Benutzer einen Server mit 4 GB RAM und 2 CPUs.
-
Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
-
Ein Domänenname, der so konfiguriert ist, dass er auf den Server
zulip.example.com
verweist . -
Alles ist aktualisiert.
$ sudo apt update &&sudo apt upgrade
-
Einige Pakete, die Ihr System benötigt.
$ sudo apt install wget curl nano ufw software-properties-common apt-transport-https gnupg2 ca-certificates debian-archive-keyring -y
Einige dieser Pakete sind möglicherweise bereits auf Ihrem System installiert.
Schritt 1 – Firewall konfigurieren
Der erste Schritt besteht darin, die Firewall zu konfigurieren. Debian kommt mit ufw (Uncomplicated Firewall).
Überprüfen Sie, ob die Firewall ausgeführt wird.
$ sudo ufw-Status
Sie sollten die folgende Ausgabe erhalten.
Status:inaktiv
SSH-Port zulassen, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.
$ sudo ufw OpenSSH zulassen
Lassen Sie auch HTTP- und HTTPS-Ports zu.
$ sudo ufw allow 80/tcp$ sudo ufw allow 443/tcp
Aktivieren Sie die Firewall
$ sudo ufw enableCommand kann bestehende SSH-Verbindungen unterbrechen. Vorgang fortsetzen (y|n)? yFirewall ist aktiv und wird beim Systemstart aktiviert
Überprüfen Sie den Status der Firewall erneut.
$ sudo ufw-Status
Sie sollten eine ähnliche Ausgabe sehen.
Status:activeTo Aktion From-- ------ ----OpenSSH ALLOW Anywhere80/tcp ALLOW Anywhere443/tcp ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ERLAUBEN überall (v6)
Schritt 2 - Installieren Sie Zulip
Zulip wird mit einem Installationsskript geliefert, das Folgendes tut:
- Erzeugt einen Benutzer
zulip
um den Zulip-Server auszuführen. - Erzeugt ein Home-Verzeichnis mit dem
zulip
Benutzer, der den gesamten öffentlichen Code im Verzeichnis/home/zulip/deployments
enthält . - Installiert alle Abhängigkeiten, die Zulip benötigt.
- Installiert die PostgreSQL-Datenbank, den Nginx-Webserver, RabbitMQ, Redis Cache und Memcached.
- Initialisiert die Datenbank von Zulip.
Erstellen Sie mithilfe von mktemp
ein temporäres Verzeichnis Befehl, um das Installationsprogramm von Zulip herunterzuladen und zu ihm zu wechseln.
$ cd $(mktemp -d)
Laden Sie die neueste Version von Zulip herunter.
$ wget https://download.zulip.com/server/zulip-server-latest.tar.gz
Extrahieren Sie alle Dateien.
$ tar -xf zulip-server-latest.tar.gz
Führen Sie das Installationsskript aus.
$ sudo ./zulip-server-*/scripts/setup/install --certbot \ --email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
Der --certbot
Flag veranlasst das Installationsprogramm, Certbot herunterzuladen und SSL-Zertifikate automatisch zu installieren. Ersetzen Sie YOUR_EMAIL
mit Ihrer E-Mail-ID und YOUR_HOSTNAME
mit dem Domainnamen für Zulip (zulip.example.com
).
Schritt 3 – Zugriff auf die Zulip-Schnittstelle
Sobald das Installationsskript abgeschlossen ist, erhalten Sie eine eindeutige URL. Kopieren Sie diese URL.
.......zulip-workers:zulip_deliver_scheduled_messages:started+ set +x+ su zulip -c '/home/zulip/deployments/current/manage.py generate_realm_creation_link'Besuchen Sie bitte den folgenden sicheren Link zur einmaligen Verwendung, um sich zu registrieren Ihre neue Zulip-Organisation:https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
Besuchen Sie https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
in Ihrem Browser, und der folgende Bildschirm wird angezeigt.
Geben Sie Ihre E-Mail-ID ein, um mit der Erstellung Ihrer Organisation zu beginnen. Auf dem nächsten Bildschirm werden Sie aufgefordert, ein Konto einzurichten.
Geben Sie den Namen Ihrer Organisation und Ihren Namen ein und wählen Sie ein Passwort für die Anmeldung und klicken Sie auf Anmelden Schaltfläche, um fortzufahren.
Sobald Sie fertig sind, öffnet sich das Zulip-Dashboard und Sie können es verwenden.
Schritt 4 – Konfigurieren der ausgehenden E-Mail
Der Zulip-Server muss regelmäßig E-Mails senden. Dafür sollten Sie den Postausgang dafür einrichten. In unserem Beispiel verwenden wir den SES-Dienst von Amazon. Alle E-Mails werden von der E-Mail-ID gesendet, die Sie zum Erstellen der Organisation in Schritt 3 verwendet haben.
Zulip speichert alle seine Einstellungen in /etc/zulip/settings.py
Datei. Zum Bearbeiten öffnen.
$ sudo nano /etc/zulip/settings.py
Entkommentieren Sie die folgenden Variablen, indem Sie # entfernen davor und tragen Sie die entsprechenden Werte ein.
## EMAIL_HOST und EMAIL_HOST_USER sind im Allgemeinen erforderlich. EMAIL_HOST ='email-smtp.us-west-2.amazonaws.com'EMAIL_HOST_USER ='yoursmpt_username'## Passwörter und Geheimnisse werden in dieser Datei nicht gespeichert. Das Passwort## für den Benutzer EMAIL_HOST_USER kommt in `/etc/zulip/zulip-secrets.conf`.## Setzen Sie in dieser Datei `email_password`. Beispiel:# email_password =abcd1234## EMAIL_USE_TLS und EMAIL_PORT sind für die meisten SMTP-Anbieter erforderlich. EMAIL_USE_TLS =TrueEMAIL_PORT =587
Füllen Sie die folgenden zusätzlichen Variablen aus. Der erste entfernt alle zufälligen Token für die No-Reply-E-Mail-Adresse und der zweite konfiguriert den No-Reply-E-Mail-Absender für Ihre E-Mails.
ADD_TOKENS_TO_NOREPLY_ADDRESS =Falsch# TOKENIZED_NOREPLY_EMAIL_ADDRESS ="noreply-{token}@example.com"## NOREPLY_EMAIL_ADDRESS ist der Absender für noreply-E-Mails, die keine## Bestätigungslinks enthalten (wobei das durch ## ADD_TOKENS_TO_NOREPLY_ADDRESS behobene Sicherheitsproblem dies nicht tut existieren), sowie für## Bestätigungs-E-Mails, wenn ADD_TOKENS_TO_NOREPLY_ADDRESS=False.NOREPLY_EMAIL_ADDRESS ='[email protected]'
Wenn Sie fertig sind, speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Zulip speichert das E-Mail-Passwort in einer anderen Datei. Öffnen Sie die Datei /etc/zulip/zulip-secrets.conf
zum Bearbeiten.
$ sudo nano /etc/zulip/zulip-secrets.conf
Fügen Sie die folgende Zeile am Ende der Datei ein.
email_password =yoursmtp_password
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.
Um Ihre ausgehende E-Mail-Konfiguration zu testen, können Sie mit dem folgenden Befehl eine Test-E-Mail senden.
$ sudo -u zulip /home/zulip/deployments/current/manage.py send_test_email [email protected]Wenn Sie auf Probleme stoßen, lesen Sie:https://zulip.readthedocs.io/en/latest/production/ email.html#troubleshootingDer häufigste Fehler besteht darin, dass „ADD_TOKENS_TO_NOREPLY_ADDRESS=False“ nicht gesetzt wird, wenn ein E-Mail-Anbieter verwendet wird, der diese Funktion nicht unterstützt. Zwei Test-E-Mails werden gesendet von:* [email protected] * [email protected] Zwei E-Mails erfolgreich gesendet an [ E-Mail-geschützt]
Starten Sie den Server neu.
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Beachten Sie, dass Sie den Zulip-Server nur als zulip
starten oder stoppen können Benutzer.
Schritt 5 - Zulip Server-Befehle
Verwenden Sie den folgenden Befehl, um den Zulip-Server zu stoppen.
$ sudo -u zulip /home/zulip/deployments/current/scripts/stop-server
Verwenden Sie den folgenden Befehl, um den Server erneut zu starten.
$ sudo -u zulip /home/zulip/deployments/current/scripts/start-server
Starten Sie den Server auf ähnliche Weise neu.
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Es gibt viele Verwaltungsaufgaben, die Sie mit manage.py
erledigen können Skript, das mit Zulip geliefert wird.
Sie können das Skript mit dem folgenden Befehl ausführen. Wir werden die help
verwenden Unterbefehl, um alle möglichen Operationen aufzulisten, die man ausführen kann.
$ sudo -u zulip /home/zulip/deployments/current/manage.py helpType 'manage.py help' für Hilfe zu einem bestimmten Unterbefehl. Verfügbare Unterbefehle:[analytics] check_analytics_state clear_analytics_tables clear_single_stat populate_analytics_db stream_stats update_analytics_counts[ auth] changepassword createsuperuser[contenttypes] remove_stale_contenttypes[django] check createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemigrations migrieren sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver[otp_static] addstatictoken[sessions] clearsessions[social_django] clearstatic findstatic runserver collect [two_factor] two_factor_disable two_factor_status[zerver] add_users_to_streams archive_messages audit_fts_indexes backup bulk_change_user_name e change_password change_realm_subdomain change_user_email change_user_role check_redis checkconfig compilemessages convert_gitter_data convert_mattermost_data convert_slack_data create_default_stream_groups create_large_indexes create_realm_internal_bots create_stream create_user deactivate_realm deactivate_user delete_old_unclaimed_attachments delete_realm DELETE_USER deliver_scheduled_emails deliver_scheduled_messages dump_messages edit_linkifiers email_mirror enqueue_digest_emails enqueue_file Export export_single_user export_usermessage_batch fill_memcached_caches fix_unreads generate_invite_links generate_multiuse_invite_link generate_realm_creation_link get_migration_status Import list_realms logout_all_users makemessages merge_streams print_email_delivery_backlog process_queue purge_queue query_ldap rate_limit reactivate_realm realm_dom ain register_server remove_users_from_stream rename_stream reset_authentication_attempt_count restore_messages runtornado scrub_realm send_custom_email send_password_reset_email send_realm_reactivation_email send_stats send_test_email send_to_email_mirror send_webhook_fixture_message set_message_flags show_admins soft_deactivate_users turnoff_todiges_up3 Schritt 6 – Aktualisieren von Zulip
Um Zulip zu aktualisieren, laden Sie die neueste Version vom Server herunter.
$ curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gzFühren Sie den folgenden Befehl aus, um das Upgrade durchzuführen.
$ sudo /home/zulip/deployments/current/scripts/upgrade-zulip ~/zulip-server-latest.tar.gzDas Skript führt die folgenden Funktionen aus.
- Führen Sie
apt upgrade
aus um das System zu aktualisieren.- Installieren Sie die neue Version von Zulips Abhängigkeiten.
- Fahrt den Zulip-Server herunter.
- Führt die
puppet apply
aus Befehl.- Führen Sie bei Bedarf Datenbankmigrationen durch.
- Startet den Zulip-Server neu.
Schritt 7 – Zulip sichern und wiederherstellen
Das Sichern und Wiederherstellen von Zulip ist einfach, dank der eingebauten Skripte, die sich um alles kümmern.
Führen Sie den folgenden Befehl aus, um eine vollständige Sicherung von Zulip zu erstellen.
$ sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gzDer obige Befehl erstellt eine
zulip-backup.tar.gz
Datei im~/backups
Verzeichnis. Diese enthält alles, was Sie zum Übertragen oder Wiederherstellen von Zulip benötigen.Um ein vorhandenes Backup wiederherzustellen, installieren Sie Zulip, indem Sie Schritt 2 ausführen.
Wenn Sie fertig sind, führen Sie den folgenden Befehl aus, um die Wiederherstellung abzuschließen.
$ sudo -u zulip /home/zulip/deployments/current/scripts/setup/restore-backup ~/backups/zulip-backup.tar.gzWenn Sie die Domäne ändern möchten, können Sie die Variable
EXTERNAL_HOST
ändern in der Datei/etc/zulip/settings.py
und starten Sie dann den Server mit dem folgenden Befehl neu.$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-serverSchlussfolgerung
Damit ist unser Tutorial zur Installation und Konfiguration des Zulip Chat-Servers auf einem Debian 11-basierten System abgeschlossen. Sie können der offiziellen Dokumentation von Zulip folgen, um sie im Detail zu erkunden. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.