Cómo instalar el servidor de chat Zulip en Debian 11

Nueva página de organización de Zulip

Zulip es un servidor de chat de código abierto, similar a Microsoft Teams, Rocket Chat o Slack. Está escrito en Python y utiliza Django, PostgreSQL y JavaScript. Se integra con más de 90 complementos de terceros, incluidos Github, Jira, Stripe, Zendesk, Sentry, etc. Puede ampliar las integraciones conectándolos con Zapier e IFTTT. Viene con funciones como mensajería privada, chats grupales, conversaciones encadenadas, canales personalizados, videollamadas, carga de archivos con arrastrar y soltar, emojis personalizados, integración con Giphy, vista previa de imágenes y tweets y muchas más. Zulip viene con aplicaciones móviles y de escritorio para cada plataforma, lo que lo hace independiente de la plataforma.

En este tutorial, aprenderá cómo instalar y configurar Zulip Chat en un servidor basado en Debian 11.

requisitos previos

  • Un servidor que ejecuta Debian 11.
  • Al menos 2 GB de RAM si espera menos de 100 usuarios. Para más de 100 usuarios, obtenga un servidor de 4 GB de RAM y 2 CPU.
  • Un usuario no root con privilegios sudo.
  • Un nombre de dominio configurado para apuntar al servidor, zulip.example.com.
  • Todo está actualizado.
    $ sudo apt update && sudo apt upgrade
    
  • Pocos paquetes que tu sistema necesita.
    $ sudo apt install wget curl nano ufw software-properties-common apt-transport-https gnupg2 ca-certificates debian-archive-keyring -y
    

    Es posible que algunos de estos paquetes ya estén instalados en su sistema.

Paso 1: configurar el cortafuegos

El primer paso es configurar el cortafuegos. Debian viene con ufw (cortafuegos sin complicaciones).

Compruebe si el cortafuegos se está ejecutando.

$ sudo ufw status

Deberías obtener el siguiente resultado.

Status: inactive

Permita el puerto SSH para que el firewall no interrumpa la conexión actual al habilitarlo.

$ sudo ufw allow OpenSSH

Permita también los puertos HTTP y HTTPS.

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

Habilitar el cortafuegos

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

Vuelva a comprobar el estado del cortafuegos.

$ sudo ufw status

Deberías ver una salida similar.

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)

Paso 2 – Instalar Zulip

Zulip se envía con un script de instalación que hace lo siguiente:

  1. Crea un usuario zulip para ejecutar el servidor Zulip.
  2. Crea un directorio de inicio utilizando el usuario zulip que aloja todo el código público en el directorio /home/zulip/deployments.
  3. Instala todas las dependencias que Zulip necesita.
  4. Instala la base de datos PostgreSQL, el servidor web Nginx, RabbitMQ, Redis Cache y Memcached.
  5. Inicializa la base de datos de Zulip.

Cree un directorio temporal usando el comando mktemp para descargar el instalador de Zulip y cambiar a él.

$ cd $(mktemp -d)

Descarga la última versión de Zulip.

$ wget https://download.zulip.com/server/zulip-server-latest.tar.gz

Extraiga todos los archivos.

$ tar -xf zulip-server-latest.tar.gz

Ejecute el script del instalador.

$ sudo ./zulip-server-*/scripts/setup/install --certbot \
    --email=YOUR_EMAIL --hostname=YOUR_HOSTNAME

El indicador –certbot hace que el instalador descargue Certbot e instale los certificados SSL automáticamente. Reemplace YOUR_EMAIL con su ID de correo electrónico y YOUR_HOSTNAME con el nombre de dominio de Zulip (zulip.example.com).

Paso 3: acceder a la interfaz de Zulip

Una vez que finalice el script de instalación, se le proporcionará una URL única. Copie esta 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

Visite https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46 en su navegador y aparecerá la siguiente pantalla.

Nueva página de organización de Zulip

Ingrese su ID de correo electrónico para comenzar a crear su organización. Se le pedirá que configure una cuenta en la siguiente pantalla.

Creación de cuenta Zulip

