This repository contains multiple independent projects, each in its own directory.
A tool to intercept and monitor API requests between clients and Ollama server using mitmproxy.
A modular system for collecting device statistics and publishing them to an MQTT broker.
- Go to project
- Features:
- Cross-platform support (Linux, Windows, macOS)
- GPU monitoring (NVIDIA, Apple Silicon)
- CPU monitoring with temperature and frequency tracking
- GPU fan control with customizable temperature-based profiles
- Modular architecture for easy extension
- Automatic fallback to mock data
- Automatic service installation
- JSON configuration for fan control settings
Each project is contained in its own directory and has its own documentation, dependencies, and configuration.
repository/
├── ollama-request-interceptor/
│ ├── README.md
│ ├── install-interceptor.sh
│ └── ...
├── mqtt-publisher/
│ ├── README.md
│ ├── app.py
│ ├── optimized_app.py
│ ├── install.sh
│ ├── uninstall.sh
│ ├── modules/
│ └── ...
└── ...
Navigate to the specific project directory you're interested in and follow the instructions in that project's README.md file.
The MQTT Publisher includes a GPU fan control module for NVIDIA GPUs that allows you to define custom temperature ranges and corresponding fan speeds. This feature helps optimize cooling and noise levels based on your preferences.
The fan control settings are defined in a JSON configuration file (fan_config.json
):
{
"time_to_update": 5,
"temperature_ranges": [
{
"min_temperature": 0,
"max_temperature": 40,
"fan_speed": 30,
"hysteresis": 2
},
{
"min_temperature": 40,
"max_temperature": 50,
"fan_speed": 40,
"hysteresis": 2
},
// Additional temperature ranges...
]
}
time_to_update
: Time in seconds between fan speed updatestemperature_ranges
: Array of temperature range objects with:min_temperature
: Minimum temperature in Celsiusmax_temperature
: Maximum temperature in Celsiusfan_speed
: Fan speed percentage (0-100)hysteresis
: Temperature change required to trigger a fan speed update
For more details, see the project's README file.
When contributing to this repository, please make sure to:
- Work in the appropriate project directory
- Follow the contribution guidelines for the specific project
- Keep project dependencies isolated to their respective directories
Each project may have its own license. Please check the individual project directories for license information.