Uruchamiamy własny serwer NVDA

 

Dodatek do NVDA, pozwalający na pracę zdalną to w moim przekonaniu niezwykle użyteczne narzędzie. Dzięki niemu jestem w stanie wykonywać wiele czynności bez potrzeby fizycznej obecności przy serwisowanym komputerze, czyli dokładnie w ten sam sposób, w jaki robią to osoby widzące korzystając z programów takich jak Tight VNC czy TeamViewer. Elementem, którego od samego początku brakowało i nadal brakuje w oficjalnym pakiecie jest możliwość uruchomienia własnego, niezależnego od NVDA serwera, co obiecywali twórcy dodatku. Na szczęście ze względu na otwarty kod źródłowy prace nad serwerem zostały podjęte niezależnie od oficjalnego rozwiązania NVDA Remote i każdy chętny może uruchomić swoją własną instancję serwera NVDA Remote. Jako, że oprogramowanie serwera do poprawnego działania wymaga przeprowadzenia kilku dodatkowych operacji, w niniejszym tekście postaram się opisać tę procedurę krok po kroku wierząc, że będzie ona dla kogoś przydatna. W tym miejscu mała uwaga: Opisywać będę tylko i wyłącznie proces instalacji serwera w środowisku Windows, gdyż wierzę, że osoby zaprzyjaźnione z systemami GNU Linux poradzą sobie z tym bez większych problemów.

Potrzebne komponenty

Zaczynamy od pobrania serwera:

https://codeload.github.com/jmdaweb/NVDARemoteServer/zip/master

Korzystając z tego odnośnika pobierzemy zawsze aktualną paczkę z najnowszą wersją serwera, więc warto zapisać sobie gdzieś to łącze i od czasu do czasu aktualizować.

Serwer napisany jest w języku python, dlatego należy pobrać także interpreter tego języka.

https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi

W trakcie instalacji warto zaznaczyć opcję „Add python.exe to path”, w tym celu w kroku wyboru komponentów instalacyjnych stajemy strzałką kursora na tej pozycji, wciskamy spację i wybieramy "entire feature will be installed on local harddrive”.

Dodatkowo, należy jeszcze zainstalować Microsoft Visual C++ Compiler for Python 2.7, który jest dostępny pod adresem:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266

Gdy już zainstalowaliśmy wszystkie zewnętrzne komponenty, pozostaje nam jeszcze doinstalować 2 moduły Pythona, mianowicie py2exe i pywin32. W tym celu otwieramy konsolę cmd i wpisujemy następujące polecenia, zatwierdzając każde klawiszem enter.

cd c:\python27

pip install py2exe

pip install pypiwin32

Za pomocą pierwszej komendy przechodzi się do katalogu instalacyjnego Pythona, a dwie pozostałe wywołują menedżera pakietów Pip i instalują odpowiednie komponenty.

Teraz wystarczy już tylko wpisać

python c:\NVDARemoteServer-master\setup_windows.py py2exe zakładając, że katalog z komponentami serwera umieściliśmy w lokalizacji c:\NVDARemoteServer-master, całość wygenerowanych plików będzie się znajdować w podkatalogu dist.

Generujemy własny certyfikat

Ważną ze względów bezpieczeństwa czynnością, jest wygenerowanie własnego certyfikatu dla naszego serwera. W tym celu uruchamiamy plik NVDARemoteCertificate.cmd z podkatalogu dist, a następnie postępujemy zgodnie ze wskazówkami kreatora, czyli po prostu wypełniamy odpowiednie pola naszego certyfikatu.

Zarządzanie serwerem

Do kontroli naszego serwera posłuży plik service_manager.cmd, dzięki któremu możemy nasz serwer uruchomić, zatrzymać, zainstalować go jako usługę systemową, usunąć usługę, zatrzymać bądź wznowić jej działanie. Możemy także zadecydować o logowaniu zdarzeń.

Pamiętajmy o porcie

W sytuacji, gdy nasz komputer nie jest podłączony bezpośrednio do Internetu a korzystamy z pośrednictwa routera, należy pamiętać o przekierowaniu portu 6837, w przeciwnym wypadku do naszego serwera będą miały dostęp tylko i wyłącznie komputery z sieci lokalnej. Z drugiej strony, jeśli nie chcemy z nikim dzielić się naszym serwerem, należy zablokować ten port, bowiem wystawiając serwer do Internetu nie mamy w zasadzie żadnej kontroli nad tym, kto ma prawo z niego korzystać. W każdym razie nie pozwala na to oprogramowanie samego serwera.

Michał Dziwisz

 

Projekt współfinansowany ze środków Państwowego Funduszu Rehabilitacji Osób Niepełnosprawnych oraz Gminy Miejskiej Kraków