mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-10 09:35:39 +00:00
259 lines
6.1 KiB
Markdown
259 lines
6.1 KiB
Markdown
# BetterDesk Server v3.0 - Ulepszony System Statusu
|
|
|
|
## Przegląd Zmian
|
|
|
|
Wersja 3.0 wprowadza znacząco ulepszony system śledzenia statusu urządzeń:
|
|
|
|
### Kluczowe Ulepszenia
|
|
|
|
| Cecha | v2.0 | v3.0 |
|
|
|-------|------|------|
|
|
| Timeout wykrywania offline | Stały 30s | **Konfigurowalny (domyślnie 15s)** |
|
|
| Interwał heartbeat | Stały 5s | **Konfigurowalny (domyślnie 3s)** |
|
|
| Statusy urządzeń | Online/Offline | **Online/Degraded/Critical/Offline** |
|
|
| Statystyki | Brak | **Pełne statystyki z API** |
|
|
| Konfiguracja runtime | Brak | **Przez API i zmienne środowiskowe** |
|
|
|
|
---
|
|
|
|
## Nowe Statusy Urządzeń
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ ONLINE │ Wszystko OK, heartbeat otrzymany │
|
|
├─────────────────────────────────────────────────────────┤
|
|
│ DEGRADED │ 2-3 pominięte heartbeaty │
|
|
├─────────────────────────────────────────────────────────┤
|
|
│ CRITICAL │ 4+ pominięte heartbeaty, wkrótce offline │
|
|
├─────────────────────────────────────────────────────────┤
|
|
│ OFFLINE │ Przekroczony timeout, brak połączenia │
|
|
└─────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Konfiguracja
|
|
|
|
### Zmienne Środowiskowe
|
|
|
|
| Zmienna | Domyślnie | Opis |
|
|
|---------|-----------|------|
|
|
| `PEER_TIMEOUT_SECS` | 15 | Sekundy do uznania za offline |
|
|
| `HEARTBEAT_INTERVAL_SECS` | 3 | Interwał sprawdzania statusu |
|
|
| `HEARTBEAT_WARNING_THRESHOLD` | 2 | Ilość pominiętych HB dla DEGRADED |
|
|
| `HEARTBEAT_CRITICAL_THRESHOLD` | 4 | Ilość pominiętych HB dla CRITICAL |
|
|
| `HEARTBEAT_VERBOSE` | false | Szczegółowe logowanie |
|
|
| `DB_SYNC_INTERVAL_SECS` | 5 | Interwał synchronizacji z DB |
|
|
|
|
### Konfiguracja przez Systemd
|
|
|
|
```ini
|
|
# /etc/systemd/system/rustdesksignal.service
|
|
[Service]
|
|
Environment="PEER_TIMEOUT_SECS=10"
|
|
Environment="HEARTBEAT_INTERVAL_SECS=2"
|
|
Environment="HEARTBEAT_VERBOSE=true"
|
|
```
|
|
|
|
### Konfiguracja przez Docker
|
|
|
|
```yaml
|
|
services:
|
|
hbbs:
|
|
environment:
|
|
- PEER_TIMEOUT_SECS=10
|
|
- HEARTBEAT_INTERVAL_SECS=2
|
|
```
|
|
|
|
---
|
|
|
|
## Nowe Endpointy API
|
|
|
|
### GET /api/config
|
|
Pobiera aktualną konfigurację serwera.
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"success": true,
|
|
"data": {
|
|
"peer_timeout_secs": 15,
|
|
"heartbeat_interval_secs": 3,
|
|
"warning_threshold": 2,
|
|
"critical_threshold": 4,
|
|
"verbose_logging": false,
|
|
"db_sync_interval_secs": 5
|
|
},
|
|
"version": "3.0.0"
|
|
}
|
|
```
|
|
|
|
### POST /api/config
|
|
Aktualizuje konfigurację (zapisuje do bazy danych).
|
|
|
|
**Request:**
|
|
```json
|
|
{
|
|
"key": "peer_timeout_secs",
|
|
"value": "10"
|
|
}
|
|
```
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"success": true,
|
|
"data": true,
|
|
"version": "3.0.0"
|
|
}
|
|
```
|
|
|
|
### GET /api/peers/stats
|
|
Zwraca szczegółowe statystyki urządzeń.
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"success": true,
|
|
"data": {
|
|
"total_peers": 150,
|
|
"online_peers": 87,
|
|
"offline_peers": 63,
|
|
"banned_peers": 2,
|
|
"total_heartbeats": 1548762
|
|
},
|
|
"version": "3.0.0"
|
|
}
|
|
```
|
|
|
|
### GET /api/server/stats
|
|
Statystyki serwera.
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"success": true,
|
|
"data": {
|
|
"uptime_seconds": 86400,
|
|
"memory_usage_mb": 45.2,
|
|
"api_version": "3.0.0",
|
|
"db_version": "3.0"
|
|
},
|
|
"version": "3.0.0"
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Nowe Kolumny Bazy Danych
|
|
|
|
Migracja automatycznie dodaje:
|
|
|
|
| Kolumna | Typ | Opis |
|
|
|---------|-----|------|
|
|
| `last_heartbeat` | DATETIME | Czas ostatniego heartbeatu |
|
|
| `heartbeat_count` | INTEGER | Licznik heartbeatów |
|
|
| `previous_ids` | TEXT (JSON) | Historia poprzednich ID |
|
|
| `id_changed_at` | DATETIME | Data zmiany ID |
|
|
|
|
### Tabela server_config
|
|
|
|
Nowa tabela dla konfiguracji runtime:
|
|
|
|
```sql
|
|
CREATE TABLE server_config (
|
|
key VARCHAR(100) PRIMARY KEY,
|
|
value TEXT NOT NULL,
|
|
updated_at DATETIME
|
|
);
|
|
```
|
|
|
|
---
|
|
|
|
## Rekomendowane Ustawienia
|
|
|
|
### Środowisko Produkcyjne (stabilność)
|
|
```bash
|
|
PEER_TIMEOUT_SECS=15
|
|
HEARTBEAT_INTERVAL_SECS=3
|
|
```
|
|
|
|
### Środowisko Krytyczne (szybka reakcja)
|
|
```bash
|
|
PEER_TIMEOUT_SECS=8
|
|
HEARTBEAT_INTERVAL_SECS=2
|
|
```
|
|
|
|
### Środowisko z Wolnymi Łączami
|
|
```bash
|
|
PEER_TIMEOUT_SECS=30
|
|
HEARTBEAT_INTERVAL_SECS=5
|
|
```
|
|
|
|
---
|
|
|
|
## Migracja z v2.0
|
|
|
|
1. **Backup bazy danych:**
|
|
```bash
|
|
cp /opt/rustdesk/db_v2.sqlite3 /opt/rustdesk/db_v2.sqlite3.backup
|
|
```
|
|
|
|
2. **Wymiana binarek:**
|
|
```bash
|
|
sudo ./install-improved.sh --fix
|
|
```
|
|
|
|
3. **Restart usług:**
|
|
```bash
|
|
sudo systemctl restart rustdesksignal rustdeskrelay
|
|
```
|
|
|
|
Migracja schematu bazy danych wykonuje się automatycznie przy pierwszym uruchomieniu.
|
|
|
|
---
|
|
|
|
## Pliki Źródłowe v3.0
|
|
|
|
| Plik | Opis |
|
|
|------|------|
|
|
| `peer_v3.rs` | Ulepszony system statusu peer |
|
|
| `database_v3.rs` | Rozszerzona obsługa bazy danych |
|
|
| `http_api_v3.rs` | Nowe endpointy API |
|
|
|
|
### Użycie w Kompilacji
|
|
|
|
Aby użyć nowych plików, zamień oryginalne:
|
|
|
|
```bash
|
|
cp hbbs-patch-v2/src/peer_v3.rs hbbs-patch-v2/src/peer.rs
|
|
cp hbbs-patch-v2/src/database_v3.rs hbbs-patch-v2/src/database.rs
|
|
cp hbbs-patch-v2/src/http_api_v3.rs hbbs-patch-v2/src/http_api.rs
|
|
```
|
|
|
|
Następnie skompiluj:
|
|
```bash
|
|
./build-betterdesk.sh --auto
|
|
```
|
|
|
|
---
|
|
|
|
## Znane Ograniczenia
|
|
|
|
1. **Zmiany konfiguracji przez API** wymagają restartu dla niektórych parametrów
|
|
2. **WebSocket real-time push** nie jest jeszcze zaimplementowany (planowane w v3.1)
|
|
3. **Zmiana ID urządzeń** jest przygotowana w bazie danych ale wymaga zmian w kliencie RustDesk
|
|
|
|
---
|
|
|
|
## Changelog
|
|
|
|
### v3.0.0 (2026-02-06)
|
|
- Konfigurowalny timeout offline
|
|
- Konfigurowalny interwał heartbeat
|
|
- Statusy pośrednie (DEGRADED, CRITICAL)
|
|
- Nowe endpointy API (/api/config, /api/peers/stats, /api/server/stats)
|
|
- Automatyczne migracje bazy danych
|
|
- Tabela server_config dla runtime configuration
|
|
- Batch operations dla lepszej wydajności
|