The upstream rabbitmq project configures a persistent storage volume
(where data like the authentication details for the server are
stored), and it's a lot better for us to configure this explicitly, so
that all persistent state is stored in /opt/docker/zulip.
The task is to generate a self-signed cert so Zulip can be started, then
to wait until Zulip is up before using certbot to generate new certs.
Zulip needs to be up so it can meet certbot's challenge. Using a deploy
hook, certs are persisted in the data directory. The same applies to
renewal.
Tweaked by tabbott mostly to edit comments remove an unnecessary
setting before merging.
Fixes#120.
This removes the fork of the core Zulip nginx configuration file that
we were maintaining in the docker-zulip project; doing so improves the
maintainability of this project for the future, since we don't need to
check on every Zulip upgrade whether we've made any changes to the
`nginx` package in zulip/zulip.
The only feature we were using that for was the DISABLE_HTTPS setting
in docker-zulip, and it's now possible to do that by editing
zulip.conf instead.
Fixes#114.
First, we stop deleting the `puppet` directory, which is important for
being able to run `zulip-puppet-apply` inside the container (super
useful for debugging).
Second, we call this inside the code block for the `nginx` option, in
order to support the `DISABLE_HTTPS` option working without any copied
nginx configuration code in docker-zulip.
See #137 for how we could optimize this away.
This prevents Zulip from wasting a bunch of resources repeatedly
trying to deliver emails with invalid configuration (because
`EMAIL_HOST` not being set results in the dummy email backend being
used).
This makes it much simpler for us to keep the total installation size
of the docker image nice and small, and means we can avoid installing
a static asset compiler into the production image.
The ZPROJECT_SETTINGS file is part of the Zulip distribution and should
not be edited by administrators instead customizations should be made to
the files in /etc/zulip.
The rabbitmq image has support for creating a user and granting the
permissions Zulip requires. This makes the bootstrapRabbitMQ step which
runs in the zulip container redundant so we can remove it. This script
was also the only reverse dependency of rabbitmqctl so rabbitmq-server
can be removed as well.
All of the containers are running on a single pod so we can use
localhost to connect to the other services. After this change database
migrations are completing and the app server is starting. It seems
rabbit MQ is still failing to run correctly.
We don't want to remove the general custom_zulip_files toolchain, but
we've now integrated a correct version of dockervoyager.pp into
zulip.git, so we don't need to include this patched version (which is
also not compatible with Puppet 4).
This is possible thanks to the zulip.git branch ending in
9498260516
that was recently merged.
Update the Dockerfile to pull in Zulip source from Github. This allows
you to specify a branch, tag, or commit ref to build the Zulip docker
image from.
Fixes#102.
The logic in entrypoint.sh was incorrectly detecting IP addresses as
integer type. This causes a syntax error as the IP address gets set in
the production settings file without quotes.