静看光阴荏苒
不管不顾不问不说也不念

Docker部署Zulip团队协作平台

Zulip是完全开源的,但是自托管版本有一些限制,详细对比可浏览这个网页查看。似乎只有移动推送通知限制10个用户有点蛋疼,其他的都不怎么影响体验。实际上如果配置了SMTP,离线用户是可以收到邮件通知的。

安装Docker:

apt -y update
apt -y install curl git
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

克隆存储库:

cd /opt
git clone https://github.com/zulip/docker-zulip.git
cd docker-zulip

Zulip的compose编排使用了docker secrets来存储敏感数据。我们需要新建一个.env文件:

nano .env

至少写入以下内容,这里包括但不限于PG数据库密码、REDIS密码、您的SMTP邮件密码等:

ZULIP__POSTGRES_PASSWORD=example_postgres_password
ZULIP__MEMCACHED_PASSWORD=example_memcached_password
ZULIP__RABBITMQ_PASSWORD=example_rabbitmq_password
ZULIP__REDIS_PASSWORD=example_redis_password
ZULIP__SECRET_KEY=example_django_secret_key
ZULIP__EMAIL_PASSWORD=example_outgoing_email_password

编辑compose.override.yaml覆盖文件:

nano compose.override.yaml

在这个覆盖文件内至少需要修改以下内容:

services:
  zulip:
    environment:
      SETTING_EXTERNAL_HOST: "zulip.example.com"
      SETTING_ZULIP_ADMINISTRATOR: "imlala@example.com"
      TRUST_GATEWAY_IP: True
      SETTING_EMAIL_HOST: "mail.example.com"
      SETTING_EMAIL_HOST_USER: "smtp"
      SETTING_EMAIL_PORT: "587"
      SETTING_EMAIL_USE_SSL: False
      SETTING_EMAIL_USE_TLS: True
      SETTING_ZULIP_SERVICE_PUSH_NOTIFICATIONS: True
      SETTING_ZULIP_SERVICE_SUBMIT_USAGE_STATISTICS: False

编辑compose.yaml基础文件:

nano compose.yaml

我们使用反向代理,所以在这里注释掉Zulip容器的443端口,同时将对外暴露的80端口改为8089:

---
services:
  zulip:
    image: "ghcr.io/zulip/zulip-server:11.6-1"
    restart: unless-stopped
    build:
      context: .
    ports:
      - name: smtp
        target: 25
        published: 25
        app_protocol: smtp
      - name: http
        target: 80
        published: 8089
        app_protocol: http
#      - name: https
#        target: 443
#        published: 443
#        app_protocol: https

拉取镜像并初始化Zulip:

docker compose pull
docker compose run --rm zulip app:init

如果一切正常,您应该看到类似下图的回显:

如果输出结果并非以该内容结尾:

=== End Initial Configuration Phase ===

请仔细阅读输出结果以查找警告或错误。

现在就可以启动Zulip了:

docker compose up zulip --wait

配置Ferron反向代理:

nano /etc/ferron.kdl

写入如下内容:

zulip.example.com {
   proxy "http://127.0.0.1:8089/"
   proxy_request_header_replace "Host" "{header:Host}"
}

重载Ferron:

systemctl reload ferron

生成一个链接,在浏览器访问该链接创建新组织:

docker compose exec -u zulip zulip \
    /home/zulip/deployments/current/manage.py generate_realm_creation_link

如图所示:

效果:

关于移动推送通知,除了设置SETTING_ZULIP_SERVICE_PUSH_NOTIFICATIONS: True,还需要执行如下命令注册才能使用:

docker compose exec -u zulip zulip \
    /home/zulip/deployments/current/manage.py register_server

如果您的hostname(完全限定域名fqdn)之前已经注册过,可以使用下面的命令迁移注册:

docker compose exec -u zulip zulip \
    /home/zulip/deployments/current/manage.py register_server --registration-transfer

排查错误:

docker compose exec zulip bash
cat /var/log/zulip/errors.log
赞(0)
未经允许不得转载:荒岛 » Docker部署Zulip团队协作平台
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