diff --git a/doc/admin/config.rst b/doc/admin/config.rst index 744aa87da..6ca0d9e34 100644 --- a/doc/admin/config.rst +++ b/doc/admin/config.rst @@ -201,6 +201,10 @@ You can use an existing memcached server as pretix's caching backend:: If no memcached is configured, pretix will use Django's built-in local-memory caching method. +.. note:: If you use memcached and you deploy pretix across multiple servers, you should use *one* + shared memcached instance, not multiple ones, because cache invalidations would not be + propagated otherwise. + Redis ----- diff --git a/doc/admin/installation/general.rst b/doc/admin/installation/general.rst index 8e8b7e4d4..110570f77 100644 --- a/doc/admin/installation/general.rst +++ b/doc/admin/installation/general.rst @@ -5,51 +5,33 @@ General remarks Requirements ------------ -To use pretix, the most minimal setup consists of: +To use pretix, you wull need the following things: * **pretix** and the python packages it depends on + * An **WSGI application server** (we recommend gunicorn) + * A periodic task runner, e.g. ``cron`` -To run pretix, you will need **at least Python 3.4**. We only recommend installations on **Linux**, Windows is not -officially supported (but might work). +* **A database**. This needs to be a SQL-based that is supported by Django. We highly recommend to either + go for **PostgreSQL** or **MySQL/MariaDB**. If you do not provide one, pretix will run on SQLite, which is useful + for evaluation and development purposes. -Optional requirements ---------------------- + .. warning:: Do not ever use SQLite in production. It will break. -pretix is built in a way that makes many of the following requirements optional. However, performance or security might -be very low if you skip some of them, therefore they are only partly optional. +* A **reverse proxy**. pretix needs to deliver some static content to your users (e.g. CSS, images, ...). While pretix + is capable of doing this, having this handled by a proper web server like **nginx** or **Apache** will be much + faster. Also, you need a proxying web server in front to provide SSL encryption. -Database - A good SQL-based database to run on that is supported by Django. We highly recommend to either go for **PostgreSQL** - or **MySQL/MariaDB**. - If you do not provide one, pretix will run on SQLite, which is useful for evaluation and development purposes. + .. warning:: Do not ever run without SSL in production. Your users deserve encrypted connections and thanks to + `Let's Encrypt`_ SSL certificates can be obtained for free these days. - .. warning:: Do not ever use SQLite in production. It will break. +* A **redis** server. This will be used for caching, session storage and task queuing. -Reverse proxy - pretix needs to deliver some static content to your users (e.g. CSS, images, ...). While pretix is capable of - doing this, having this handled by a proper web server like **nginx** or **Apache** will be much faster. Also, you - need a proxying web server in front to provide SSL encryption. + .. warning:: pretix can run without redis, however this is only intended for development and should never be + used in production. - .. warning:: Do not ever run without SSL in production. Your users deserve encrypted connections and thanks to - `Let's Encrypt`_ SSL certificates can be obtained for free these days. - -Task worker - When pretix has to do heavy stuff, it is better to offload it into a background process instead of having the - users connection wait. Therefore pretix provides a background service that can be used to work on those - longer-running tasks. - - This requires at least Redis (and optionally RabbitMQ). - -Redis - If you provide a redis instance, pretix is able to make use of it in the three following ways: - - * Caching - * Fast session storage - * Queuing and result storage for the task worker queue - -RabbitMQ - RabbitMQ can be used as a more advanced queue manager for the task workers if necessary. +* Optionally: RabbitMQ or memcached. Both of them might provide speedups, but if they are not present, + redis will take over their job. .. _Let's Encrypt: https://letsencrypt.org/ diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 659408336..c16cad09f 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -96,8 +96,7 @@ METRICS_PASSPHRASE = config.get('metrics', 'passphrase', fallback="") CACHES = { 'default': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - 'LOCATION': 'unique-snowflake', + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', } } REAL_CACHE_USED = False