Пошаговая инструкция · Самостоятельная установка
Как установить Zulip на Ubuntu и настроить общение команды
Пошаговая инструкция для самостоятельной установки. Установим Zulip на отдельный сервер, подключим HTTPS и почту, создадим организацию и проверим переписку по темам. До приглашения команды настроим копии и восстановление.
Что подготовить и как читать инструкцию #
Используем официальный инсталлятор Zulip Server 12.3. Он сам устанавливает и настраивает Nginx, PostgreSQL, кеш, очередь и обработчики приложения. Поэтому нужен чистый отдельный сервер или виртуальная машина. Не запускайте его на хосте с уже настроенным Nextcloud, сайтом или общей базой: установщик управляет системными компонентами для своих задач. Docker в этой схеме не требуется. Возможности общения по темам описаны на странице Zulip.
Ubuntu 26.04 явно включена в список ОС для production. Для небольшой команды начальная оценка — 4 vCPU, 8 ГБ RAM и SSD от 80 ГБ. Файлы и история постепенно увеличивают объём. Для другого масштаба воспользуйтесь руководством выбора сервера Zulip, а копии рассчитывайте и храните отдельно. Если памяти меньше 5 ГБ, официальный минимум дополнительно требует swap; в любом случае не заменяйте дисковым swap память для активных пользователей.
Команды выполняйте в терминале сервера после подключения по SSH, если шаг не указывает другое место. sudo даёт команде права администратора. Действия в браузере выполняйте на своём компьютере. Домены, IP-адреса и значения ВАШ_ПАРОЛЬ из примеров заменяйте своими до выполнения команды.
Двигайтесь по одному шагу и проверяйте результат перед следующим. Блок с <<EOF или другим именем завершения копируйте целиком: он записывает содержимое одного файла. При работе в nano сохраняйте файл клавишами Ctrl+O, Enter и выходите Ctrl+X. Если прервали SSH-сеанс, снова перейдите в указанный каталог; переменные предыдущего сеанса потребуется задать заново.
Шаг 1. Установите инструменты загрузки #
Добавим curl и источник universe, нужный зависимостям установщика. Эти команды относятся к серверу Ubuntu, а не к вашему компьютеру.
sudo apt update
sudo apt install curl ca-certificates software-properties-common
sudo add-apt-repository -y universeОбновление списка и установка пакетов завершились без ошибок.
Шаг 2. Создайте каталог установщика #
Отдельная папка поможет не перепутать архив с другими загрузками. В неё будем скачивать релиз Zulip 12.3.
mkdir -p "$HOME/zulip-install"
cd "$HOME/zulip-install"Текущий каталог — ~/zulip-install.
Шаг 3. Скачайте архив и контрольные суммы #
curl сохраняет архив программы и список SHA256. Проверка обнаруживает повреждённый файл до установки.
curl -fLO https://download.zulip.com/server/zulip-server-12.3.tar.gz
curl -fLO https://download.zulip.com/server/SHA256SUMS.txtОба файла скачаны; ошибки HTTP отсутствуют.
Шаг 4. Проверьте архив #
Сравним скачанный архив со строкой его имени в официальном списке. Не распаковывайте файл до успешной проверки.
grep ' zulip-server-12.3.tar.gz$' SHA256SUMS.txt | sha256sum --checkВывод содержит zulip-server-12.3.tar.gz: OK. При FAILED скачайте заново.
Шаг 5. Распакуйте установщик #
tar извлекает файлы в папку zulip-server-12.3 рядом с архивом. Это ещё не запускает установку.
tar -xzf zulip-server-12.3.tar.gzВнутри папки есть scripts/setup/install.
Шаг 6. Запустите официальный установщик #
Замените домен и почту своими в параметрах. Установщик сам ставит приложение и зависимости на чистый сервер; домен уже должен указывать на его IP. Дождитесь завершения.
cd "$HOME/zulip-install"
sudo ./zulip-server-12.3/scripts/setup/install \
--hostname=zulip.example.com \
--email=admin@example.com \
--certbot \
--postgresql-version=18 \
--no-push-notificationsУстановщик вывел адрес создания организации. Сохраните его: это доступ к первоначальной настройке.
Шаг 7. Создайте организацию #
Откройте выданную установщиком ссылку на своём компьютере. Введите название организации и реквизиты администратора. Ссылку первоначальной настройки не публикуйте.
Вы вошли в созданную организацию и видите интерфейс сообщений.
Шаг 8. Заполните обычные SMTP-параметры #
Откройте sudo nano /etc/zulip/settings.py. Измените поля по образцу ниже, сохранив прочие параметры. STARTTLS на 587 и SSL на 465 — разные режимы: пример использует 587, оба одновременно включать нельзя.
EMAIL_HOST = 'smtp.example.com'
EMAIL_HOST_USER = 'zulip@example.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_USE_SSL = FalseСохранены адрес и логин вашего почтового сервиса; пароль сюда не добавлен.
Шаг 9. Сохраните пароль SMTP #
Откройте sudo nano /etc/zulip/zulip-secrets.conf. В существующей секции [secrets] добавьте или измените email_password = ваш_пароль. Не создавайте вторую секцию и не меняйте ключи базы.
sudo nano /etc/zulip/zulip-secrets.confПароль находится только в файле секретов; сохраните его права и владельца.
Шаг 10. Примените почтовые настройки #
Штатный скрипт перезапустит Zulip. Выполняем его от пользователя zulip, которому принадлежат файлы приложения.
sudo -u zulip /home/zulip/deployments/current/scripts/restart-serverПерезапуск завершился без ошибки чтения settings.py.
Шаг 11. Отправьте тестовое письмо #
Замените admin@example.com своим ящиком. Проверка подтверждает подключение к SMTP, но доставку нужно увидеть в почтовом клиенте.
sudo -u zulip /home/zulip/deployments/current/manage.py send_test_email admin@example.comПисьмо получено; проверьте также папку спама.
Шаг 12. Пригласите второго пользователя #
Через интерфейс организации отправьте приглашение другому своему ящику или коллеге. Войдите по нему в отдельном браузере.
Второй пользователь входит; восстановление пароля также доставляет письмо.
Шаг 13. Создайте канал с темой #
Создайте тестовый канал, затем тему внутри него и отправьте сообщение. Канал объединяет участников, тема отделяет обсуждения. Добавьте второго пользователя.
Оба участника видят сообщение в нужной теме.
Шаг 14. Проверьте закрытый канал #
Создайте отдельный приватный канал и пригласите только нужную учётную запись. Проверьте, что пользователь вне канала не видит его содержимое.
Доступ соответствует участникам; публичная регистрация ограничена выбранными настройками организации.
Шаг 15. Проверьте службы и HTTPS #
Supervisor управляет процессами Zulip. Посмотрим их состояние, проверим Nginx и внешний адрес; журнал errors.log нужен для диагностики конкретной ошибки.
sudo supervisorctl status
sudo nginx -t
curl -I https://zulip.example.com/
sudo tail -n 50 /var/log/zulip/errors.logНужные процессы RUNNING, nginx -t успешен и HTTPS открывается без предупреждения.
Шаг 16. Проверьте продление сертификата #
Пробное продление не заменяет текущий сертификат, но выявляет проблемы с проверкой домена.
sudo certbot renew --dry-runDry-run успешен. При отказе проверьте DNS и доступ к порту 80.
Шаг 17. Создайте штатную копию #
Команда backup сохраняет данные Zulip и выводит путь результата. Перенесите копию на другую машину в закрытое хранилище. Восстанавливайте по штатной инструкции той же версии на изолированном сервере.
sudo -u zulip /home/zulip/deployments/current/manage.py backupКопия создана без ошибки; тест восстановления должен показать старую тему, сообщение и вложение.
Если результат шага отличается #
Вернитесь к проверке того шага, на котором появилась ошибка. Первая ошибка в выводе обычно полезнее последних строк: последующие команды могли не получить нужный файл или работающую службу. Не повторяйте установку целиком поверх частично настроенного приложения.
Если страница не открывается, сначала проверьте домен и входящие порты, затем состояние приложения и его журнал. Если сайт открывается, но отдельное действие не работает, проверьте связанные компоненты — обработчик фоновых задач, почту или права пользователя. Официальные источники в конце статьи относятся к выбранному способу установки.