Introducción
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 vinculándolas con Zapier e IFTTT. Viene con funciones como mensajería privada, chat grupal, 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, por lo que es independiente de la plataforma.
En este tutorial, aprenderá cómo instalar y configurar Zulip Chat en un servidor basado en Debian 11.
Si desea instalar Zulip Chat Server en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita saber la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña de usuario raíz.
Si no está usando el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario :
ssh nome_utente@IP_DEL_SERVER
A continuación, se le pedirá que introduzca su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22 , si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p , luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
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, obtienes 4 GB de RAM y 2 servidores de CPU.
- Un usuario no root con privilegios sudo.
- Un nombre de dominio configurado para apuntar al servidor
zulip.example.com
,.
Actualizar el sistema:
sudo apt update && sudo apt upgrade
Pocos paquetes necesita su sistema:
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.
Configurar el cortafuegos
El primer paso es configurar el cortafuegos. Debian se envía 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 deje caer la conexión actual al momento de la activación.
sudo ufw allow OpenSSH
Permita también los puertos HTTP y HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Habilite 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 un resultado 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)
Instalar Zulip
Zulip viene con un script de instalación que hace lo siguiente:
- Cree un usuario
zulip
para ejecutar el servidor Zulip. - Cree un directorio de inicio utilizando el usuario
zulip
que aloja todo el código público en el directorio/home/zulip/deployments
. - Instala todas las dependencias que Zulip necesita.
- Instale la base de datos PostgreSQL, el servidor web Nginx, RabbitMQ, Redis Cache y Memcached.
- Inicialice la base de datos Zulip.
Cree un directorio temporal usando el comando mktemp
para descargar el instalador de Zulip y navegue hasta él:
cd $(mktemp -d)
Descarga la última versión de Zulip:
wget https://download.zulip.com/server/zulip-server-latest.tar.gz
Extraer todos los archivos:
tar -xf zulip-server-latest.tar.gz
Ejecute el script de instalación:
sudo ./zulip-server-*/scripts/setup/install --certbot \
--email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
La bandera --certbot
hace que el instalador descargue Certbot e instale automáticamente los certificados SSL. Reemplácelo YOUR_EMAIL
con su ID de correo electrónico y YOUR_HOSTNAME
nombre de dominio para Zulip ( zulip.example.com
).
Entrar en 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
Visita https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
en tu navegador y aparecerá la siguiente pantalla:
Ingrese su ID de correo electrónico para comenzar a construir su organización. Se le pedirá que cree una cuenta en la siguiente pantalla.
Ingrese el nombre de su organización y su nombre y elija una contraseña para iniciar sesión y haga clic en el botón Unirse para continuar.
Una vez terminado, se abrirá el panel de control de Zulip y podrás comenzar a usarlo.
Configurar el correo electrónico saliente
El servidor Zulip debe enviar correos electrónicos regularmente. Para eso, debe configurar su correo saliente para ello. Para nuestro ejemplo, utilizaremos el servicio SES de Amazon. Todos los correos electrónicos se envían desde el ID de correo electrónico utilizado 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 ellas e insertando 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 de la dirección de correo electrónico sin respuesta y el segundo configura el remitente del correo electrónico sin respuesta para sus correos electrónicos.
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 hecho esto, guarde el archivo presionando Ctrl + X e ingresando 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 Ctrl + X e ingresando Y cuando se le solicite.
Para probar su configuración de correo electrónico saliente, puede enviar un correo electrónico 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 zulip
.
Comandos del servidor Zulip
Para detener el servidor Zulip, use el siguiente comando:
sudo -u zulip /home/zulip/deployments/current/scripts/stop-server
Para reiniciar el servidor, 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 utilizando el script proporcionado con Zulip manage.py
.
Puede ejecutar el script con el siguiente comando. Usaremos el subcomando help
para listar todas las posibles operaciones 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
Actualizar 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 actualizar:
sudo /home/zulip/deployments/current/scripts/upgrade-zulip ~/zulip-server-latest.tar.gz
El script realizará las siguientes funciones_
- Ejecutar
apt upgrade
para actualizar el sistema. - Instala la nueva versión de las dependencias de Zulip.
- Detenga el servidor Zulip.
- Ejecuta el comando
puppet apply
. - Realice migraciones de base de datos si es necesario.
- Reinicie el servidor Zulip.
Copia de seguridad y restauración Zulip
Hacer una copia de seguridad y restaurar Zulip es fácil, gracias a los scripts integrados 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.
Cuando termine, ejecute el siguiente comando para completar la restauración:
sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/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. Puede seguir la documentación oficial de Zulip para explorar en detalle. Si tiene alguna pregunta, publíquela en los comentarios a continuación.