Containers

Containers Overview

Every BUG instance includes at minimum:

  • BUG Core – serves the frontend UI, manages configuration, and orchestrates modules.
  • Mongo – stores persistent configuration and module data.
%%{init: {'flowchart': {'rankSpacing': 70, 'nodeSpacing': 30}} }%%
graph TB
    subgraph host["BUG Host — 192.168.0.1"]
        subgraph core["Main Containers"]
            app["BUG Application\nbug/app:latest"]
            mongo["Mongo DB\nmongo:latest"]
        end
        subgraph modules["Module Containers"]
            m1["ciscosg:latest"]
            m2["comrex-briclink:latest"]
            m3["mikrotik-interfaces:latest"]
            m4["tieline-gateway:latest"]
        end
        app --> mongo
        m1-->app
        m2-->app
        m3-->app
        m4-->app
    end

    t1["Desktop Web Client\n192.168.0.2"] -->|http| app
    device1["Cisco Switch"] <--> m1
    device2["Comrex Briclink Codec"] <--> m2
    device3["Mikrotik Router"] <--> m3
    device4["Tieline Gateway Codec"] <--> m4

In development environments, additional containers such as Mongo Express may be present for easier inspection of the database.

Each module is allocated its own container, which provides:

  • Isolated environment for backend logic
  • Data acquisition and monitoring for connected devices
  • REST APIs and WebSocket endpoints for communication with the core