Template:Server Side Software Architecture: Difference between revisions
Jump to navigation
Jump to search
IVSWikiBlue (talk | contribs) No edit summary |
IVSWikiBlue (talk | contribs) No edit summary |
||
| (8 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{Section | title = <h1>Server Side Software Architecture</h1> | content = | {{Section | title = <h1>Server Side Software Architecture</h1> | content = | ||
Our server-side software is built on a standard <b>LEMP stack</b> consisting of: | |||
*<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>MariaDB</strong> | |||
*<strong>PHP</strong> | |||
{{ | {{Top of Page}} | ||
{{hr}} | |||
< | <center><h2>Core Application Components</h2></center> | ||
< | |||
<b>Web Host</b> | |||
< | *Serves the PHP-based application and user interface | ||
*Powered by the Nginx web server | |||
{{hr - 2}} | |||
<b>Database</b> | |||
*Stores all unique, customer-specific configuration and application data | |||
*Implemented using MariaDB | |||
{{ | {{hr - 2}} | ||
< | <b>Streaming Engine</b> | ||
*Manages [[Network_Requirements#Media_Server.28s.29_to_Video_Device.28s.29|communication with cameras]] | |||
*Handles [[Network_Requirements#Client_to_Application_.26_Media_Server.28s.29|video streaming to client PCs]] | |||
*Responsible for recording, storage, and clip creation | |||
{{img - | {{Top of Page}} | ||
{{hr}} | |||
<center><h2>Logical Server Architecture</h2></center> | |||
The application is divided into <strong><u>two main server roles</u></strong>: | |||
<b>Application Server:</b> | |||
The Application Server hosts the core application logic and includes: | |||
*PHP web pages served via Nginx | |||
*MariaDB services | |||
*Node.js messaging and control service | |||
{{hr - 2}} | |||
<b>Media Server:</b> | |||
The Media Server is responsible for all video-related operations, including: | |||
*Camera communication | |||
*Video stream distribution to clients | |||
*Recording management and clip generation | |||
{{Top of Page}} | |||
{{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. | |||
{{hr - 2}} | |||
{{Float | content = {{img - resize | file = Network Architecture-Multi Server.webp | width = 300px}} }} | |||
<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. | |||
<div style="font-weight: bold; font-size: 1.1em">In this model:</div> | |||
*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 | |||
{{Aside - Helpful | content = This architecture provides flexibility, scalability, and efficient handling of high video workloads.}} | |||
{{Top of Page}} | |||
}} | }} | ||

