Skip to content

Keep the Privacy

Sergey Grishakov edited this page Oct 22, 2022 · 14 revisions

This page tells about our Matchering WEB.

Being designed and optimized for home and in-house use, it is not suitable for public use in terms of security and scalability. This is a list of reasons (which we were able to find) why you should not host this app on the Internet:

Django, SQLite, Redis and Matchering 2.0 worker are all in the same container.

Yes, this is a Docker anti-pattern, but it is made for the convenience of the app's end user, not the developers.

Non-scalable SQLite is used.

This is done to reduce resource consumption on the end user's computer, so as not to run a separate service for the database, such as PostgreSQL.

Static files are served by Django, Django DEBUG = True, production web servers are not used.

This is also done for the convenience of the end user, so as not to mess with Docker Compose.

Django deployment checklist failed. All Django MIDDLEWARE and unused INSTALLED_APPS are removed from the settings.py.

See above. The reasons are the same.


So to make sure that your public web service will not be hacked or subjected to a DDoS attack, you need to do this at a minimum:

  • Fix all cases from the above list
  • Rewrite the file delivery module to get rid of direct file paths
  • Use nginx with X-Accel-Redirect or Apache with X-Sendfile to distribute media files
  • Implement a chunk uploader or forget about third-party CDNs (for example, CloudFlare Free and Pro plans only accept 100 MB of client maximum upload size) and think about how to protect yourself from DDoS attacks
  • (Optional) Implement user authorization and a personal area with file storage
  • Something else we couldn't remember

A good guide that solves some of these cases.

Clone this wiki locally