-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update production setup #28
Conversation
547b2f1
to
b1ff4c2
Compare
c4d0447
to
485a5a9
Compare
I feel like just getting rid of them in a separate PR... I don't think anyone is using them anyway. |
f301d54
to
783f14d
Compare
We should probably bump this to Python 3.12 as well |
indeed, good idea! |
Any plans on finalizing and merging this PR? I was looking for a compose-setup ready for production and this repository explicitly states it is not meant for production. A forum post led me to this PR, seems to work fine as long as you build the image locally and do not use the image provided on Docker hub. Nevertheless, a few questions remain:
|
Apologies for the late reply
Static files come from the indico wheel so no need to back them up. Customization is provided by whoever is running the instance so it's presumably already backed up in GitHub/GitLab.. We only use redis for caching so in principle it might not need backing up either. As for upgrading, I think it makes sense to include the upgrade commands in |
I'm not the biggest fan of running DB upgrades automatically on container startup, since it'd probably result in deadlocks when you run the container multiple times. However, we could probably run it only in a single container (e.g. the one running celery beat, since that one must run only once anyway). For my own production setup I'd still prefer to explicitly execute DB updates, but I guess for a "simple" dockerized setup automating it is what people expect... |
Thanks for getting back and answering the questions. Both manual and automatic DB upgrades would be fine for me. I was just wondering how to do this without starting Indico itself. Starting the celery beat container only, execing into the container and performing manual upgrades there, is fine. I did not realize that this is in fact the same source and here the upgrade progress has to deviate a bit from the official documentation for a dedicated machine. Another difference between the Dockerfile and the official install documentation: In the containerized setup there are way less packages installed into the image on build. Nevertheless, I did not find any functionality missing yet. |
@tomasr8 Been trying out your PRs setup and it's been working pretty well but every time I go |
Thanks for the report! This was most likely because we were using an anonymous volume for the Postgres data. I switched to a named volume so the data should be persisted now :) |
People should logging at the place where they terminate TLS, and for temporary usae (debugging etc.) the logs already go to stdout/stderr
- Set USE_PROXY since we can safely assume we're behind a load balancer (that terminates TLS as well) - Do not set our own X-headers, expect the external load balanacer to set them since indico always expect a single 'layer' of X-header values - Get rid of NGINX_SERVER_NAME since we do not need this
That way `docker compose run` etc. also have the virtualenv loaded
That's rejected by indico. the old default was accepted while being very insecure if not changed
Co-authored-by: Joe Pitt <joepitt91@users.noreply.github.com>
872b2d4
to
73fa8f1
Compare
I´d be glad to contribute towards this, but I lack the understanding of what the OpenShift layer does. Besides, is it basically going through all the steps detailed at https://docs.getindico.io/en/stable/installation/production/deb/nginx/ ? What could be done to feature the SSL layer? |
Hi @Kehino! You could help us by testing that this setup works for you as is, or if there's something missing :) |
The setup worked well locally for me! Any specific functionality to test? E.g. I didn't try the PDF generation from LaTeX. I'll test a setup with my nginx reverse proxy and SSL. |
Awesome! We're also interested to know if this setup works and is easy to deploy in a production setting i.e. on OpenShift/k8s so if you have a way to test that, we'd love to know :) |
indico-static
getindico/indico
imageindico.conf
rather than an env file (specified as a mount volume)Haven't touched the openshift configs, but they will probably need updating as well.