Skip to content

text2doc/prinet

Repository files navigation

Uruchomienie monitoringu (Grafana + Prometheus)

Usługi monitoringu są w profilu monitoring. Aby je uruchomić i zweryfikować port 3000:

docker-compose --profile monitoring up -d grafana prometheus
curl -I http://localhost:3000
# Oczekiwany kod HTTP: 302 (redirect do /login)

WAPRO Network Mock - Test Environment

License: MIT Docker Python Node.js MSSQL

Mock środowiska sieciowego do testowania integracji z systemem WAPRO, zawierający symulowane serwery RPI, drukarki ZEBRA i bazę danych MSSQL.

📚 Dokumentacja

Kompletne środowisko testowe do symulacji sieci WAPRO z bazą danych MSSQL, serwerem RPI i drukarkami ZEBRA.

🚀 Szybki start

Wymagania wstępne

  • Docker 20.10+
  • Docker Compose 1.29+
  • Git

Instalacja

# Konfiguracja środowiska
make setup

# Uruchomienie wszystkich serwisów z automatycznymi testami E2E
make start

# Sprawdzenie statusu
make status

# Uruchomienie testów E2E
make test-e2e

# Uruchomienie wszystkich testów
make test

# (Opcjonalnie) Szybsze budowanie obrazów
# Lepsza wydajność: ustaw zmienną środowiskową i uruchom ponownie
# Tip: export COMPOSE_BAKE=true

🏗️ Architektura

wapro-network-mock/
├── docker-compose.yml          # Główna konfiguracja Docker
├── Makefile                   # Automatyzacja zadań
├── mssql-wapromag/           # Baza danych WAPROMAG
├── rpi-server/               # Serwer RPI z GUI i API
├── zebra-printer-1/          # Mock drukarki ZEBRA-001
├── zebra-printer-2/          # Mock drukarki ZEBRA-002
├── test-runner/              # Automatyczne testy
├── monitoring/               # Konfiguracja monitoringu (Grafana + Prometheus)
└── scripts/                  # Skrypty pomocnicze

🌐 Dostępne usługi

Usługa Port Opis
RPI Server GUI 8080 Interfejs użytkownika
RPI Server API 8081 API REST
ZEBRA Printer 1 8091 Interfejs drukarki 1
ZEBRA Printer 2 8092 Interfejs drukarki 2
Grafana 3000 Panel monitoringu
MSSQL Server 1433 Baza danych WAPROMAG

🌐 Dostępne interfejsy

🧪 Testowanie

Uruchamianie testów

# Uruchomienie środowiska z automatycznymi testami E2E
./scripts/start.sh

# Uruchomienie tylko testów E2E (bez restartu środowiska)
./scripts/test-e2e.sh

# Wszystkie testy
make test

# Testy bazy danych
make test-sql

# Testy drukarek
make test-zebra

# Testy integracyjne
make test-integration

Testy E2E (End-to-End)

Skrypt start.sh automatycznie uruchamia kompleksowe testy E2E, które sprawdzają:

  1. MSSQL WAPROMAG

    • Dostępność portu 1433
    • Możliwość wykonania zapytań SQL
  2. RPI Server

    • Dostępność GUI (port 8080)
    • Dostępność API (port 8081)
    • Endpoint /health
  3. ZEBRA Printer 1

    • Interfejs web (port 8091)
    • Socket ZPL (port 9100)
    • API status
  4. ZEBRA Printer 2

    • Interfejs web (port 8092)
    • Socket ZPL (port 9101)
    • API status
  5. Monitoring (opcjonalne)

    • Grafana Dashboard (port 3000)
    • Prometheus (port 9090)
  6. Integracja

    • Połączenie RPI → MSSQL

Preflight i logowanie diagnostyczne

Przed testami wykonywane są preflight-checki i zbiory logów pomocnych w diagnozie:

  • Walidacja docker-compose.yml
  • Sprawdzenie dostępności Dockera i docker-compose
  • Podgląd zajętych portów: 8080, 8081, 8091, 8092, 9100, 9101, 1433, 3000
  • W przypadku timeoutów lub błędów HTTP, skrypty drukują nagłówki odpowiedzi i ostatnie linie logów z odpowiednich kontenerów

Generowanie raportów

Wyniki testów są zapisywane w formacie JUnit XML w katalogu test-results/.

Testowanie ręczne

  1. Testowanie drukarek

    # Wysyłanie przykładowej komendy do drukarki 1
    echo "~HI" | nc localhost 9100
    
    # Wysyłanie etykiety testowej
    echo -e "^XA\n^FO50,50^A0N,50,50^FDTest Label^FS\n^XZ" | nc localhost 9100
  2. Testowanie bazy danych

    # Połączenie z bazą danych
    sqlcmd -S localhost,1433 -U sa -P WapromagPass123!

