zulip/docs/production
Alex Vandiver b982222e03 camo: Replace with go-camo implementation.
The upstream of the `camo` repository[1] has been unmaintained for
several years, and is now archived by the owner.  Additionally, it has
a number of limitations:
 - It is installed as a sysinit service, which does not run under
   Docker
 - It does not prevent access to internal IPs, like 127.0.0.1
 - It does not respect standard `HTTP_proxy` environment variables,
   making it unable to use Smokescreen to prevent the prior flaw
 - It occasionally just crashes, and thus must have a cron job to
   restart it.

Swap camo out for the drop-in replacement go-camo[2], which has the
same external API, requiring not changes to Django code, but is more
maintained.  Additionally, it resolves all of the above complaints.

go-camo is not configured to use Smokescreen as a proxy, because its
own private-IP filtering prevents using a proxy which lies within that
IP space.  It is also unclear if the addition of Smokescreen would
provide any additional protection over the existing IP address
restrictions in go-camo.

go-camo has a subset of the security headers that our nginx reverse
proxy sets, and which camo set; provide the missing headers with `-H`
to ensure that go-camo, if exposed from behind some other non-nginx
load-balancer, still provides the necessary security headers.

Fixes #18351 by moving to supervisor.
Fixes zulip/docker-zulip#298 also by moving to supervisor.

[1] https://github.com/atmos/camo
[2] https://github.com/cactus/go-camo
2021-11-19 15:58:26 -08:00
..
authentication-methods.md docs: Add disabling of Force POST Binding to Keyclock SLO instructions. 2021-11-01 11:02:51 -07:00
deployment.md puppet: Default to installing smokescreen on application frontends. 2021-11-19 15:29:28 -08:00
email-gateway.md docs: Document how to test the polling email gateway configuration. 2021-10-14 14:50:52 -07:00
email.md docs: Update all links to Django docs to point to version /3.2/. 2021-11-08 18:06:16 -08:00
expensive-migrations.md docs: Format Markdown with Prettier. 2021-09-08 12:06:24 -07:00
export-and-import.md docs: Format Markdown with Prettier. 2021-09-08 12:06:24 -07:00
giphy-gif-integration.md docs: Format Markdown with Prettier. 2021-09-08 12:06:24 -07:00
index.md docs: Convert reST index pages to Markdown. 2021-08-20 06:22:42 -07:00
install-existing-server.md docs: Mention server_name in existing server nginx docs. 2021-11-17 16:53:11 -08:00
install.md docs: Extend Certbot troubleshooting documentation. 2021-11-01 18:11:31 -07:00
maintain-secure-upgrade.md docs: Format Markdown with Prettier. 2021-09-08 12:06:24 -07:00
management-commands.md docs: Update all links to Django docs to point to version /3.2/. 2021-11-08 18:06:16 -08:00
mobile-push-notifications.md puppet: Default to installing smokescreen on application frontends. 2021-11-19 15:29:28 -08:00
multiple-organizations.md docs: Apply sentence single-spacing from Prettier. 2021-09-08 12:06:24 -07:00
password-strength.md docs: Format Markdown with Prettier. 2021-09-08 12:06:24 -07:00
postgresql.md install: Switch default to PostgreSQL 14. 2021-11-08 18:21:46 -08:00
requirements.md puppet: Default to installing smokescreen on application frontends. 2021-11-19 15:29:28 -08:00
security-model.md camo: Replace with go-camo implementation. 2021-11-19 15:58:26 -08:00
settings.md docs: Change chat.zulip.org links to zulip.com/developer-community. 2021-11-17 22:25:55 -08:00
ssl-certificates.md docs: Extend Certbot troubleshooting documentation. 2021-11-01 18:11:31 -07:00
troubleshooting.md docs: Format Markdown with Prettier. 2021-09-08 12:06:24 -07:00
upgrade-or-modify.md docs: Change chat.zulip.org links to zulip.com/developer-community. 2021-11-17 22:25:55 -08:00
upload-backends.md docs: Format Markdown with Prettier. 2021-09-08 12:06:24 -07:00
video-calls.md docs: Apply sentence single-spacing from Prettier. 2021-09-08 12:06:24 -07:00