Come installare Zulip Chat Server su Debian 11

23 feb 2022 7 min di lettura
Come installare Zulip Chat Server su Debian 11
Indice dei contenuti

Introduzione

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 plugin 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, rendendolo indipendente dalla piattaforma.

In questo tutorial imparerai come installare e configurare Zulip Chat su un server basato su Debian 11.

Se desideri installare Zulip Chat su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh nome_utente@IP_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

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.

Aggiornare il sistema:

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.

Configurare il firewall

Il primo passo è configurare il firewall. Debian viene fornito con ufw (Uncomplicated Firewall).

Controlla se il firewall è in esecuzione:

sudo ufw status

Dovresti ottenere il seguente output:

Status: inactive

Consenti porta SSH in modo che il firewall non interrompa la connessione corrente all'attivazione.

sudo ufw allow OpenSSH

Consenti anche le porte HTTP e HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Abilita il firewall:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Ricontrolla lo stato del firewall:

sudo ufw status

Dovresti vedere un output simile:

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)

Installare Zulip

Zulip viene fornito con uno script di installazione che esegue le seguenti operazioni:

  1. Crea un utente zulip per eseguire il server Zulip.
  2. Crea una home directory utilizzando l'utente zulip che ospita tutto il codice pubblico nella directory /home/zulip/deployments.
  3. Installa tutte le dipendenze di cui Zulip ha bisogno.
  4. Installa il database PostgreSQL, il server web Nginx, RabbitMQ, Redis Cache e Memcached.
  5. Inizializza il database di Zulip.

Crea una directory temporanea usando il  comando mktemp 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 flag --certbot fa sì che il programma di installazione scarichi Certbot e installi automaticamente i certificati SSL. Sostituisci YOUR_EMAIL con il tuo ID e-mail e YOUR_HOSTNAME con il nome di dominio per Zulip (zulip.example.com).

Accedere 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'
Please visit the following secure single-use link to register your

new Zulip organization:


    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. Ti verrà chiesto di creare un account nella schermata successiva.

Inserisci il nome della tua organizzazione e il tuo nome e scegli una password per accedere e fai clic sul pulsante Iscriviti per procedere.

Una volta terminato, si aprirà la dashboard di Zulip e potrai iniziare a utilizzarla.

Configurazione dell'e-mail 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 nel file /etc/zulip/settings.py. Aprilo per la modifica:

sudo nano /etc/zulip/settings.py

Decommentare le seguenti variabili rimuovendo # davanti ad esse e inserendo i valori corrispondenti:

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

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 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]'

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.

email_password = yoursmtp_password

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

Riavvia il server:

sudo -u zulip /home/zulip/deployments/current/scripts/restart-server

Si noti che è possibile avviare o interrompere il server Zulip solo come utente zulip.

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 comando seguente:

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 lo script fornito con Zulip manage.py.

È possibile eseguire lo script utilizzando il comando seguente. Utilizzeremo il sottocomando help per elencare tutte le possibili operazioni che è possibile eseguire:

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

Aggiornare Zulip

Per aggiornare Zulip, scarica l'ultima versione dal server:

curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz

Eseguire il comando seguente per eseguire l'aggiornamento:

sudo /home/zulip/deployments/current/scripts/upgrade-zulip ~/zulip-server-latest.tar.gz

Lo script eseguirà le seguenti funzioni_

  1. Esegui apt upgrade per aggiornare il sistema.
  2. Installa la nuova versione delle dipendenze di Zulip.
  3. Arresta il server Zulip.
  4. Esegue il comando puppet apply.
  5. Eseguire le migrazioni del database, se necessario.
  6. Riavvia il server Zulip.

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, eseguire il comando seguente:

sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gz

Il comando precedente creerà un file zulip-backup.tar.gz nella directory ~/backups. 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, eseguire il comando seguente per completare il ripristino:

sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gz

Se si desidera modificare il dominio, è possibile modificare la variabile EXTERNAL_HOST nel file /etc/zulip/settings.py e quindi riavviare il server utilizzando il comando seguente:

sudo -u zulip /home/zulip/deployments/current/scripts/restart-server

Conclusione

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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.