🏥 Monitoring i diagnostyka

# Stan zdrowia systemu
make health

# Logi wszystkich serwisów
make logs

# Logi konkretnego serwisu
make logs-rpi
make logs-zebra1
make logs-sql

🛠️ Zarządzanie

# Restart systemu
make restart

# Czyszczenie środowiska
make clean

# Backup bazy danych
make backup-db

# Przywracanie bazy danych
make restore-db

📊 Funkcjonalności

RPI Server

  • ✅ Interfejs użytkownika do zarządzania systemem
  • ✅ REST API do komunikacji zewnętrznej
  • ✅ Integracja z bazą danych WAPROMAG
  • ✅ Obsługa wielu drukarek ZEBRA
  • ✅ Panel monitoringu w czasie rzeczywistym

Monitorowanie

  • 🚀 Pulpity nawigacyjne Grafana
  • 📊 Metryki wydajności w czasie rzeczywistym
  • 🔔 Alerty i powiadomienia
  • 📈 Monitorowanie stanu drukarek

Bezpieczeństwo

  • 🔒 Uwierzytelnianie użytkowników
  • 🔑 Bezpieczne przechowywanie haseł
  • 🔄 Automatyczne kopie zapasowe bazy danych

🔄 Zarządzanie

Uruchamianie i zatrzymywanie

# Uruchomienie wszystkich usług
make start

# Zatrzymanie wszystkich usług
make stop

# Restart usług
make restart

# Wyświetlenie statusu
make status

Konserwacja

# Utworzenie kopii zapasowej bazy danych
make backup-db

# Przywrócenie bazy danych z kopii zapasowej
make restore-db

# Czyszczenie środowiska
make clean

🤝 Wsparcie

W przypadku problemów, zapoznaj się z sekcją Rozwiązywanie problemów lub zgłoś nowy problem w zakładce Issues.

📄 Licencja

Ten projekt jest objęty licencją MIT. Szczegóły znajdują się w pliku LICENSE.

  • ✅ Testy połączeń z bazą danych
  • ✅ Wysyłanie komend do drukarek ZEBRA
  • ✅ Diagnostyka systemu
  • ✅ Monitoring w czasie rzeczywistym

Baza danych WAPROMAG

  • ✅ Tabele: Kontrahenci, Produkty, Dokumenty Magazynowe
  • ✅ Stany magazynowe i ruch magazynowy
  • ✅ Konfiguracja drukarek
  • ✅ Szablony etykiet ZPL
  • ✅ Procedury magazynowe

Drukarki ZEBRA Mock

  • ✅ Symulacja protokołu ZPL
  • ✅ Interfejs web do monitorowania
  • ✅ Obsługa podstawowych komend (~HI, ~HS, PING)
  • ✅ Drukowanie etykiet testowych
  • ✅ Logi operacji

System testowy

  • ✅ Testy połączeń sieciowych
  • ✅ Testy komunikacji RPI ↔ SQL
  • ✅ Testy komunikacji RPI ↔ ZEBRA
  • ✅ Testy integracyjne end-to-end
  • ✅ Testy wydajnościowe
  • ✅ Automatyczne raporty

🔧 Konfiguracja

Wszystkie ustawienia można zmienić w pliku .env:

# Database
MSSQL_WAPROMAG_PASSWORD=WapromagPass123!

# Printers
ZEBRA_1_NAME=ZEBRA-001
ZEBRA_2_NAME=ZEBRA-002

# Ports
RPI_GUI_PORT=8080
RPI_API_PORT=8081

🎯 Przypadki użycia

  1. Test komunikacji z WAPROMAG: Weryfikacja połączeń i zapytań SQL
  2. Test drukarek ZEBRA: Sprawdzenie dostępności i drukowania etykiet
  3. Test workflow: Pobranie danych z bazy → generowanie etykiety → drukowanie
  4. Test wydajności: Obciążenie systemu wieloma równoczesnymi operacjami
  5. Test diagnostyki: Monitorowanie stanu wszystkich komponentów

📝 Wymagania

  • Docker Engine 20.10+
  • Docker Compose 2.0+
  • 4GB RAM (zalecane 8GB)
  • 10GB przestrzeni dyskowej

🆘 Rozwiązywanie problemów

# Sprawdzenie logów
make logs

# Reset środowiska
make clean && make setup && make start

# Test połączeń
make health

# Terminal do debugowania
make shell-rpi
make shell-sql