Template talk:Server Side Software Architecture: Difference between revisions

From IVS Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Article - Manual | content =  
{{Section | title = <h1>Server Side Software Architecture</h1> | content =
 
<h1>Server Side Software Architecture</h1>
Our server-side software is built on a standard <b>LEMP stack</b> consisting of:
Our server-side software is built on a standard <b>LEMP stack</b> consisting of:
*<strong>Linux</strong>
*<strong>Linux</strong>
{{Float | content = {{Aside | style = max-width: 400px | content = The application is designed to run on the latest Ubuntu Linux LTS <em>(Server Edition)</em>.}} }}
*<strong>Nginx</strong>
*<strong>Nginx</strong>
*<strong>MySQL</strong>
*<strong>MySQL</strong>
*<strong>PHP</strong>
*<strong>PHP</strong>
{{Aside | width = 300px | content = The application is designed to run on the latest Ubuntu Linux LTS <em>(Server Edition)</em>.}}




Line 15: Line 11:
{{hr}}
{{hr}}


{{Manual lvl 2 | title = Core Application Components | content =
<center><h2>Core Application Components</h2></center>




Line 26: Line 22:
<b>Database</b>
<b>Database</b>
*Stores all unique, customer-specific configuration and application data
*Stores all unique, customer-specific configuration and application data
*Implemented using MySQL
*Implemented using MariaDB


{{hr - 2}}
{{hr - 2}}
Line 34: Line 30:
*Handles video streaming to client PCs
*Handles video streaming to client PCs
*Responsible for recording, storage, and clip creation
*Responsible for recording, storage, and clip creation
}}




Line 40: Line 35:
{{hr}}
{{hr}}


{{Manual lvl 2 | title = Logical Server Architecture | content =
<center><h2>Logical Server Architecture</h2></center>
 
 
The application is divided into two main server roles:
The application is divided into two main server roles:


Line 47: Line 44:
The Application Server hosts the core application logic and includes:
The Application Server hosts the core application logic and includes:
*PHP web pages served via Nginx
*PHP web pages served via Nginx
*MySQL database services
*MariaDB services
*Node.js messaging and control service
*Node.js messaging and control service


Line 57: Line 54:
*Video stream distribution to clients
*Video stream distribution to clients
*Recording management and clip generation
*Recording management and clip generation
}}




Line 63: Line 59:
{{hr}}
{{hr}}


{{Manual lvl 2 | title = Deployment Models | content = }}
<center><h2>Deployment Models</h2></center>


{{Manual lvl 3 | title = Single Server | content =
 
{{Float | content = {{img - resize | file = Network Architecture-One Server.webp | width = 300px}} }}
<h3>Single Server</h3>
The entire server-side software stack can be deployed on a single [[Servers | physical]] or [[VM - Main Page | VM]]. This configuration is suitable for smaller installations and environments with lower camera counts.
The entire server-side software stack can be deployed on a single [[Servers | physical]] or [[VM - Main Page | VM]]. This configuration is suitable for smaller installations and environments with lower camera counts.
}}


{{hr - 2}}
{{hr - 2}}


{{Manual lvl 3 | title = Multi-Server | content =
{{Float | content = {{img - resize | file = Network Architecture-Multi Server.webp | width = 300px}} }}
For larger deployments—such as those exceeding 50 cameras or spanning multiple departments—the system supports a distributed architecture using multiple Media Servers.
<h3>Multi-Server</h3>
For larger deployments—<em>such as those <b>exceeding 50 cameras</b> or spanning multiple departments</em>—the system supports a distributed architecture using multiple Media Servers.




In this model:
<div style="font-weight: bold; font-size: 1.1em">In this model:</div>
*One Application Server hosts the core application services
*One Application Server hosts the core application services
*One or more dedicated Media Servers handle video processing and storage
*One or more dedicated Media Servers handle video processing and storage
*Media Servers can be added incrementally to scale performance and capacity
*Media Servers can be added incrementally to scale performance and capacity


{{Aside - Helpful | content = This architecture provides flexibility, scalability, and efficient handling of high video workloads.}}
{{Aside - Helpful | content = This architecture provides flexibility, scalability, and efficient handling of high video workloads.}}
}}


<center>{{img - no_click | file = VALT Server Structure.png}}</center>


{{Top of Page}}
{{Top of Page}}
}}
}}

Latest revision as of 16:47, 16 February 2026

Our server-side software is built on a standard LEMP stack consisting of:

  • Linux
✎
The application is designed to run on the latest Ubuntu Linux LTS (Server Edition).
  • Nginx
  • MySQL
  • PHP


⇧ Back to Top


Core Application Components


Web Server

  • Serves the PHP-based application and user interface
  • Powered by the Nginx web server

Database

  • Stores all unique, customer-specific configuration and application data
  • Implemented using MariaDB

Media Server

  • Manages communication with cameras
  • Handles video streaming to client PCs
  • Responsible for recording, storage, and clip creation


⇧ Back to Top


Logical Server Architecture


The application is divided into two main server roles:


Application Server: The Application Server hosts the core application logic and includes:

  • PHP web pages served via Nginx
  • MariaDB services
  • Node.js messaging and control service

Media Server: The Media Server is responsible for all video-related operations, including:

  • Camera communication
  • Video stream distribution to clients
  • Recording management and clip generation


⇧ Back to Top


Deployment Models


Single Server

The entire server-side software stack can be deployed on a single physical or VM. This configuration is suitable for smaller installations and environments with lower camera counts.


Multi-Server

For larger deployments—such as those exceeding 50 cameras or spanning multiple departments—the system supports a distributed architecture using multiple Media Servers.


In this model:
  • One Application Server hosts the core application services
  • One or more dedicated Media Servers handle video processing and storage
  • Media Servers can be added incrementally to scale performance and capacity


🕮
This architecture provides flexibility, scalability, and efficient handling of high video workloads.


⇧ Back to Top