Ingrese el nombre de su organización y su nombre y elija una contraseña para iniciar sesión y haga clic en el Inscribirse botón para proceder.

Una vez que haya terminado, se abrirá el panel de control de Zulip y podrá comenzar a usarlo.

Panel Zulip

Paso 4: configuración del correo electrónico saliente

El servidor Zulip necesita enviar correos electrónicos regularmente. Para esto, debe configurar el correo saliente para ello. Para nuestro ejemplo, utilizaremos el servicio SES de Amazon. Todos los correos se envían desde la identificación de correo electrónico que utilizó para crear la organización en el paso 3.

Zulip almacena todas sus configuraciones en el archivo /etc/zulip/settings.py. Ábrelo para editarlo.

$ sudo nano /etc/zulip/settings.py

Descomente las siguientes variables eliminando # delante de ellos e introduciendo los valores correspondientes.

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

Complete las siguientes variables adicionales. El primero elimina cualquier token aleatorio a la dirección de correo electrónico sin respuesta, y el segundo configura el remitente de correo electrónico sin respuesta para sus correos.

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 vez terminado, guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

Zulip guarda la contraseña del correo electrónico en un archivo diferente. Abra el archivo /etc/zulip/zulip-secrets.conf para editarlo.

$ sudo nano /etc/zulip/zulip-secrets.conf

Pegue la siguiente línea al final del archivo.

email_password = yoursmtp_password

Guarde el archivo presionando Control + X y entrando Y Cuando se le solicite.

Para probar su configuración de correo electrónico saliente, puede enviar un correo de prueba usando el siguiente comando.

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

Reinicie el servidor.

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

Tenga en cuenta que puede iniciar o detener el servidor Zulip solo como usuario de Zulip.

Paso 5 – Comandos del servidor Zulip

Para detener el servidor Zulip, use el siguiente comando.

$ sudo -u zulip /home/zulip/deployments/current/scripts/stop-server

Para iniciar el servidor nuevamente, use el siguiente comando.

$ sudo -u zulip /home/zulip/deployments/current/scripts/start-server

Reinicie el servidor de manera similar.

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

Hay muchas tareas de administración que puede realizar con el script manage.py que se incluye con Zulip.

Puede ejecutar el script con el siguiente comando. Usaremos el subcomando de ayuda para enumerar todas las operaciones posibles que se pueden realizar.

$ 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

Paso 6: actualización de Zulip

Para actualizar Zulip, descargue la última versión del servidor.

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

Ejecute el siguiente comando para realizar la actualización.

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

El script realizará las siguientes funciones.

  1. Ejecute apt upgrade para actualizar el sistema.
  2. Instala la nueva versión de las dependencias de Zulip.
  3. Cierra el servidor Zulip.
  4. Ejecuta el comando de aplicación de Puppet.
  5. Realice migraciones de bases de datos si es necesario.
  6. Reinicia el servidor Zulip.

Paso 7 – Copia de seguridad y restauración de Zulip

Respaldar y restaurar Zulip es fácil, gracias a los scripts incorporados que se encargan de todo.

Para realizar una copia de seguridad completa de Zulip, ejecute el siguiente comando.

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

El comando anterior creará un archivo zulip-backup.tar.gz en el directorio ~/backups. Este contiene todo lo que necesitará para transferir o restaurar Zulip.

Para restaurar una copia de seguridad existente, instale Zulip siguiendo el paso 2.

Una vez que haya terminado, ejecute el siguiente comando para finalizar la restauración.

$ sudo -u zulip /home/zulip/deployments/current/scripts/setup/restore-backup ~/backups/zulip-backup.tar.gz

Si desea cambiar el dominio, puede cambiar la variable EXTERNAL_HOST en el archivo /etc/zulip/settings.py y luego reiniciar el servidor usando el siguiente comando.

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

Conclusión

Esto concluye nuestro tutorial sobre la instalación y configuración del servidor Zulip Chat en un sistema basado en Debian 11. Puedes seguir Documentación oficial de Zulip para explorar en detalle. Si tiene alguna pregunta, publíquela en los comentarios a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *