Hermes Agent na tanim VPS: konfiguracja i wymagania
Uruchomienie Hermes Agent nie wymaga GPU, gdyż model działa zewnętrznie. Dowiedz się, jak skonfigurować VPS za 5 USD, użyć ProtectSystem=strict w systemd oraz zabezpieczyć IPv6 w UFW.
Czym jest Hermes Agent
Hermes Agent to samodzielnie hostowany agent AI od Nous Research, wydany w lutym 2026 roku. Uruchamia się go na własnym serwerze, gdzie utrzymuje trwałą pamięć o projektach, tworzy własne umiejętności wielokrotnego użytku w trakcie pracy i komunikuje się przez aplikacje czatowe, takie jak Telegram czy Discord. Jest niezależny od modelu, więc można go skierować na dowolny preferowany model językowy; jest przy tym na tyle lekki, że działa na VPS za 5 USD, w Docker lub przez SSH. Ten podział, w którym model działa zewnętrznie, a pętla operacyjna, narzędzia i pamięć znajdują się na Twoim serwerze, sprawia, że Hermes jest raczej stelażem dla agenta niż samym modelem, co pozwala na uruchomienie go na niewielkim serwerze.
Jak każdy agent, zyskuje na wartości dzięki działaniu w Twoim imieniu, dlatego należy go skonfigurować z należytą starannością. Agent, który zapamiętuje, uczy się i wykonuje zadania, jest działającym w tle procesem z realnym dostępem do serwera. Niniejszy przewodnik opisuje bezpieczną instalację, a zastosowane tu techniki utwardzania są identyczne z tymi, które stosuje się przy bezpiecznym uruchamianiu OpenClaw.
Instalacja jednym poleceniem i powody, dla których warto najpierw zapoznać się z jej treścią
Hermes instaluje się za pomocą jednego polecenia:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bashJest to wygodne, ale stanowi również wzorzec, który warto uszanować. Przesyłanie potokiem skryptu bezpośrednio z Internetu do powłoki powoduje wykonanie całej jego zawartości z uprawnieniami użytkownika, który go uruchomił. Przed uruchomieniem skryptu na serwerze produkcyjnym należy go pobrać, przeczytać i wykonać jako dedykowany użytkownik, a nie jako root:
curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o hermes-install.sh
less hermes-install.shNie chodzi tutaj o brak zaufania do samego Hermes. Jest to nawyk, który chroni każdą instalację curl | bash przed staniem się najsłabszym ogniwem w konfiguracji.
Uruchomienie z uprawnieniami użytkownika bez przywilejów
Uruchamiaj Hermes jako osobne konto systemowe, nigdy jako root, aby błąd lub niepożądana instrukcja nie wpłynęły na resztę systemu. Utwórz użytkownika bez powłoki logowania:
sudo useradd --system --home /opt/hermes --shell /usr/sbin/nologin hermesZainstaluj Hermes w /opt/hermes i ustaw to konto jako właściciela. Oficjalny instalator instaluje oprogramowanie dla użytkownika, który go uruchamia. Dlatego pobrany skrypt należy uruchomić jako użytkownik hermes, na przykład sudo -u hermes bash hermes-install.sh. Pliki zostaną zapisane w katalogu domowym tego użytkownika, a nie w katalogu domowym bieżącego użytkownika. Uzasadnienie jest takie samo jak w przypadku uruchamiania usług jako użytkownik bez uprawnień uprzywilejowanych: konto, na którym działa agent, wyznacza maksymalny zakres szkód, które może spowodować. Konto systemowe to tylko część problemu. Własne ustawienia agenta określają, ile operacji wykona bez wcześniejszego pytania. To właśnie wyjaśnia znaczenie trybów uprawnień Claude Code, gdy agent działa na serwerze, przy którym użytkownik nie przebywa. Jeśli serwer ma w przyszłości obsługiwać więcej osób niż tylko użytkownika, OneCLI rozszerza zasadę jednego konta na agenta na cały zespół, przydzielając każdej osobie własnego agenta działającego w izolowanym środowisku, podczas gdy klucze modelu pozostają w jednej bramie i nie trzeba ich kopiować.
Zabezpiecz serwer firewallem i odizoluj sekrety
Hermes wykonuje swoje zadania, łącząc się z modelem oraz podłączonymi aplikacjami czatu, dlatego nie musi akceptować połączeń przychodzących z Internetu. Należy skonfigurować firewall z domyślną polityką odrzucania (default-deny) przed serwerem:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableZwróć uwagę na lukę w zaporze IPv6, ponieważ reguły obejmujące wyłącznie IPv4 mogą pozostawić usługę dostępną przez IPv6. Jeśli agent musi uzyskać dostęp do zasobu dostępnego tylko w sieci domowej, takiego jak NAS lub lokalna baza danych, rozgłaszanie tej sieci do tailnetu za pomocą routera podsieci umożliwia dostęp przez połączenie wychodzące zamiast otwierania portu przychodzącego. Klucz API modelu i wszelkie tokeny czatu należy przechowywać w pliku, który może odczytać tylko użytkownik hermes (tryb 600), oraz ładować je do usługi zamiast wklejać do wiersza poleceń, gdzie trafią do historii powłoki. Taki plik z sekretami jest równie małym, lecz cennym celem jak token administratora chroniący self-hosted password manager, a zasady opisane w etapie wzmacniania zabezpieczeń Vaultwarden mają tu zastosowanie: należy chronić jeden plik odblokowujący wszystko inne oraz równie starannie chronić jego kopie zapasowe. Uprawnienia plików chronią przed innymi użytkownikami systemu, ale nie przed dostawcą znajdującym się poniżej tej warstwy. Jeśli klucze przechowywane przez agenta są na tyle wrażliwe, że zmienia to ocenę ryzyka, szyfrowana pamięć i atestacja decydują o tym, czy firma hostingowa może odczytać je z pamięci RAM.
Uruchamianie Hermes jako zabezpieczona usługa systemd
Jednostka systemd utrzymuje działanie Hermes po wylogowaniu oraz po restarcie systemu, restartuje proces w razie awarii i pozwala na zastosowanie piaskownicy na poziomie jądra, co ogranicza dostęp aplikacji do zasobów. Włącz NoNewPrivileges, ProtectSystem=strict, PrivateTmp oraz ProtectHome, aby ograniczyć skutki ewentualnego przejęcia kontroli nad procesem.
Wygeneruj zabezpieczoną jednostkę w tym miejscu, a następnie skopiuj ją do /etc/systemd/system/hermes.service. Jednostka uruchamia hermes gateway, czyli długo działający proces łączący aplikacje czatu; po instalacji wykonaj hermes --help, aby potwierdzić poprawność polecenia oraz ścieżkę do pliku binarnego w posiadanej wersji przed włączeniem usługi:
Dyrektywy oraz kroki daemon-reload i enable --now zostały omówione w uruchamianie programu jako usługi systemd:
sudo systemctl daemon-reload
sudo systemctl enable --now hermesPrzykład zastosowania tego samego schematu dla innego agenta znajduje się w uruchamianie dsh w trybie bezgłowym pod systemd, gdzie szerzej omówiono reguły Restart oraz polecenia journalctl, które będą przydatne, gdy usługa ulegnie awarii w nocy. Co więcej, nie trzeba czekać do rana, aby się o tym dowiedzieć: jednostka OnFailure=, która wysyła powiadomienie na własny serwer ntfy, dostarczy alert na telefon w momencie, gdy Hermes przestanie podejmować próby restartu.
Jeśli zamiast instalacji natywnej preferujesz nadzór systemd nad kontenerem, utrzymywanie KiroCrew jako przypiętego kontenera pozwala osiągnąć ten sam efekt odporności na restarty, przy jednoczesnym zachowaniu stałej wersji obrazu.
Zabezpieczanie serwera
Zakończ proces, zabezpieczając główne wejście. Przejdź na uwierzytelnianie SSH wyłącznie za pomocą kluczy i wyłącz logowanie na konto root, zgodnie z instrukcją w SSH hardening on a VPS, aby uniemożliwić odgadnięcie danych logowania do konta używanego do zarządzania serwerem. Agent utrzymujący trwałą pamięć wymaga ochrony, a najtańszym sposobem jest zapewnienie, że nikt niepowołany nie zaloguje się na serwer, na którym działa.
Gdy serwer jest już zabezpieczony, kolejną funkcjonalnością, którą warto dodać, jest wyszukiwarka internetowa. Skierowanie agenta na własną instancję SearXNG pozwala zachować zapytania wewnątrz własnej infrastruktury, kosztem konieczności samodzielnej weryfikacji stron. Hermes rzadko jest jedynym agentem na serwerze. Jeśli uruchamiasz tam również Claude Code, dwie sesje mogą przekazywać sobie zadania bezpośrednio, zamiast kierować każde przekazanie przez użytkownika. Jeśli kolejnym dodanym agentem będzie narzędzie analizujące kod, a nie aplikacje czatowe, uruchomienie skanów bezpieczeństwa open-kritt na tym samym serwerze wpisuje się w ten sam schemat: przypięta wersja oprogramowania, dedykowane konto oraz interfejs WWW dostępny przez tunel SSH zamiast otwartego portu.
Jeśli wolisz zrozumieć mechanikę działania niż uruchamiać gotowego agenta, budowa własnego agenta AI na VPS przeprowadzi Cię przez ten proces krok po kroku. Jeśli terminologia użyta w tym przewodniku jest nowa, etapowa ścieżka nauki o agentach AI przedstawia pętlę działania, narzędzia, pamięć i bezpieczeństwo w kolejności ich wzajemnego powiązania, dzięki czemu decyzje podejmowane przez Hermes przestaną wydawać się magiczne.
FAQ
Czy mogę uruchomić Hermes Agent na tanim VPS?
Tak. Hermes został zaprojektowany do działania na małym serwerze, a VPS za 5 USD wystarczy do obsługi osobistego agenta działającego w trybie ciągłym. Agent komunikuje się z modelem językowym oraz aplikacjami czatowymi, zamiast obsługiwać duży ruch, dlatego zużywa niewiele zasobów. Przydziel mu osobnego użytkownika, skonfiguruj firewall oraz usługę systemd, a mały VPS poradzi sobie z tym bez problemu. Jeśli posiadasz już maszynę w domu, najpierw porównaj jej koszty sprzętowe i energetyczne z miesięczną opłatą, ponieważ domowy serwer Proxmox oraz wynajęty VPS mają różne zalety.
Czy jednowierszowy skrypt instalacyjny jest bezpieczny?
Instalacja za pomocą curl | bash jest wygodna, jednak dobrą praktyką jest pobranie skryptu, przejrzenie jego treści przed uruchomieniem oraz wykonywanie go jako dedykowany użytkownik, a nie root. Dzięki temu instalator przekazywany potokiem, niezależnie od projektu, nie uzyska większych uprawnień niż te, które posiada ograniczone konto. Nie jest to specyficzne dla Hermes; jest to dobra praktyka przy każdej instalacji tego typu.
Jak uruchomić Hermes bez uprawnień root?
Utwórz dedykowanego użytkownika systemowego bez powłoki logowania, zainstaluj Hermes w katalogu należącym do tego użytkownika, na przykład /opt/hermes, i uruchom usługę na tym koncie. Jeśli agent zostanie przejęty, szkody będą ograniczone do zasobów dostępnych dla tego jednego konta.
Jak utrzymać działanie Hermes po wylogowaniu?
Uruchom go jako usługę systemd. Plik jednostki uruchamia Hermes podczas startu systemu, restartuje go w razie awarii i utrzymuje działanie po zakończeniu sesji SSH, podczas gdy opcje piaskownicy (sandboxing) systemd ograniczają dostęp procesu do zasobów. Wygeneruj zabezpieczoną jednostkę za pomocą powyższego narzędzia i włącz ją poleceniem systemctl enable --now hermes.
Czy Hermes Agent wymaga GPU?
Nie. Hermes to środowisko uruchomieniowe agenta, a nie model językowy, więc działa poprawnie na małym VPS wyposażonym tylko w CPU. Intensywne obliczenia odbywają się tam, gdzie uruchomiony jest model, co zazwyczaj oznacza zewnętrzny interfejs API, z którym się łączysz. Jeśli chcesz również samodzielnie hostować model na tej samej maszynie, dobierz parametry serwera pod kątem modelu, a nie samego Hermes. W przypadku hostowania modelu wyłącznie na CPU, zastosowanie mają wartości z przewodnika Ollama.