Zulip è un server di chat open source, simile a Microsoft Teams, Rocket Chat o Slack. È scritto in Python e utilizza Django, PostgreSQL e JavaScript. Si integra con oltre 90 plug-in di terze parti, inclusi Github, Jira, Stripe, Zendesk, Sentry, ecc. Puoi espandere le integrazioni collegandole con Zapier e IFTTT. Viene fornito con funzionalità come messaggistica privata, chat di gruppo, conversazioni in thread, canali personalizzati, videochiamate, caricamenti di file drag-and-drop, emoji personalizzati, integrazione Giphy, anteprima di immagini e tweet e molti altri. Zulip viene fornito con app desktop e mobili per ogni piattaforma, il che lo rende indipendente dalla piattaforma.
In questo tutorial imparerai come installare e configurare Zulip Chat su un server basato su Debian 11.
Prerequisiti
-
Un server che esegue Debian 11.
-
Almeno 2 GB di RAM se ti aspetti meno di 100 utenti. Per oltre 100 utenti, ottieni 4 GB di RAM e 2 server CPU.
-
Un utente non root con privilegi sudo.
-
Un nome di dominio configurato per puntare al server,
zulip.example.com
. -
Tutto è aggiornato.
$ sudo apt update &&sudo apt upgrade
-
Pochi pacchetti di cui il tuo sistema ha bisogno.
$ sudo apt install wget curl nano ufw software-properties-common apt-transport-https gnupg2 ca-certificates debian-archive-keyring -y
Alcuni di questi pacchetti potrebbero essere già installati sul tuo sistema.
Passaggio 1:configurazione del firewall
Il primo passo è configurare il firewall. Debian viene fornito con ufw (Uncomplicated Firewall).
Controlla se il firewall è in esecuzione.
Stato $ sudo ufw
Dovresti ottenere il seguente output.
Stato:inattivo
Consenti porta SSH in modo che il firewall non interrompa la connessione corrente quando lo si abilita.
$ sudo ufw consente OpenSSH
Consenti anche le porte HTTP e HTTPS.
$ sudo ufw consenti 80/tcp$ sudo ufw consenti 443/tcp
Abilita il Firewall
$ sudo ufw enableCommand potrebbe interrompere le connessioni ssh esistenti. Procedere con l'operazione (y|n)? yFirewall è attivo e abilitato all'avvio del sistema
Ricontrolla lo stato del firewall.
Stato $ sudo ufw
Dovresti vedere un output simile.
Stato:activeTo Azione Da-- ------ ----OpenSSH ALLOW Anywhere80/tcp ALLOW Anywhere443/tcp ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) CONSENTI ovunque (v6)
Passaggio 2:installazione di Zulip
Zulip viene fornito con uno script di installazione che esegue le seguenti operazioni:
- Crea un utente
zulip
per eseguire il server Zulip. - Crea una home directory usando
zulip
utente che ospita tutto il codice pubblico nella directory/home/zulip/deployments
. - Installa tutte le dipendenze di cui Zulip ha bisogno.
- Installa il database PostgreSQL, il server web Nginx, RabbitMQ, Redis Cache e Memcached.
- Inizializza il database di Zulip.
Crea una directory temporanea utilizzando mktemp
comando per scaricare il programma di installazione di Zulip e passare ad esso.
$ cd $(mktemp -d)
Scarica l'ultima versione di Zulip.
$ wget https://download.zulip.com/server/zulip-server-latest.tar.gz
Estrai tutti i file.
$ tar -xf zulip-server-latest.tar.gz
Esegui lo script di installazione.
$ sudo ./zulip-server-*/scripts/setup/install --certbot \ --email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
Il --certbot
flag fa in modo che il programma di installazione scarichi Certbot e installi automaticamente i certificati SSL. Sostituisci YOUR_EMAIL
con il tuo ID email e YOUR_HOSTNAME
con il nome di dominio per Zulip (zulip.example.com
).
Fase 3:accesso all'interfaccia Zulip
Una volta terminato lo script di installazione, ti verrà fornito un URL univoco. Copia questo URL.
.......zulip-workers:zulip_deliver_scheduled_messages:started+ set +x+ su zulip -c '/home/zulip/deployments/current/manage.py generate_realm_creation_link'Visita il seguente link sicuro monouso per registrarti la tua nuova organizzazione Zulip:https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
Visita https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
nel tuo browser e apparirà la seguente schermata.
Inserisci il tuo ID e-mail per iniziare a creare la tua organizzazione. Nella schermata successiva ti verrà chiesto di creare un account.
Inserisci il nome della tua organizzazione e il tuo nome e scegli una password per l'accesso e fai clic su Registrati pulsante per procedere.
Al termine, si aprirà la dashboard di Zulip e potrai iniziare a utilizzarla.
Fase 4 - Configurazione della posta in uscita
Il server Zulip deve inviare regolarmente e-mail. Per questo, dovresti impostare la posta in uscita per questo. Per il nostro esempio, utilizzeremo il servizio SES di Amazon. Tutte le e-mail vengono inviate dall'ID e-mail utilizzato per creare l'organizzazione nel passaggio 3.
Zulip memorizza tutte le sue impostazioni in /etc/zulip/settings.py
file. Aprilo per la modifica.
$ sudo nano /etc/zulip/settings.py
Decommenta le seguenti variabili rimuovendo # davanti a loro e inserendo i valori corrispondenti.
## EMAIL_HOST e EMAIL_HOST_USER sono generalmente obbligatori.EMAIL_HOST ='email-smtp.us-west-2.amazonaws.com'EMAIL_HOST_USER ='yoursmpt_username'## Password e segreti non sono memorizzati in questo file. La password## per l'utente EMAIL_HOST_USER va in `/etc/zulip/zulip-secrets.conf`.## In quel file, imposta `email_password`. Ad esempio:# email_password =abcd1234## EMAIL_USE_TLS e EMAIL_PORT sono richiesti per la maggior parte dei provider SMTP.EMAIL_USE_TLS =TrueEMAIL_PORT =587
Compila le seguenti variabili aggiuntive. Il primo rimuove qualsiasi token casuale all'indirizzo e-mail senza risposta e il secondo configura il mittente dell'e-mail senza risposta per le tue e-mail.
ADD_TOKENS_TO_NOREPLY_ADDRESS =False# TOKENIZED_NOREPLY_EMAIL_ADDRESS ="noreply-{token}@example.com"## NOREPLY_EMAIL_ADDRESS è il mittente delle email noreply che non## contengono link di conferma (dove il problema di sicurezza risolto da## ADD_TOKENS_TO_NOREPLY_ADDRESS non lo è esiste), nonché per## email di conferma quando ADD_TOKENS_TO_NOREPLY_ADDRESS=False.NOREPLY_EMAIL_ADDRESS ='[email protected]'
Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Zulip salva la password dell'e-mail in un file diverso. Apri il file /etc/zulip/zulip-secrets.conf
per la modifica.
$ sudo nano /etc/zulip/zulip-secrets.conf
Incolla la riga seguente alla fine del file.
password_email =tua password_smtp
Salva il file premendo Ctrl + X e inserendo Y quando richiesto.
Per testare la configurazione dell'e-mail in uscita, puoi inviare un'e-mail di prova utilizzando il comando seguente.
$ sudo -u zulip /home/zulip/deployments/current/manage.py send_test_email [email protected]Se riscontri problemi, leggi:https://zulip.readthedocs.io/en/latest/production/ email.html#troubleshootingL'errore più comune non è l'impostazione di `ADD_TOKENS_TO_NOREPLY_ADDRESS=False` quando si utilizza un provider di posta elettronica che non supporta tale funzione. Invio di 2 e-mail di prova da:* [email protetta] * [email protetta]Inviato con successo 2 e-mail a [ e-mail protetta]
Riavvia il server.
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Nota che puoi avviare o arrestare il server Zulip solo come zulip
utente.
Passaggio 5 - Comandi del server Zulip
Per arrestare il server Zulip, utilizzare il comando seguente.
$ sudo -u zulip /home/zulip/deployments/current/scripts/stop-server
Per riavviare il server, utilizzare il seguente comando.
$ sudo -u zulip /home/zulip/deployments/current/scripts/start-server
Riavvia il server in modo simile.
$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Ci sono molte attività di gestione che puoi realizzare usando manage.py
script fornito con Zulip.
È possibile eseguire lo script utilizzando il comando seguente. Useremo la help
sottocomando per elencare tutte le possibili operazioni che si possono eseguire.
$ sudo -u zulip /home/zulip/deployments/current/manage.py helpType 'manage.py help' per assistenza su un sottocomando specifico. Sottocomandi disponibili:[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 runer [two_factor] two_factor_disable two_factor_status[zerver] add_users_to_streams archive_messages audit_fts_indexes backup bulk_change_user_nam 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 esportazione 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 list_realms importazione 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 sync_ld_up_users_transfert> turn_deactivate_users sync_ld_up_users_trasferimento Fase 6 - Aggiornamento di Zulip
Per aggiornare Zulip, scarica l'ultima versione dal server.
$ curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gzEsegui il comando seguente per eseguire l'aggiornamento.
$ sudo /home/zulip/deployments/current/scripts/upgrade-zulip ~/zulip-server-latest.tar.gzLo script eseguirà le seguenti funzioni.
- Esegui
apt upgrade
per aggiornare il sistema.- Installa la nuova versione delle dipendenze di Zulip.
- Chiude il server Zulip.
- Esegue
puppet apply
comando.- Esegui migrazioni del database se necessario.
- Riavvia il server Zulip.
Passaggio 7:backup e ripristino di Zulip
Eseguire il backup e il ripristino di Zulip è facile, grazie agli script integrati che si occupano di tutto.
Per eseguire un backup completo di Zulip, esegui il comando seguente.
$ sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gzIl comando precedente creerà un
zulip-backup.tar.gz
file nel~/backups
directory. Questo contiene tutto ciò di cui avrai bisogno per trasferire o ripristinare Zulip.Per ripristinare un backup esistente, installa Zulip seguendo il passaggio 2.
Al termine, esegui il comando seguente per completare il ripristino.
$ sudo -u zulip /home/zulip/deployments/current/scripts/setup/restore-backup ~/backups/zulip-backup.tar.gzSe vuoi cambiare il dominio, puoi cambiare la variabile
EXTERNAL_HOST
nel file/etc/zulip/settings.py
e quindi riavviare il server utilizzando il seguente comando.$ sudo -u zulip /home/zulip/deployments/current/scripts/restart-serverConclusione
Questo conclude il nostro tutorial sull'installazione e la configurazione del server Zulip Chat su un sistema basato su Debian 11. Puoi seguire la documentazione ufficiale di Zulip per esplorare in dettaglio. Se hai domande, pubblicale nei commenti qui sotto.