Ten dokument opisuje jak skonfigurować dostęp do ScaleIT Bridge z innych komputerów w sieci lokalnej.
Od wersji 0.1.5, ScaleIT Bridge domyślnie nasłuchuje na 0.0.0.0:8080, co umożliwia dostęp z sieci lokalnej. Wcześniejsze wersje nasłuchiwały tylko na localhost (127.0.0.1:8080).
Komputer Master (z Bridge) Inny komputer w sieci
┌─────────────────────────┐ ┌──────────────────────┐
│ ScaleIT Bridge │ │ Frontend (Browser) │
│ http://192.168.1.100: │ ◄──────│ http://192.168.1.50 │
│ 8080 │ │ │
└─────────────────────────┘ └──────────────────────┘
│
▼
┌─────────────┐
│ Waga (TCP) │
└─────────────┘
# Windows PowerShell
ipconfig
# Szukaj "IPv4 Address" dla aktywnego interfejsu sieciowego
# Przykład: 192.168.1.100Upewnij się, że Bridge nasłuchuje na wszystkich interfejsach (0.0.0.0):
# Sprawdź logi
Get-Content "C:\ProgramData\ScaleCmdBridge\logs\service-stdout.log" -Tail 50 | Select-String "Server running"
# Powinieneś zobaczyć:
# Server running on http://0.0.0.0:8080
# Server accessible at:
# - http://localhost:8080
# - http://192.168.1.100:8080# Sprawdź czy NETWORK_MODE jest ustawiony na 'lan' (domyślny)
cd "C:\Program Files\ScaleCmdBridge"
.\nssm.exe get ScaleCmdBridge AppEnvironmentExtra
# Powinno być:
# NETWORK_MODE=lan
# (lub brak zmiennej - wtedy domyślnie 'lan')# Sprawdź czy reguła firewall istnieje
netsh advfirewall firewall show rule name="ScaleIT Bridge - TCP Port 8080"
# Jeśli nie istnieje, dodaj ją:
netsh advfirewall firewall add rule name="ScaleIT Bridge - TCP Port 8080" ^
dir=in action=allow protocol=TCP localport=8080 profile=Private ^
description="Allows access to ScaleIT Bridge service from local network"Najprostszy sposób - otwórz przeglądarkę na komputerze klienckim i wejdź na:
http://<IP_MASTER>:8080
Przykład:
http://192.168.1.100:8080
Frontend wspiera automatyczne wykrywanie IP master serwera:
- Otwórz Bridge UI na komputerze klienckim (może być lokalny frontend lub http://IP_MASTER:8080)
- Przejdź do Configuration → Master Server Configuration
- Kliknij "Auto-Detect Master Server"
- Poczekaj na zakończenie skanowania (może zająć kilka minut)
- Jeśli master serwer zostanie wykryty, będzie automatycznie skonfigurowany
- Otwórz Bridge UI na komputerze klienckim
- Przejdź do Configuration → Master Server Configuration
- W sekcji "Manual Configuration" wprowadź:
- IP Address: IP komputera master (np.
192.168.1.100) - Port: Port Bridge (domyślnie
8080)
- IP Address: IP komputera master (np.
- Kliknij "Save Configuration"
- Kliknij "Test Connection" aby sprawdzić połączenie
Jeśli uruchamiasz frontend lokalnie (np. npm run dev), możesz ustawić zmienną środowiskową:
# PowerShell
$env:VITE_BRIDGE_URL="http://192.168.1.100:8080"
npm run dev
# Lub w .env file:
VITE_BRIDGE_URL=http://192.168.1.100:8080Frontend używa następującego priorytetu przy określaniu adresu IP master serwera:
- Manual Configuration - ręcznie ustawiony IP w localStorage (
MASTER_IP) - Auto-detected IP - automatycznie wykryty IP (cache w localStorage
MASTER_IP_AUTO) - Current window hostname - IP z aktualnego URL (jeśli nie jest localhost)
- Fallback - localhost (
127.0.0.1:8080)
- Przejdź do Configuration → Master Server Configuration
- Kliknij "Test Connection"
- Jeśli połączenie jest udane, zobaczysz:
- Status: Connected (zielony badge)
- Informacje o serwerze: hostname, version, network mode, dostępne IPs
# Z komputera klienckiego
$masterIp = "192.168.1.100"
Invoke-WebRequest -Uri "http://$masterIp:8080/health"
Invoke-WebRequest -Uri "http://$masterIp:8080/api/server/info"
# Lub curl (jeśli dostępny)
curl http://192.168.1.100:8080/health
curl http://192.168.1.100:8080/api/server/infoOtwórz w przeglądarce na komputerze klienckim:
http://<IP_MASTER>:8080/health
Powinieneś zobaczyć JSON response:
{
"status": "OK",
"service": "ScaleIT Bridge",
"version": "0.1.5"
}Bridge wspiera trzy tryby dostępu sieciowego:
- Tylko localhost (
127.0.0.1,localhost) - CORS: tylko localhost origins
- Użycie: Development, testowanie lokalne
- Sieć lokalna (prywatne zakresy IP)
- CORS: wszystkie origins z prywatnych IP ranges
- Użycie: Produkcja w sieci lokalnej
Zakresy IP:
192.168.0.0/16(192.168.0.0 - 192.168.255.255)10.0.0.0/8(10.0.0.0 - 10.255.255.255)172.16.0.0/12(172.16.0.0 - 172.31.255.255)127.0.0.0/8(localhost)
- Lista dozwolonych origins zdefiniowana w
ALLOWED_ORIGINS - CORS: tylko origins z listy
- Użycie: Produkcja z kontrolą dostępu
Przykład konfiguracji:
.\nssm.exe set ScaleCmdBridge AppEnvironmentExtra "NETWORK_MODE=restricted"
.\nssm.exe set ScaleCmdBridge AppEnvironmentExtra "ALLOWED_ORIGINS=http://192.168.1.50:5173,http://192.168.1.100:8080"
net restart ScaleCmdBridge-
Sprawdź firewall na master:
netsh advfirewall firewall show rule name="ScaleIT Bridge - TCP Port 8080"
-
Sprawdź czy Bridge działa:
# Na master sc query ScaleCmdBridge Invoke-WebRequest http://localhost:8080/health
-
Sprawdź Network Mode:
.\nssm.exe get ScaleCmdBridge AppEnvironmentExtra | Select-String "NETWORK_MODE"
-
Sprawdź logi:
Get-Content "C:\ProgramData\ScaleCmdBridge\logs\service-stdout.log" -Tail 50
Upewnij się, że NETWORK_MODE=lan (domyślny) lub ALLOWED_ORIGINS zawiera origin klienta.
# Sprawdź Network Mode
.\nssm.exe get ScaleCmdBridge AppEnvironmentExtra
# Jeśli restricted, dodaj origin klienta do ALLOWED_ORIGINS
.\nssm.exe set ScaleCmdBridge AppEnvironmentExtra "ALLOWED_ORIGINS=http://192.168.1.50:5173,http://192.168.1.100:8080"
net restart ScaleCmdBridgeAuto-detection skanuje tylko najpopularniejsze zakresy IP:
192.168.0.1-254192.168.1.1-25410.0.0.1-254
Jeśli master serwer jest w innym zakresie (np. 192.168.2.100), użyj ręcznej konfiguracji IP.
-
Sprawdź czy master serwer jest dostępny z klienta:
# Z komputera klienckiego Test-NetConnection -ComputerName 192.168.1.100 -Port 8080
-
Sprawdź firewall na master:
# Na master netsh advfirewall firewall show rule name="ScaleIT Bridge - TCP Port 8080"
-
Sprawdź czy Bridge nasłuchuje na
0.0.0.0:8080:netstat -ano | findstr :8080 # Powinieneś zobaczyć: 0.0.0.0:8080
- Firewall: Tylko profil "Private" (sieć lokalna), nie "Public" ani "Domain"
- CORS: Automatycznie dozwolone origins z prywatnych IP ranges
- Brak autoryzacji: Dostęp otwarty w sieci lokalnej (można dodać w przyszłości)
- SSL/TLS: Struktura przygotowana (
config/ssl.rs) - Authentication: Struktura przygotowana (
auth/mod.rs) - MQTT: Struktura przygotowana (
mqtt/mod.rs)
Uwaga: Obecna implementacja nie wspiera jeszcze dostępu zewnętrznego (spoza sieci lokalnej). To będzie dostępne w przyszłych wersjach.
- Master: Komputer z Bridge (192.168.1.100:8080)
- Client: Tablet (192.168.1.50)
- Konfiguracja na tablecie:
- Otwórz Bridge UI:
http://192.168.1.100:8080 - Albo skonfiguruj ręcznie w Configuration → Master Server Configuration
- Otwórz Bridge UI:
- Master: Komputer produkcyjny z Bridge (192.168.1.100:8080)
- Client: Laptop deweloperski (192.168.1.75) uruchamiający
npm run dev - Konfiguracja:
Albo ręcznie w UI:
# Na laptopie $env:VITE_BRIDGE_URL="http://192.168.1.100:8080" npm run dev
http://localhost:5173→ Configuration → Master Server Configuration
- Master: Jeden komputer z Bridge (192.168.1.100:8080)
- Clients: Wiele komputerów w sieci lokalnej
- Każdy client może:
- Otworzyć bezpośrednio:
http://192.168.1.100:8080 - Lub skonfigurować lokalny frontend do łączenia się z master
- Otworzyć bezpośrednio:
Nowy endpoint /api/server/info zwraca informacje o master serwerze:
curl http://192.168.1.100:8080/api/server/infoResponse:
{
"hostname": "COMPUTER-NAME",
"ip_addresses": ["192.168.1.100", "10.0.0.5", "127.0.0.1"],
"port": 8080,
"network_mode": "lan",
"version": "0.1.5"
}Ten endpoint jest używany przez frontend do auto-detection master serwera.
- Dostęp zewnętrzny (IP+port spoza sieci lokalnej) - w przygotowaniu
- MQTT integration - struktura przygotowana (
mqtt/mod.rs) - SSL/TLS support - struktura przygotowana (
config/ssl.rs) - Authentication/Authorization - struktura przygotowana (
auth/mod.rs)