Difference between revisions of "Template talk:Server Side Software Architecture"
IVSWikiBlue (talk | contribs) |
IVSWikiBlue (talk | contribs) |
||
| (6 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | {{ | + | {{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> | ||
| − | |||
| − | |||
| − | |||
| Line 15: | Line 11: | ||
{{hr}} | {{hr}} | ||
| − | + | <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 | + | *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}} | ||
| − | + | <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 | ||
| − | * | + | *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}} | ||
| − | + | <center><h2>Deployment Models</h2></center> | |
| − | {{ | + | |
| + | {{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}} | ||
| − | {{ | + | {{Float | content = {{img - resize | file = Network Architecture-Multi Server.webp | width = 300px}} }} |
| − | For larger | + | <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.}} | ||
| − | |||
| − | |||
{{Top of Page}} | {{Top of Page}} | ||
}} | }} | ||