I am deploying my first django app to production and was wondering if there are good guides for server minimums.
I have a containerized app that includes: postgress, django + rest, vue frontend, nginx reverse proxy.
I have put the DB in a linode managed postgres instance but for now, we were going to run all the rest of the app containers on a server with docker-compose (down the track we may move to a hosted solution for that)
I am expecting anything up to approximately 1000 users per day.
Currently, I have it on a server with a shared core, 2 GB of ram and 50 GB storage. That’s ok for development but I think I need more for production.
Are there best practice minimums for a setup like mine?
No. What you’re describing as an environment is nowhere near enough detail to get an understanding of what your needs are going to be. Just saying 1000 users/day doesn’t mean a whole lot. If they’re evenly distributed across a 24-hour window and each user makes 1 page request, that’s less than 1 request per minute.
On the other hand, if all 1000 users are all trying to do the same thing between 8 and 9 AM and issuing a request every 5 seconds, that’s 200 requests / second.
The amount of memory is likewise extremely variable, depending upon the amount of data being handled by the view. A static page that doesn’t use data from the database will use very little memory. A very complex page could require gigabytes of memory.
Only you can determine what your system load is going to be. What I would suggest that you do is use something to simulate load on the website (jmeter, selenium, etc) to see how it behaves.