Skip to content

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

git clone https://github.com/text2doc/prinet

# 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 testów WebEnv
make test-webenv

# 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/ … 4/     # 4 mocki drukarek ZEBRA-001 … 004
├── test-runner/              # Automatyczne testy
├── monitoring/               # Konfiguracja monitoringu (Grafana + Prometheus)
├── docs/PRINTERS.md          # Dokumentacja drukarek
└── scripts/                  # Skrypty pomocnicze (m.in. test-e2e.sh)

🌐 Dostępne usługi (domyślne porty z .env)

Usługa Port Opis
RPI Server GUI 8082 Interfejs użytkownika
RPI Server API 28081 API REST
ZEBRA Printer 1 web 28091 / ZPL 9100 Mock ZEBRA-001
ZEBRA Printer 2 web 28092 / ZPL 9101 Mock ZEBRA-002
ZEBRA Printer 3 web 28093 / ZPL 9102 Mock ZEBRA-003
ZEBRA Printer 4 web 28094 / ZPL 9103 Mock ZEBRA-004
WebEnv Editor 8888 Edytor konfiguracji .env
Grafana 3000 Panel monitoringu (profil monitoring)
MSSQL Server 1433 Baza danych WAPROMAG

Szczegóły: docs/PRINTERS.md.

Podsieć / IP produkcyjne

  • Domyślnie mock używa izolowanej sieci 172.25.9.0/24 (bezpieczne na dev).
  • IP kontenerów są w .env: NETWORK_SUBNET, ZEBRA_N_IPV4, MSSQL_IPV4, RPI_IPV4.
  • Profil z mapą biurową 192.168.8.0/24 (.20 MSSQL, .165–.168 Zebra): .env.production-lan.exampletylko gdy na hoście nie ma kolidującej sieci Docker (np. 192.168.0.0/20).
  • Opis i ograniczenia: docs/PRINTERS.md — Podsieć produkcyjna.

🌐 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 (porty z .env, domyślnie GUI 8082 / API 28081)

    • Endpoint /health (JSON ze statusem)
    • Integracja RPI → MSSQL oraz RPI → każda włączona Zebra
  3. ZEBRA Printer 1–4 (gdy ZEBRA_N_ENABLED=true)

    • Interfejs web + /api/status
    • Socket ZPL na unikalnym porcie hosta
  4. Monitoring (opcjonalne)

    • Grafana Dashboard (port 3000)
    • Prometheus (port 9090)
  5. 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

# WebEnv - edytor konfiguracji .env
make webenv_start    # Uruchom w tle
make webenv_stop     # Zatrzymaj
make webenv          # Uruchom (blokujący)

# 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

Releases

Packages

Contributors

Languages