How brianaarlette/campussoporte-mini-data-center works
CampusSoporte is a local Docker-based campus-incident demo. A user reaches the portal through the Nginx load balancer; the browser UI lists, creates, edits, and deletes incidents through the API, which persists them in MariaDB. The UI also checks which web replica responded, records visits, and runs request simulations whose results are saved for monitoring. Grafana, Alloy, Loki, and Portainer provide documented observability and administration capabilities. Several infrastructure links are based on the README rather than sampled configuration or source.
Main entry points: app.py Incident API · app.js Portal UI · lb.conf Nginx load balancer · minidc.json Dashboards
Components 17
Portal and entry
- Nginx load balancer
nginx/lb.conf - Web replica 1
sitios/web1/index.html - Web replica 2
sitios/web2/index.html - Web replica 3
sitios/web3/index.html - Portal UI
sitios/comun/app.js
Incident services
- Incident API
api/app.py - Incident CRUD
api/app.py - Visit tracking
api/app.py - Request simulations
sitios/comun/app.js - Test records
api/app.py
Persistent data
- MariaDB
mariadb/init/01_esquema.sql
Monitoring and administration
- Docker log collection
observabilidad/config.alloy - Log storage
observabilidad/loki.yaml - Dashboards
grafana/dashboards/minidc.json - Grafana provisioning
grafana/provisioning/datasources/fuentes.yaml - Container administration
docker-compose.yml
Other components
- Campus user
Connections 21
- Campus user → Nginx load balancer: opens portal
README.md - Nginx load balancer → Web replica 1: balances requests
README.md - Nginx load balancer → Web replica 2: balances requests
README.md - Nginx load balancer → Web replica 3: balances requests
README.md - Web replica 1 → Portal UI: serves portal
README.md - Web replica 2 → Portal UI: serves portal
README.md - Web replica 3 → Portal UI: serves portal
README.md - Portal UI → Incident API: calls endpoints
sitios/comun/app.js - Incident API → Incident CRUD: routes CRUD
api/app.py - Incident API → Visit tracking: records visits
api/app.py - Portal UI → Request simulations: runs simulation
sitios/comun/app.js - Request simulations → Incident API: submits results
sitios/comun/app.js - Incident API → Test records: stores results
api/app.py - Incident CRUD → MariaDB: reads and writes
api/app.py - Visit tracking → MariaDB: reads and writes
api/app.py - Test records → MariaDB: reads and writes
api/app.py - Docker log collection → Log storage: ships Docker logs
README.md - Dashboards → Log storage: queries logs
README.md - Grafana provisioning → Dashboards: configures dashboards
README.md - Dashboards → Incident API: shows incident data
- Container administration → Campus user: offers administration
README.md