Deployment Diaries – Dockerizing and Hosting QuantoxBay on EC2 and Render

Welcome to the final part of my QuantoxBay blog series. Throughout this journey, I’ve shared how I built a full-stack digital marketplace using Django from core logic and payments to user dashboards and graphs.

Now it’s time to go behind the curtain and talk about the DevOps side how I actually deployed QuantoxBay, containerized it with Docker, and hosted it on both Amazon EC2 and Render.

This was my first real experience with Docker and EC2, and I learned both specifically for this project to make sure I wasn’t just building something cool, but actually shipping it live.


Why I Wanted to Self-Host

I didn’t want this to be just a "local Django app." I wanted QuantoxBay to be:

  • Live and accessible to anyone

  • Containerized and portable

  • Running on my own public IP (via EC2)

  • Ready for real-world use (uploads, payments, dashboards, etc.)

That’s where Docker and AWS EC2 came in.


Dockerizing the Django App

I used Docker to containerize the entire Django project this gave me:

  • A clean production environment

  • Isolation from my local dev setup

  • Easy deployments across machines

I learned how to write a custom Dockerfile, configure gunicorn as the WSGI server, collect static files, and expose the right ports all from scratch.

It was honestly one of the most valuable parts of this project. It made me understand how full-stack apps are actually deployed not just run with python manage.py runserver.


Hosting on Amazon EC2

Once the app was Dockerized, I spun up an Amazon EC2 instance, installed Docker there, and deployed the container.

That gave me:

  • A public IP for the platform

  • Full control over the server environment

  • A much deeper understanding of Linux hosting, SSH, and security groups

At this stage, the site is accessible via HTTP (not HTTPS yet that’s on the roadmap). But it’s fully functional with all the core features live: uploading, payments (in test mode), downloads, dashboards, etc.

This was the first time I managed my own cloud instance and it taught me so much more than using a pre-packaged host.


Also Deployed on Render

In parallel, I deployed the same app to Render, which is:

  • Great for quick deployments

  • Easier to manage environment variables and background tasks

  • Auto-deploys from GitHub on every push

Render was perfect for demo purposes and I used it to host the public version of QuantoxBay that anyone can visit:
👉 quantoxbay.onrender.com

This setup also made it easier to share and test features while I was still experimenting with EC2.


Media Storage & Database

To make the app fully production-ready:

  • I used Cloudinary to store and serve all uploaded product files (images, ZIPs, PDFs).

  • I connected the app to a hosted PostgreSQL database via Neon, which offers reliability and scalability without worrying about managing a local database.

This allowed users to:

  • Upload actual digital products

  • Access purchased files

  • View analytics and dashboards tied to real order data


What’s Still Left?

There’s always something more to do here’s what’s next on my deployment checklist:

  • Set up HTTPS on EC2 (likely via Nginx + Let’s Encrypt)

  • Add monitoring and alerts (like uptime tracking or error emails)

  • Possibly move to Docker Compose with Redis if I build real-time chat or notifications later

But even now, QuantoxBay is:
✅ Dockerized
✅ Live on both EC2 and Render
✅ Fully working for test purchases
✅ Secure with access control, file management, and dashboards


What I Learned

This was my first end-to-end deployment of a complex Django app and I walked away with hands-on experience in:

  • Docker (building, running, exposing, deploying)

  • AWS EC2 (setup, SSH, firewalls, Linux basics)

  • Render deployments

  • Stripe Webhooks in production

  • Hosting real digital media and secure downloads

It’s one thing to write code, and another to get it online and working for users. I’m glad I didn’t stop at local development.


Try It Out

You can visit the live platform here (Stripe test mode enabled):
🔗 quantoxbay.onrender.com

Test cards like 4242 4242 4242 4242 work for simulating payments.

Explore the code here:
🗂 github.com/vedantmpatil/Quantoxbay


Thanks for following along on this blog series. I hope it gave you not just inspiration, but real insight into how a Django-based marketplace gets built and deployed from zero to production.

0
Subscribe to my newsletter

Read articles from Vedant Manohar Patil directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vedant Manohar Patil
Vedant Manohar Patil