Consolidating a multi-app stack into a single Azure VM using Docker?

Hi community,

We are currently running a diverse mix of applications across multiple individual Virtual Machines (VMs) in Azure (ERPNext, Frappe LMS, OJS, Indico, Electronic Invoicing System). This setup is consuming a massive amount of resources, driving up our infrastructure overhead, and we want to optimize our costs by consolidating everything onto a single, robust Azure VM.

Our planned ecosystem includes the following workloads:

  1. ERPNext & Frappe LMS: Both built on the Frappe Framework. We want to run them on the same VM but ensure complete separation. Students accessing the LMS must only see the student portal and be completely isolated from the ERP desk environment.

  2. Open Journal Systems (OJS): A PHP-based publishing platform.

  3. Indico: A Python/Flask-based event management system that relies on PostgreSQL.

  4. Electronic Invoicing System: A localized system handling electronic tax invoices.

We have read that a unified Docker environment using a global Reverse Proxy (like Nginx Proxy Manager or Traefik) is the best way to handle this. Since we have a mix of Frappe-native shared stacks and completely different software dependencies (PHP, Python/Flask, PostgreSQL, MariaDB), we want to make sure we don’t run into system conflicts.

Our questions for the community:

  1. Is it stable to run the Frappe apps (ERPNext and LMS) as separate multi-tenant sites sharing a single Docker database container, while running OJS and Indico in their own completely isolated containers on the same host?
  2. Will a single reverse proxy handle the routing smoothly based on subdomains without performance bottlenecks?
  3. For those running a similar multi-app containerized production environment on a single cloud server, what are your recommended baseline CPU/RAM specifications to keep it stable?

We would truly appreciate any architectural advice, Docker Compose best practices, or guidance you can share!

Very best,