Zulip je open-source chatovací server, podobný Microsoft Teams, Rocket Chat nebo Slack. Je napsán v Pythonu a používá Django, PostgreSQL a JavaScript. Integruje se s více než 90 pluginy třetích stran, včetně Github, Jira, Stripe, Zendesk, Sentry atd. Integrace můžete rozšířit jejich propojením se Zapier a IFTTT. Dodává se s funkcemi, jako jsou soukromé zprávy, skupinové chaty, konverzace ve vláknech, vlastní kanály, videohovory, nahrávání souborů přetažením, vlastní emotikony, integrace Giphy, náhled obrázků a tweetů a mnoho dalších. Zulip přichází s desktopovými a mobilními aplikacemi pro každou platformu, díky čemuž je agnostický.
V tomto tutoriálu se naučíte, jak nainstalovat a nakonfigurovat Zulip Chat na serveru založeném na Debianu 11.
Předpoklady
-
Server se systémem Debian 11.
-
Alespoň 2 GB RAM, pokud očekáváte méně než 100 uživatelů. Pro 100+ uživatelů získáte 4 GB RAM a 2 CPU server.
-
Uživatel bez oprávnění root s právy sudo.
-
Název domény nakonfigurovaný tak, aby odkazoval na server,
zulip.example.com
. -
Vše je aktualizováno.
$ sudo apt update && sudo apt upgrade
-
Několik balíčků, které váš systém potřebuje.
$ sudo apt install wget curl nano ufw software-properties-common apt-transport-https gnupg2 ca-certificates debian-archive-keyring -y
Některé z těchto balíčků již mohou být ve vašem systému nainstalovány.
Krok 1 – Konfigurace brány firewall
Prvním krokem je konfigurace firewallu. Debian je dodáván s ufw (Uncomplicated Firewall).
Zkontrolujte, zda je spuštěna brána firewall.
$ sudo ufw status
Měli byste získat následující výstup.
Status: inactive
Povolte port SSH, aby firewall při jeho povolení nepřerušil aktuální připojení.
$ sudo ufw allow OpenSSH
Povolit také porty HTTP a HTTPS.
$ sudo ufw allow 80/tcp $ sudo ufw allow 443/tcp
Povolte bránu firewall
$ sudo ufw enable Command may disrupt existing ssh connections. Proceed with operation (y|n)? y Firewall is active and enabled on system startup
Znovu zkontrolujte stav brány firewall.
$ sudo ufw status
Měli byste vidět podobný výstup.
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6)
Krok 2 – Instalace Zulip
Zulip se dodává s instalačním skriptem, který provádí následující:
- Vytvoří uživatele
zulip
ke spuštění serveru Zulip. - Vytvoří domovský adresář pomocí
zulip
uživatel, který uchovává veškerý veřejný kód v adresáři/home/zulip/deployments
. - Nainstaluje všechny závislosti, které Zulip potřebuje.
- Nainstaluje databázi PostgreSQL, webový server Nginx, RabbitMQ, Redis Cache a Memcached.
- Inicializuje Zulipovu databázi.
Vytvořte dočasný adresář pomocí mktemp
příkaz ke stažení instalačního programu Zulip a přepnutí na něj.
$ cd $(mktemp -d)
Stáhněte si nejnovější verzi Zulip.
$ wget https://download.zulip.com/server/zulip-server-latest.tar.gz
Rozbalte všechny soubory.
$ tar -xf zulip-server-latest.tar.gz
Spusťte instalační skript.
$ sudo ./zulip-server-*/scripts/setup/install --certbot \ --email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
--certbot
příznak způsobí, že instalační program automaticky stáhne Certbot a nainstaluje certifikáty SSL. Nahraďte YOUR_EMAIL
s vaším e-mailovým ID a YOUR_HOSTNAME
s názvem domény pro Zulip (zulip.example.com
).
Krok 3 – Přístup k rozhraní Zulip
Po dokončení instalačního skriptu vám bude přidělena jedinečná adresa URL. Zkopírujte tuto adresu URL.
....... zulip-workers:zulip_deliver_scheduled_messages: started + set +x + su zulip -c '/home/zulip/deployments/current/manage.py generate_realm_creation_link' Please visit the following secure single-use link to register your new Zulip organization: https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
Navštivte https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
ve vašem prohlížeči a zobrazí se následující obrazovka.
Zadejte svou e-mailovou adresu a začněte vytvářet svou organizaci. Na další obrazovce budete požádáni o nastavení účtu.
Zadejte název své organizace a své jméno, zvolte heslo pro přihlášení a klikněte na tlačítko Zaregistrovat se pokračujte.
Po dokončení se otevře ovládací panel Zulip a můžete jej začít používat.
Krok 4 – Konfigurace odchozího e-mailu
Server Zulip potřebuje pravidelně odesílat e-maily. Za tímto účelem byste pro něj měli nastavit odchozí poštu. V našem příkladu budeme používat službu SES společnosti Amazon. Všechny e-maily jsou odesílány z e-mailového ID, které jste použili k vytvoření organizace v kroku 3.
Zulip ukládá všechna svá nastavení v /etc/zulip/settings.py
soubor. Otevřete jej pro úpravy.
$ sudo nano /etc/zulip/settings.py
Odkomentujte následující proměnné odstraněním # před nimi a zadáním odpovídajících hodnot.
## EMAIL_HOST and EMAIL_HOST_USER are generally required. EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com' EMAIL_HOST_USER = 'yoursmpt_username' ## Passwords and secrets are not stored in this file. The password ## for user EMAIL_HOST_USER goes in `/etc/zulip/zulip-secrets.conf`. ## In that file, set `email_password`. For example: # email_password = abcd1234 ## EMAIL_USE_TLS and EMAIL_PORT are required for most SMTP providers. EMAIL_USE_TLS = True EMAIL_PORT = 587
Vyplňte následující dodatečné proměnné. První odebere jakýkoli náhodný token z e-mailové adresy bez odpovědi a druhý nakonfiguruje odesílatele e-mailů bez odpovědi pro vaše e-maily.
ADD_TOKENS_TO_NOREPLY_ADDRESS = False # TOKENIZED_NOREPLY_EMAIL_ADDRESS = "noreply-{token}@example.com" ## NOREPLY_EMAIL_ADDRESS is the sender for noreply emails that don't ## contain confirmation links (where the security problem fixed by ## ADD_TOKENS_TO_NOREPLY_ADDRESS does not exist), as well as for ## confirmation emails when ADD_TOKENS_TO_NOREPLY_ADDRESS=False. NOREPLY_EMAIL_ADDRESS = '[email protected]'
Po dokončení uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Zulip uloží heslo k e-mailu do jiného souboru. Otevřete soubor /etc/zulip/zulip-secrets.conf
pro úpravy.
$ sudo nano /etc/zulip/zulip-secrets.conf
Vložte následující řádek na konec souboru.
email_password = yoursmtp_password
Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Chcete-li otestovat konfiguraci odchozího e-mailu, můžete odeslat zkušební e-mail pomocí následujícího příkazu.
$ sudo -u zulip /home/zulip/deployments/current/manage.py send_test_email [email protected] If you run into any trouble, read: https://zulip.readthedocs.io/en/latest/production/email.html#troubleshooting The most common error is not setting `ADD_TOKENS_TO_NOREPLY_ADDRESS=False` when using an email provider that doesn't support that feature. Sending 2 test emails from: * [email protected] * [email protected] Successfully sent 2 emails to [email protected]
Restartujte server.
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Všimněte si, že server Zulip můžete spustit nebo zastavit pouze jako zulip
uživatel.
Krok 5 – Příkazy serveru Zulip
Chcete-li zastavit server Zulip, použijte následující příkaz.
$ sudo -u zulip /home/zulip/deployments/current/scripts/stop-server
Chcete-li server znovu spustit, použijte následující příkaz.
$ sudo -u zulip /home/zulip/deployments/current/scripts/start-server
Restartujte server podobným způsobem.
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Existuje mnoho úkolů správy, kterých můžete dosáhnout pomocí manage.py
skript dodaný se Zulipem.
Skript můžete spustit pomocí následujícího příkazu. Použijeme help
dílčí příkaz vypíše všechny možné operace, které lze provést.
$ sudo -u zulip /home/zulip/deployments/current/manage.py help Type 'manage.py help <subcommand>' for help on a specific subcommand. Available subcommands: [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 migrate sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver [otp_static] addstatictoken [sessions] clearsessions [social_django] clearsocial [staticfiles] collectstatic findstatic runserver [two_factor] two_factor_disable two_factor_status [zerver] add_users_to_streams archive_messages audit_fts_indexes backup bulk_change_user_name 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_domain 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 sync_ldap_user_data transfer_uploads_to_s3 turn_off_digests
Krok 6 – Upgrade Zulip
Chcete-li upgradovat Zulip, stáhněte si nejnovější verzi ze serveru.
$ curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
Spusťte následující příkaz pro provedení upgradu.
$ sudo /home/zulip/deployments/current/scripts/upgrade-zulip ~/zulip-server-latest.tar.gz
Skript bude provádět následující funkce.
- Spusťte
apt upgrade
upgradovat systém. - Nainstalujte novou verzi Zulipových závislostí.
- Vypne server Zulip.
- Spustí
puppet apply
příkaz. - V případě potřeby proveďte migraci databáze.
- Restartuje server Zulip.
Krok 7 – Zálohování a obnovení Zulip
Zálohování a obnovení Zulip je snadné díky vestavěným skriptům, které se o vše postarají.
Chcete-li provést úplnou zálohu Zulip, spusťte následující příkaz.
$ sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gz
Výše uvedený příkaz vytvoří zulip-backup.tar.gz
soubor v ~/backups
adresář. Toto obsahuje vše, co budete potřebovat k přenosu nebo obnovení Zulip.
Chcete-li obnovit existující zálohu, nainstalujte Zulip podle kroku 2.
Po dokončení spusťte následující příkaz a dokončete obnovu.
$ sudo -u zulip /home/zulip/deployments/current/scripts/setup/restore-backup ~/backups/zulip-backup.tar.gz
Pokud chcete změnit doménu, můžete změnit proměnnou EXTERNAL_HOST
v souboru /etc/zulip/settings.py
a poté restartujte server pomocí následujícího příkazu.
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Závěr
Tímto končí náš tutoriál o instalaci a konfiguraci serveru Zulip Chat na systému založeném na Debianu 11. Chcete-li podrobně prozkoumat, můžete sledovat oficiální dokumentaci Zulip. Pokud máte nějaké dotazy, napište je do komentářů níže.