# demontara/csf-scripts architecture

> Architecture diagram of the GitHub repository demontara/csf-scripts, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/demontara/csf-scripts
- Repository: https://github.com/demontara/csf-scripts

## Overview

This repository is a collection of legacy server-management scripts, including ConfigServer Security & Firewall (CSF), panel integrations, and separate CMC, CMM, CMQ, and CSE tools. In the evidenced CSF panel workflow, CyberPanel routes requests to views that render an admin page or invoke the CSF UI script; its app setup loads signal handlers that redirect firewall entry points. Other sampled integrations show DirectAdmin and InterWorx dispatch paths. The README does not document product behavior, and much of the core runtime was not sampled, so uncertain connections are omitted.

Main entry points: [`csf/cyberpanel/configservercsf/views.py`](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/views.py) (CSF UI views), [`csf/interworx/Plugin/Configservercsf.php`](https://github.com/demontara/csf-scripts/blob/main/csf/interworx/Plugin/Configservercsf.php) (InterWorx plugin), [`csf/cyberpanel/configservercsf/signals.py`](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/signals.py) (Firewall redirects), [`csf/cyberpanel/configservercsf/urls.py`](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/urls.py) (CyberPanel routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_csf["CSF firewall"]
  node_csf_ui_script["CyberPanel UI script"]
  node_csf_core["Firewall runtime<br/>[csf.pl]"]
  node_lfd["Login failure daemon<br/>[lfd.pl]"]
  node_csf_config["Firewall configuration<br/>[csf.conf]"]
  node_messenger["Access messenger<br/>[index.php]"]
end

subgraph group_panels["Panel integrations"]
  node_cyber_routes["CyberPanel routes<br/>[urls.py]"]
  node_cyber_views["CSF UI views<br/>[views.py]"]
  node_ui_page["CSF UI page<br/>[index.html]"]
  node_cyber_app["CyberPanel app setup<br/>[apps.py]"]
  node_cyber_signals["Firewall redirects<br/>[signals.py]"]
  node_firewall_signals["Firewall signals<br/>[signals.py]"]
  node_cwp_ajax["CWP request bridge<br/>[ajax_csfframe.php]"]
  node_cwp_script["CWP UI script<br/>[csf.pl]"]
  node_interworx_plugin["InterWorx plugin"]
  node_interworx_admin["Admin UI runner<br/>[index.pl]"]
  node_interworx_reseller["Reseller UI runner<br/>[reseller.pl]"]
end

subgraph group_tools["Other scripts"]
  node_cmq_gate["CMQ privilege gate<br/>[cmq.c]"]
  node_cmq_cgi["CMQ DirectAdmin UI<br/>[da_cmq.cgi]"]
  node_cmc["ConfigServer Mail Control<br/>[cmc.cgi]"]
  node_cmm["ConfigServer Mail Manager<br/>[cmm.cgi]"]
  node_cse["ConfigServer Explorer<br/>[cse.cgi]"]
end

node_admin(("Panel admin"))

node_cyber_routes -->|"routes to"| node_cyber_views
node_cyber_app -->|"loads"| node_cyber_signals
node_cyber_signals -->|"registers handlers"| node_firewall_signals
node_cyber_views -->|"renders"| node_ui_page
node_cyber_views -->|"executes"| node_csf_ui_script
node_cwp_ajax -->|"executes"| node_cwp_script
node_interworx_plugin -->|"runs admin"| node_interworx_admin
node_interworx_plugin -->|"runs reseller"| node_interworx_reseller
node_cmq_gate -->|"executes"| node_cmq_cgi

click node_cyber_routes "https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/urls.py"
click node_cyber_views "https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/views.py"
click node_ui_page "https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/templates/configservercsf/index.html"
click node_cyber_app "https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/apps.py"
click node_cyber_signals "https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/signals.py"
click node_firewall_signals "https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/signals.py"
click node_cwp_ajax "https://github.com/demontara/csf-scripts/blob/main/csf/cwp/ajax_csfframe.php"
click node_cwp_script "https://github.com/demontara/csf-scripts/blob/main/csf/cwp/csf.pl"
click node_interworx_plugin "https://github.com/demontara/csf-scripts/blob/main/csf/interworx/Plugin/Configservercsf.php"
click node_interworx_admin "https://github.com/demontara/csf-scripts/blob/main/csf/interworx/lib/index.pl"
click node_interworx_reseller "https://github.com/demontara/csf-scripts/blob/main/csf/interworx/lib/reseller.pl"
click node_csf_core "https://github.com/demontara/csf-scripts/blob/main/csf/csf.pl"
click node_lfd "https://github.com/demontara/csf-scripts/blob/main/csf/lfd.pl"
click node_csf_config "https://github.com/demontara/csf-scripts/blob/main/csf/csf.conf"
click node_messenger "https://github.com/demontara/csf-scripts/blob/main/csf/messenger/index.php"
click node_cmq_gate "https://github.com/demontara/csf-scripts/blob/main/cmq/cmq.c"
click node_cmq_cgi "https://github.com/demontara/csf-scripts/blob/main/cmq/da/exec/da_cmq.cgi"
click node_cmc "https://github.com/demontara/csf-scripts/blob/main/cmc/cmc.cgi"
click node_cmm "https://github.com/demontara/csf-scripts/blob/main/cmm/cmm.cgi"
click node_cse "https://github.com/demontara/csf-scripts/blob/main/cse/cse.cgi"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_csf_ui_script,node_csf_core,node_lfd,node_csf_config,node_messenger toneBlue
class node_cyber_routes,node_cyber_views,node_ui_page,node_cyber_app,node_cyber_signals,node_firewall_signals,node_cwp_ajax,node_cwp_script,node_interworx_plugin,node_interworx_admin,node_interworx_reseller toneAmber
class node_cmq_gate,node_cmq_cgi,node_cmc,node_cmm,node_cse toneMint
class node_admin toneIndigo
```

## Components

### CSF firewall

- **CyberPanel UI script**
- [Firewall runtime](https://github.com/demontara/csf-scripts/blob/main/csf/csf.pl): `csf/csf.pl`
- [Login failure daemon](https://github.com/demontara/csf-scripts/blob/main/csf/lfd.pl): `csf/lfd.pl`
- [Firewall configuration](https://github.com/demontara/csf-scripts/blob/main/csf/csf.conf): `csf/csf.conf`
- [Access messenger](https://github.com/demontara/csf-scripts/blob/main/csf/messenger/index.php): `csf/messenger/index.php`

### Panel integrations

- [CyberPanel routes](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/urls.py): `csf/cyberpanel/configservercsf/urls.py`
- [CSF UI views](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/views.py): `csf/cyberpanel/configservercsf/views.py`
- [CSF UI page](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/templates/configservercsf/index.html): `csf/cyberpanel/configservercsf/templates/configservercsf/index.html`
- [CyberPanel app setup](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/apps.py): `csf/cyberpanel/configservercsf/apps.py`
- [Firewall redirects](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/signals.py): `csf/cyberpanel/configservercsf/signals.py`
- [Firewall signals](https://github.com/demontara/csf-scripts/blob/main/csf/cyberpanel/configservercsf/signals.py): `csf/cyberpanel/configservercsf/signals.py`
- [CWP request bridge](https://github.com/demontara/csf-scripts/blob/main/csf/cwp/ajax_csfframe.php): `csf/cwp/ajax_csfframe.php`
- [CWP UI script](https://github.com/demontara/csf-scripts/blob/main/csf/cwp/csf.pl): `csf/cwp/csf.pl`
- [InterWorx plugin](https://github.com/demontara/csf-scripts/blob/main/csf/interworx/Plugin/Configservercsf.php): `csf/interworx/Plugin/Configservercsf.php`
- [Admin UI runner](https://github.com/demontara/csf-scripts/blob/main/csf/interworx/lib/index.pl): `csf/interworx/lib/index.pl`
- [Reseller UI runner](https://github.com/demontara/csf-scripts/blob/main/csf/interworx/lib/reseller.pl): `csf/interworx/lib/reseller.pl`

### Other scripts

- [CMQ privilege gate](https://github.com/demontara/csf-scripts/blob/main/cmq/cmq.c): `cmq/cmq.c`
- [CMQ DirectAdmin UI](https://github.com/demontara/csf-scripts/blob/main/cmq/da/exec/da_cmq.cgi): `cmq/da/exec/da_cmq.cgi`
- [ConfigServer Mail Control](https://github.com/demontara/csf-scripts/blob/main/cmc/cmc.cgi): `cmc/cmc.cgi`
- [ConfigServer Mail Manager](https://github.com/demontara/csf-scripts/blob/main/cmm/cmm.cgi): `cmm/cmm.cgi`
- [ConfigServer Explorer](https://github.com/demontara/csf-scripts/blob/main/cse/cse.cgi): `cse/cse.cgi`

### Other components

- **Panel admin**

## Connections

- CyberPanel routes → CSF UI views: routes to (evidence: `csf/cyberpanel/configservercsf/urls.py`)
- CyberPanel app setup → Firewall redirects: loads (evidence: `csf/cyberpanel/configservercsf/apps.py`)
- Firewall redirects → Firewall signals: registers handlers (evidence: `csf/cyberpanel/configservercsf/signals.py`)
- CSF UI views → CSF UI page: renders (evidence: `csf/cyberpanel/configservercsf/views.py`)
- CSF UI views → CyberPanel UI script: executes (evidence: `csf/cyberpanel/configservercsf/views.py`)
- CWP request bridge → CWP UI script: executes (evidence: `csf/cwp/ajax_csfframe.php`)
- InterWorx plugin → Admin UI runner: runs admin (evidence: `csf/interworx/Plugin/Configservercsf.php`)
- InterWorx plugin → Reseller UI runner: runs reseller (evidence: `csf/interworx/Plugin/Configservercsf.php`)
- CMQ privilege gate → CMQ DirectAdmin UI: executes (evidence: `cmq/cmq.c`)
