2 ms·
I spent 7 hours or so yesterday installing Zulip. It was a huge pain; for one, it wants to own an entire server and the only supported installation method is th
by LoganDark 9mo ago
I spent 7 hours or so yesterday installing Zulip. It was a huge pain; for one, it wants to own an entire server and the only supported installation method is this mega-script that clobbers everything, so I had to try to use the Docker container. Documentation on installation is scarce; other than telling you to use the script, and the fact that a docker container exists (though the GitHub repo it linked me to was no longer accurate, and I had to find the updated image name elsewhere), there's practically no information on how it works or how to use it, or what it depends on or how to configure it.
- Had to use ChatGPT to help generate me a docker-compose.yml, except it forgot about memcached, set the wrong environment variables and just generally did a sloppy job.
- Once it was running it was a huge pain to set up reverse proxying properly, because Zulip apparently doesn't even pay attention to proxy headers if you're talking to it on port 80, even if X-Forwarded-Proto says https. It would get stuck in an endless redirect loop trying to redirect https to https. I could only properly debug this with tcpdump. The only solution I could find was to expose port 443 of the container and then have the reverse proxy talk to that, but Zulip still won't respect X-Forwarded-For, and login emails still show the Docker network address for whatever reason. No idea how to fix this as I couldn't find documentation on how to do it for Docker; the doc for reverse proxying without Docker says to edit zulip.conf, which is impossible (or I don't know how, as again, I couldn't find documentation on any way to do it for Docker.)
- Even once I could access Zulip it was a huge pain to get it to access the databases it needs, because again, I couldn't find documentation on how to do this for Docker. This was after it was a pain to figure out how to generate an org creation link because I don't think I could find documentation for that either, I had to find the script and read the source to figure it out.
- Even once it could access the databases it needs, and I could get it to use the right passwords (which was annoying as it generated SOME of own secrets, but not others, and started ignoring the corresponding settings, like the email host password), I tried to set up push notifications but that required a setting I didn't know how to set because I couldn't find documentation on how to do that for Docker; I eventually figured it out but it was annoying.
It was so awful and took up practically my entire day. Once I could finally get it to work, it works pretty well, but it's not an experience I would recommend until the docs start supporting this use case.
I'm sure it would've been easier if I read the entire documentation, the entire source code, the entire build script of the Docker container, etc. but I just wanted something to work...
- mAritz 9mo agoI typed "Zulip docker compose" into DuckDuckGo, the first result was https://github.com/zulip/docker-zulip https://github.com/zulip/docker-zulip which has commits from today, so doesn't seem out-of-date. > Had to use ChatGPT to help generate me a docker-compose.yml, except it forgot about memcached, set the wrong environment variables and just generally did a sloppy job. It has a docker-compose file in it, has memcached in it. > [...] X-Forwarded-Proto [...] Does https://zulip.readthedocs.io/projects/docker/en/latest/how-to/compose-ssl.html#deploying-behind-a-reverse-proxy https://zulip.readthedocs.io/projects/docker/en/latest/how-t... help? > access the databases it needs The official docker compose has databases set up already, I guess you were missing those from your ChatGPT created compose file. ____ It kind of seems like you were linked to the wrong place for documentation about Zulip with docker in the beginning and then went from that. A quick click-through seems to suggest you landed on https://zulip.readthedocs.io/en/stable/production/install.html https://zulip.readthedocs.io/en/stable/production/install.ht... and then clicked on the prominent "Docker image" link on top which leads to a random location on the page. (at least on Firefox) That's very understandably annoying. If can you confirm that that is what happens, a bug report either with Zulip or ReadTheDocs (not sure which) might be in order.
- LoganDark 9mo ago> I typed "Zulip docker compose" into DuckDuckGo, the first result was https://github.com/zulip/docker-zulip https://github.com/zulip/docker-zulip which has commits from today, so doesn't seem out-of-date. Of course, that's where I started as well. However, when I tried to pull as described in the README: $ docker pull ghcr.io/zulip/zulip-server:11.5-0 Error response from daemon: failed to resolve reference "ghcr.io/zulip/zulip-server:11.5-0": ghcr.io/zulip/zulip-server:11.5-0: not found So I had to pull from `zulip/docker-zulip` instead, because that one actually does exist. > Does https://zulip.readthedocs.io/projects/docker/en/latest/how-to/compose-ssl.html#deploying-behind-a-reverse-proxy https://zulip.readthedocs.io/projects/docker/en/latest/how-t... help? It almost did, but Zulip's port 80 still would try to redirect to HTTPS, even when X-Forwarded-Proto said https. Today (after I had made the comment you replied to), I tried setting `CONFIG_application_server__http_only: "true"` as should work according to https://github.com/zulip/docker-zulip/blob/add4339a92d3073d58988dacf19c3cbfffe0b272/entrypoint.sh#L229C20-L229C27 https://github.com/zulip/docker-zulip/blob/add4339a92d3073d5... , but it appears the image I actually have is different, as /sbin/entrypoint.sh reads: if [ "$DISABLE_HTTPS" == "True" ]; then echo "Disabling https in nginx." crudini --set /etc/zulip/zulip.conf application_server http_only true fi So I set DISABLE_HTTPS instead and that worked. It appears this has been removed according to https://github.com/zulip/docker-zulip/blob/add4339a92d3073d58988dacf19c3cbfffe0b272/docs/how-to/compose-upgrading.md?plain=1#L96 https://github.com/zulip/docker-zulip/blob/add4339a92d3073d5... first committed two days ago, but that change seemingly hasn't reached the image I'm using? Either way I wasn't even upgrading so how would I find those docs? > The official docker compose has databases set up already, I guess you were missing those from your ChatGPT created compose file. I didn't even know how / to use the official docker compose because I didn't find documentation that explained what to do. I didn't see information in the repository on what to do and assumed its compose files were for development/testing. > A quick click-through seems to suggest you landed on https://zulip.readthedocs.io/en/stable/production/install.ht https://zulip.readthedocs.io/en/stable/production/install.ht... and then clicked on the prominent "Docker image" link on top which leads to a random location on the page. (at least on Firefox) Using Safari; for me it leads to the "Zulip in Docker" section on the "Deployment options" page. It says only that the Docker image exists, and that using it increases the effort required (obviously). I followed the link to the Docker image and only read the README because that's usually where installation instructions are. I found none. At the bottom it says "See our main documentation" which I didn't follow because I thought it was just a link to Zulip's documentation which I had already established was near useless. Following it now, apparently it's Docker-unique documentation. Would've been helpful to have known that or for it even to have been indicated anywhere. But some of it still doesn't apply to the image I'm using since the ghcr.io one seemingly disappeared for some reason.