Введение
Zulip — это чат-сервер с открытым исходным кодом, похожий на Microsoft Teams, Rocket Chat или Slack. Он написан на Python и использует Django, PostgreSQL и JavaScript. Он интегрируется с более чем 90 сторонними плагинами, включая Github, Jira, Stripe, Zendesk, Sentry и т. д. Вы можете расширить интеграции, связав их с Zapier и IFTTT. Он поставляется с такими функциями, как личные сообщения, групповой чат, многопотоковые беседы, настраиваемые каналы, видеозвонки, загрузка файлов с помощью перетаскивания, настраиваемые смайлики, интеграция Giphy, предварительный просмотр изображений и твитов и многое другое. Zulip поставляется с настольными и мобильными приложениями для каждой платформы, что делает его независимым от платформы.
В этом руководстве вы узнаете, как установить и настроить Zulip Chat на сервере под управлением Debian 11.
Если вы хотите установить Zulip Chat на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Предпосылки
- Сервер под управлением Debian 11.
- Не менее 2 ГБ оперативной памяти, если вы ожидаете менее 100 пользователей. Для более чем 100 пользователей вы получаете 4 ГБ ОЗУ и 2 сервера ЦП.
- Пользователь без полномочий root с привилегиями sudo.
- Доменное имя, настроенное так, чтобы оно указывало на сервер,
zulip.example.com
.
Обновите систему:
sudo apt update && sudo apt upgrade
Несколько пакетов, которые нужны вашей системе:
sudo apt install wget curl nano ufw software-properties-common apt-transport-https gnupg2 ca-certificates debian-archive-keyring -y
Некоторые из этих пакетов уже могут быть установлены в вашей системе.
Настроить брандмауэр
Первым шагом является настройка брандмауэра. Debian поставляется с ufw (простой брандмауэр).
Проверьте, работает ли брандмауэр:
sudo ufw status
Вы должны получить следующий результат:
Status: inactive
Разрешите SSH-порт, чтобы брандмауэр не прерывал текущее соединение при активации.
sudo ufw allow OpenSSH
Также разрешите порты HTTP и HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Включите брандмауэр:
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Дважды проверьте состояние брандмауэра:
sudo ufw status
Вы должны увидеть аналогичный вывод:
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)
Установить Зулип
Zulip поставляется со сценарием установки, который выполняет следующие действия:
- Создать пользователя
zulip
для запуска сервера Zulip. - Создайте домашний каталог, используя пользователя
zulip
, который размещает весь общедоступный код в/home/zulip/deployments
. - Установите все зависимости, которые нужны Zulip.
- Установите базу данных PostgreSQL, веб-сервер Nginx, RabbitMQ, Redis Cache и Memcached.
- Инициализируйте базу данных Zulip.
Создайте временный каталог с помощью команды mktemp
, чтобы загрузить установщик Zulip, и перейдите к нему:
cd $(mktemp -d)
Загрузите последнюю версию Zulip:
wget https://download.zulip.com/server/zulip-server-latest.tar.gz
Извлеките все файлы:
tar -xf zulip-server-latest.tar.gz
Запустите скрипт установки:
sudo./zulip-server-*/scripts/setup/install --certbot \
--email=YOUR_EMAIL --hostname=YOUR_HOSTNAME
Флаг --certbot
заставляет программу установки загрузить Certbot и автоматически установить SSL-сертификаты. Замените YOUR_EMAIL
с вашим идентификатором электронной почты и YOUR_HOSTNAME
с доменным именем Zulip ( zulip.example.com
).
Войдите в интерфейс Zulip
После завершения сценария установки вам будет предоставлен уникальный URL-адрес. Скопируйте этот 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
Посетите https://zulip.example.com/new/il5dsewnhugjarbnlxf5nc46
в браузере и появится следующий экран:
Введите свой адрес электронной почты, чтобы начать создание своей организации. На следующем экране вам будет предложено создать учетную запись.
Введите название вашей организации и свое имя, выберите пароль для входа и нажмите кнопку « Присоединиться », чтобы продолжить.
После этого откроется панель инструментов Zulip, и вы сможете начать ее использовать.
Настройка исходящей электронной почты
Сервер Zulip должен регулярно отправлять электронные письма. Для этого вам необходимо настроить для него вашу исходящую почту. В нашем примере мы будем использовать сервис Amazon SES. Все электронные письма отправляются с идентификатора электронной почты, который использовался для создания организации на шаге 3.
Zulip хранит все свои настройки в файле /etc/zulip/settings.py
. Откройте его для редактирования:
sudo nano /etc/zulip/settings.py
Раскомментируйте следующие переменные, удалив перед ними #
и введя соответствующие значения:
## 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
Заполните следующие дополнительные переменные. Первый удаляет любой случайный токен с неотвеченного адреса электронной почты, а второй настраивает отправителя неотвеченного электронного письма для ваших электронных писем.
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]'
После этого сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Zulip сохраняет пароль электронной почты в другом файле. Откройте файл /etc/zulip/zulip-secrets.conf
для редактирования.
sudo nano /etc/zulip/zulip-secrets.conf
Вставьте следующую строку в конец файла.
email_password = yoursmtp_password
Сохраните файл, нажав Ctrl + X и введя Y при появлении запроса.
Чтобы проверить настройку исходящей электронной почты, вы можете отправить тестовое письмо с помощью приведенной ниже команды.
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]
Перезапустите сервер:
sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Обратите внимание, что вы можете запускать или останавливать сервер Zulip только как пользователь zulip
.
Команды сервера Zulip
Чтобы остановить сервер Zulip, используйте следующую команду:
sudo -u zulip /home/zulip/deployments/current/scripts/stop-server
Чтобы перезапустить сервер, используйте следующую команду:
sudo -u zulip /home/zulip/deployments/current/scripts/start-server
Аналогично перезагрузите сервер:
sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Существует множество задач управления, которые можно выполнить с помощью сценария, поставляемого с Zulip manage.py
.
Вы можете запустить скрипт, используя следующую команду. Мы будем использовать подкоманду help
, чтобы перечислить все возможные операции, которые можно выполнить:
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
Обновить Зулип
Чтобы обновить Zulip, загрузите последнюю версию с сервера:
curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz
Выполните следующую команду для обновления:
sudo /home/zulip/deployments/current/scripts/upgrade-zulip ~/zulip-server-latest.tar.gz
Скрипт будет выполнять следующие функции_
- Запустить
apt upgrade
для обновления системы. - Установите новую версию зависимостей Zulip.
- Остановите сервер Zulip.
- Запускает команду
puppet apply
. - При необходимости выполните миграцию базы данных.
- Перезапустите сервер Zulip.
Zulip резервное копирование и восстановление
Резервное копирование и восстановление Zulip легко благодаря встроенным сценариям, которые позаботятся обо всем.
Чтобы выполнить полное резервное копирование Zulip, выполните следующую команду:
sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gz
Приведенная выше команда создаст файл zulip-backup.tar.gz
в каталоге ~/backups
backups. Он содержит все, что вам нужно для переноса или восстановления Zulip.
Чтобы восстановить существующую резервную копию, установите Zulip, выполнив шаг 2.
Когда закончите, выполните следующую команду, чтобы завершить восстановление:
sudo -u zulip /home/zulip/deployments/current/manage.py backup --output=~/backups/zulip-backup.tar.gz
Если вы хотите изменить домен, вы можете изменить переменную EXTERNAL_HOST
в файле /etc/zulip/settings.py
а затем перезапустите сервер с помощью следующей команды:
sudo -u zulip /home/zulip/deployments/current/scripts/restart-server
Вывод
На этом мы завершаем наше руководство по установке и настройке сервера чата Zulip в системе на базе Debian 11. Вы можете следовать официальной документации Zulip, чтобы изучить ее более подробно. Если у вас есть какие-либо вопросы, задайте их в комментариях ниже.