Aplikacja wewnętrzna na serwerze bez dostępu do internetu: jak to zrobić porządnie

W skrócie

Serwer bez dostępu do internetu to częsty wymóg w firmach, które pilnują danych. Da się na nim postawić nowoczesną aplikację: zależności pobiera się wcześniej na innym komputerze, wybiera biblioteki bez zależności systemowych, a aktualizacje wgrywa jako sprawdzoną paczkę. Trzeba tylko od początku zaplanować instalację, aktualizacje, kopie i diagnostykę.

Najważniejsze
  • Zależności pobierasz na komputerze z internetem i przenosisz jako katalog gotowych paczek.
  • Wybieraj biblioteki, które instalują się bez kompilatora i dodatkowych programów systemowych.
  • Aktualizacja to sprawdzona paczka z numerem wersji i planem powrotu, a nie kopiowanie plików na żywo.
  • Logi, kopie i monitoring trzeba zaplanować lokalnie, bo zewnętrzne usługi odpadają.

Dlaczego firmy tego chcą

Serwer odcięty od internetu to mniejsza powierzchnia ataku i prostsza odpowiedź na pytanie, gdzie są dane. Tak często działają systemy z danymi osobowymi, kadrowymi albo produkcyjnymi. Aplikacja na takim serwerze nadal może korzystać z sieci firmy: bazy danych, katalogu użytkowników czy firmowego serwera poczty.

Uwaga

Brak internetu nie zwalnia z aktualizacji. Serwer odcięty od sieci też potrzebuje łatek bezpieczeństwa, tylko trafiają one inną drogą: pobrane i sprawdzone na zaufanym komputerze.

Zależności bez internetu

  1. Pobierz paczki na komputerze z internetem

    Najlepiej z tą samą wersją Pythona i tym samym systemem co serwer. Polecenie pip download zapisuje wszystkie zależności do katalogu.

  2. Sprawdź, czy to gotowe koła

    Pliki .whl instalują się bez kompilowania. Jeśli w katalogu jest archiwum ze źródłami, na serwerze bez kompilatora instalacja się nie uda.

  3. Przenieś katalog na serwer

    Razem z plikiem requirements.txt, w którym wersje są przypięte.

  4. Zainstaluj bez sieci

    pip install z opcjami --no-index i --find-links bierze paczki wyłącznie z lokalnego katalogu.

Instalacja offline
# na komputerze z internetem (ta sama wersja Pythona co na serwerze)
pip download -r requirements.txt -d paczki --only-binary=:all: --platform win_amd64 --python-version 3.12

# na serwerze, bez dostępu do internetu
pip install --no-index --find-links paczki -r requirements.txt
Wskazówka

Biblioteki czysto pythonowe albo dostarczane jako gotowe koła oszczędzają najwięcej kłopotów. Dwa przykłady z praktyki: do LDAP biblioteka ldap3 zamiast python-ldap, która wymaga bibliotek systemowych, a do zamiany stron PDF na obrazy PyMuPDF, które przychodzi jako jedno koło.

Serwer aplikacji na Windows

Na Linuksie standardem dla aplikacji w Pythonie jest gunicorn, ale on nie działa na Windows. Tam sprawdza się Waitress, napisany w czystym Pythonie. Przed nim stoi serwer WWW, na Windows zwykle IIS, jako reverse proxy: obsługuje HTTPS i adres strony, a ruch przekazuje do aplikacji.

Lista kontrolna0 z 5

Aktualizacje bez internetu

  1. Wersja z numerem i listą zmian

    Każda aktualizacja to paczka: kod, zależności i opis, co się zmieniło.

  2. Test na kopii

    Środowisko testowe z kopią bazy. Aktualizacja, która przeszła tam, rzadko zaskakuje na produkcji.

  3. Kopia bazy tuż przed aktualizacją

    Niezależnie od codziennych kopii zapasowych.

  4. Instalacja i migracje bazy

    W zaplanowanym oknie, z komunikatem dla użytkowników.

  5. Plan powrotu

    Poprzednia paczka i kopia bazy pod ręką. Jeśli coś nie działa, wracasz w kilka minut, a poprawkę robisz spokojnie.

Diagnostyka i porządek na miejscu

Lista kontrolna0 z 6

Pojęcia z tego poradnika

Reverse proxy

Serwer, który przyjmuje ruch z sieci i przekazuje go do aplikacji działającej w tle. Zwykle obsługuje też HTTPS i adres strony.

Koło (wheel)

Gotowa do instalacji paczka biblioteki Pythona, plik .whl. Instaluje się bez kompilowania, także na serwerze bez dostępu do internetu.

Pytania i odpowiedzi

Czy aplikacja bez internetu może wysyłać maile?

Tak, przez firmowy serwer pocztowy w sieci wewnętrznej. Odcięcie dotyczy internetu, a nie sieci firmy.

Jak instalować łatki bezpieczeństwa?

Tak samo jak zależności: pobrane na zaufanym komputerze, sprawdzone i przeniesione. Dla Windows firmy często używają własnego serwera aktualizacji (WSUS).

Czy na takim serwerze da się uruchomić AI?

Tak. Lokalny model językowy działa bez internetu, jeśli serwer ma odpowiednią kartę graficzną. Szczegóły są w poradniku o sprzęcie do lokalnego modelu.

Źródła i dokumentacja

Usługa związana z tym poradnikiem

Infrastruktura IT i administracja serwerami

Opisz problem

Pytanie 1 z 5

Co najbardziej chcesz usprawnić?

Wybierz to, co jest najbliżej. Nie musi pasować idealnie.

Wstępne podsumowanie

To wstępna sugestia na podstawie kilku odpowiedzi, a nie diagnoza. Nic nie jest zapisywane, dopóki nie wyślesz wiadomości.