mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-18 03:26:17 +00:00
Update README.md
This commit is contained in:
@@ -61,13 +61,13 @@ The application runs as a standalone AppImage on your Proxmox server and serves
|
|||||||
|
|
||||||
1. Download the latest `ProxMenux-Monitor.AppImage` from the releases page
|
1. Download the latest `ProxMenux-Monitor.AppImage` from the releases page
|
||||||
2. Make it executable:
|
2. Make it executable:
|
||||||
\`\`\`bash
|
```bash
|
||||||
chmod +x ProxMenux-Monitor.AppImage
|
chmod +x ProxMenux-Monitor.AppImage
|
||||||
\`\`\`
|
```
|
||||||
3. Run the AppImage:
|
3. Run the AppImage:
|
||||||
\`\`\`bash
|
```bash
|
||||||
./ProxMenux-Monitor.AppImage
|
./ProxMenux-Monitor.AppImage
|
||||||
\`\`\`
|
```
|
||||||
4. Access the dashboard at `http://your-proxmox-ip:8008`
|
4. Access the dashboard at `http://your-proxmox-ip:8008`
|
||||||
|
|
||||||
The application will start automatically and create a systemd service for persistence.
|
The application will start automatically and create a systemd service for persistence.
|
||||||
@@ -112,9 +112,9 @@ When authentication is enabled on ProxMenux Monitor, all API endpoints (except `
|
|||||||
|
|
||||||
#### API Endpoint Base URL
|
#### API Endpoint Base URL
|
||||||
|
|
||||||
\`\`\`
|
```
|
||||||
http://your-proxmox-ip:8008/api/
|
http://your-proxmox-ip:8008/api/
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
### Generating API Tokens
|
### Generating API Tokens
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ To use the API with authentication enabled, you need to generate a long-lived AP
|
|||||||
|
|
||||||
#### Option 1: Generate via API Call
|
#### Option 1: Generate via API Call
|
||||||
|
|
||||||
\`\`\`bash
|
```bash
|
||||||
curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{
|
-d '{
|
||||||
@@ -131,10 +131,10 @@ curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
|||||||
"totp_token": "123456",
|
"totp_token": "123456",
|
||||||
"token_name": "Homepage Integration"
|
"token_name": "Homepage Integration"
|
||||||
}'
|
}'
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
**Response:**
|
**Response:**
|
||||||
\`\`\`json
|
```json
|
||||||
{
|
{
|
||||||
"success": true,
|
"success": true,
|
||||||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
||||||
@@ -142,7 +142,7 @@ curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
|||||||
"expires_in": "365 days",
|
"expires_in": "365 days",
|
||||||
"message": "API token generated successfully. Store this token securely, it will not be shown again."
|
"message": "API token generated successfully. Store this token securely, it will not be shown again."
|
||||||
}
|
}
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
**Notes:**
|
**Notes:**
|
||||||
- If 2FA is enabled, include the `totp_token` field with your 6-digit code
|
- If 2FA is enabled, include the `totp_token` field with your 6-digit code
|
||||||
@@ -152,30 +152,30 @@ curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
|||||||
|
|
||||||
#### Option 2: Generate via cURL (with 2FA)
|
#### Option 2: Generate via cURL (with 2FA)
|
||||||
|
|
||||||
\`\`\`bash
|
```bash
|
||||||
# With 2FA enabled
|
# With 2FA enabled
|
||||||
curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"username":"pedro","password":"your-password","totp_token":"123456","token_name":"Home Assistant"}'
|
-d '{"username":"pedro","password":"your-password","totp_token":"123456","token_name":"Home Assistant"}'
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Option 3: Generate via cURL (without 2FA)
|
#### Option 3: Generate via cURL (without 2FA)
|
||||||
|
|
||||||
\`\`\`bash
|
```bash
|
||||||
# Without 2FA
|
# Without 2FA
|
||||||
curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
curl -X POST http://your-proxmox-ip:8008/api/auth/generate-api-token \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"username":"pedro","password":"your-password","token_name":"Homepage"}'
|
-d '{"username":"pedro","password":"your-password","token_name":"Homepage"}'
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
### Using API Tokens
|
### Using API Tokens
|
||||||
|
|
||||||
Once you have your API token, include it in the `Authorization` header of all API requests:
|
Once you have your API token, include it in the `Authorization` header of all API requests:
|
||||||
|
|
||||||
\`\`\`bash
|
```bash
|
||||||
curl -H "Authorization: Bearer YOUR_API_TOKEN_HERE" \
|
curl -H "Authorization: Bearer YOUR_API_TOKEN_HERE" \
|
||||||
http://your-proxmox-ip:8008/api/system
|
http://your-proxmox-ip:8008/api/system
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
| `/api/prometheus` | GET | Yes | Export metrics in Prometheus format |
|
| `/api/prometheus` | GET | Yes | Export metrics in Prometheus format |
|
||||||
|
|
||||||
**Example `/api/system` Response:**
|
**Example `/api/system` Response:**
|
||||||
\`\`\`json
|
```json
|
||||||
{
|
{
|
||||||
"hostname": "pve",
|
"hostname": "pve",
|
||||||
"cpu_usage": 15.2,
|
"cpu_usage": 15.2,
|
||||||
@@ -203,7 +203,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
"kernel": "6.2.16-3-pve",
|
"kernel": "6.2.16-3-pve",
|
||||||
"pve_version": "8.0.3"
|
"pve_version": "8.0.3"
|
||||||
}
|
}
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Storage
|
#### Storage
|
||||||
|
|
||||||
@@ -215,7 +215,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
| `/api/backups` | GET | Yes | List of all backup files |
|
| `/api/backups` | GET | Yes | List of all backup files |
|
||||||
|
|
||||||
**Example `/api/storage/summary` Response:**
|
**Example `/api/storage/summary` Response:**
|
||||||
\`\`\`json
|
```json
|
||||||
{
|
{
|
||||||
"total_capacity": 1431894917120,
|
"total_capacity": 1431894917120,
|
||||||
"used_space": 197414092800,
|
"used_space": 197414092800,
|
||||||
@@ -230,7 +230,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Network
|
#### Network
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
| `/api/network/<interface>/metrics` | GET | Yes | Historical metrics (RRD) for specific interface |
|
| `/api/network/<interface>/metrics` | GET | Yes | Historical metrics (RRD) for specific interface |
|
||||||
|
|
||||||
**Example `/api/network/summary` Response:**
|
**Example `/api/network/summary` Response:**
|
||||||
\`\`\`json
|
```json
|
||||||
{
|
{
|
||||||
"interfaces": [
|
"interfaces": [
|
||||||
{
|
{
|
||||||
@@ -253,7 +253,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Virtual Machines & Containers
|
#### Virtual Machines & Containers
|
||||||
|
|
||||||
@@ -267,7 +267,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
| `/api/vms/<vmid>/config` | PUT | Yes | Update VM/LXC configuration (description/notes) |
|
| `/api/vms/<vmid>/config` | PUT | Yes | Update VM/LXC configuration (description/notes) |
|
||||||
|
|
||||||
**Example `/api/vms` Response:**
|
**Example `/api/vms` Response:**
|
||||||
\`\`\`json
|
```json
|
||||||
{
|
{
|
||||||
"vms": [
|
"vms": [
|
||||||
{
|
{
|
||||||
@@ -283,7 +283,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Hardware
|
#### Hardware
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
| `/api/gpu/<slot>/realtime` | GET | Yes | Real-time monitoring for specific GPU |
|
| `/api/gpu/<slot>/realtime` | GET | Yes | Real-time monitoring for specific GPU |
|
||||||
|
|
||||||
**Example `/api/hardware` Response:**
|
**Example `/api/hardware` Response:**
|
||||||
\`\`\`json
|
```json
|
||||||
{
|
{
|
||||||
"cpu": {
|
"cpu": {
|
||||||
"model": "AMD Ryzen 9 5950X",
|
"model": "AMD Ryzen 9 5950X",
|
||||||
@@ -310,7 +310,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Logs, Events & Notifications
|
#### Logs, Events & Notifications
|
||||||
|
|
||||||
@@ -324,9 +324,9 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
| `/api/task-log/<upid>` | GET | Yes | Full log for specific task using UPID |
|
| `/api/task-log/<upid>` | GET | Yes | Full log for specific task using UPID |
|
||||||
|
|
||||||
**Example `/api/logs` Query Parameters:**
|
**Example `/api/logs` Query Parameters:**
|
||||||
\`\`\`
|
```
|
||||||
/api/logs?severity=error&since=1h&search=failed
|
/api/logs?severity=error&since=1h&search=failed
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Health Monitoring
|
#### Health Monitoring
|
||||||
|
|
||||||
@@ -369,7 +369,7 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
|
|
||||||
#### Basic Configuration (No Authentication)
|
#### Basic Configuration (No Authentication)
|
||||||
|
|
||||||
\`\`\`yaml
|
```yaml
|
||||||
- ProxMenux Monitor:
|
- ProxMenux Monitor:
|
||||||
href: http://proxmox.example.tld:8008/
|
href: http://proxmox.example.tld:8008/
|
||||||
icon: lucide:flask-round
|
icon: lucide:flask-round
|
||||||
@@ -395,13 +395,13 @@ Below is a complete list of all API endpoints with descriptions and example resp
|
|||||||
icon: lucide:thermometer-sun
|
icon: lucide:thermometer-sun
|
||||||
format: number
|
format: number
|
||||||
suffix: °C
|
suffix: °C
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### With Authentication Enabled
|
#### With Authentication Enabled
|
||||||
|
|
||||||
First, generate an API token:
|
First, generate an API token:
|
||||||
|
|
||||||
\`\`\`bash
|
```bash
|
||||||
curl -X POST http://proxmox.example.tld:8008/api/auth/generate-api-token \
|
curl -X POST http://proxmox.example.tld:8008/api/auth/generate-api-token \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{
|
-d '{
|
||||||
@@ -409,11 +409,11 @@ curl -X POST http://proxmox.example.tld:8008/api/auth/generate-api-token \
|
|||||||
"password": "your-password",
|
"password": "your-password",
|
||||||
"token_name": "Homepage Integration"
|
"token_name": "Homepage Integration"
|
||||||
}'
|
}'
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
Then add the token to your Homepage configuration:
|
Then add the token to your Homepage configuration:
|
||||||
|
|
||||||
\`\`\`yaml
|
```yaml
|
||||||
- ProxMenux Monitor:
|
- ProxMenux Monitor:
|
||||||
href: http://proxmox.example.tld:8008/
|
href: http://proxmox.example.tld:8008/
|
||||||
icon: lucide:flask-round
|
icon: lucide:flask-round
|
||||||
@@ -441,11 +441,11 @@ Then add the token to your Homepage configuration:
|
|||||||
icon: lucide:thermometer-sun
|
icon: lucide:thermometer-sun
|
||||||
format: number
|
format: number
|
||||||
suffix: °C
|
suffix: °C
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Advanced Multi-Widget Configuration
|
#### Advanced Multi-Widget Configuration
|
||||||
|
|
||||||
\`\`\`yaml
|
```yaml
|
||||||
- ProxMenux System:
|
- ProxMenux System:
|
||||||
href: http://proxmox.example.tld:8008/
|
href: http://proxmox.example.tld:8008/
|
||||||
icon: lucide:server
|
icon: lucide:server
|
||||||
@@ -510,7 +510,7 @@ Then add the token to your Homepage configuration:
|
|||||||
label: Sent
|
label: Sent
|
||||||
icon: lucide:upload
|
icon: lucide:upload
|
||||||
format: bytes
|
format: bytes
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -520,7 +520,7 @@ Then add the token to your Homepage configuration:
|
|||||||
|
|
||||||
#### Configuration.yaml
|
#### Configuration.yaml
|
||||||
|
|
||||||
\`\`\`yaml
|
```yaml
|
||||||
# ProxMenux Monitor Sensors
|
# ProxMenux Monitor Sensors
|
||||||
sensor:
|
sensor:
|
||||||
- platform: rest
|
- platform: rest
|
||||||
@@ -563,11 +563,11 @@ sensor:
|
|||||||
{% set minutes = ((uptime_seconds % 3600) / 60) | int %}
|
{% set minutes = ((uptime_seconds % 3600) / 60) | int %}
|
||||||
{{ days }}d {{ hours }}h {{ minutes }}m
|
{{ days }}d {{ hours }}h {{ minutes }}m
|
||||||
scan_interval: 60
|
scan_interval: 60
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||
#### Lovelace Card Example
|
#### Lovelace Card Example
|
||||||
|
|
||||||
\`\`\`yaml
|
```yaml
|
||||||
type: entities
|
type: entities
|
||||||
title: Proxmox Monitor
|
title: Proxmox Monitor
|
||||||
entities:
|
entities:
|
||||||
@@ -583,7 +583,7 @@ entities:
|
|||||||
- entity: sensor.proxmenux_uptime
|
- entity: sensor.proxmenux_uptime
|
||||||
name: Uptime
|
name: Uptime
|
||||||
icon: mdi:clock-outline
|
icon: mdi:clock-outline
|
||||||
\`\`\`
|
```
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user