Poradnik po odcinku

Własny zespół botów AI.
Na Twoim serwerze.

Rakazo to open-source'owy odpowiednik agentów, które siedzą i pracują za Ciebie w tle: każdy bot ma pamięć, własne rutyny i własny komputer - kontener z pulpitem, przeglądarką i terminalem, w którym sam klika. Model podpinasz swój. Wszystko stoi na Twoim VPS-ie, a nie w cudzej chmurze.

Zamiast wykładu o Dockerze dostajesz jedną wklejkę do Claude Code. Agent instaluje, wystawia adres po HTTPS, zamyka rejestrację i pokazuje Ci działającego bota. Ty tylko potwierdzasz i podajesz trzy rzeczy: domenę, model i e-mail.

⏱ ok. 30 minut 🧑‍💻 zero programowania 10 faz robi agent 🔓 open source · Apache 2.0
Nie chcesz czytać? Zjedź do Kroku 2, skopiuj prompt i wklej go w Claude Code.
Nie masz jeszcze serwera? Ja korzystam z VPS-ów od Hostingera (partner technologiczny kanału) - kod ROBERTHOST daje dodatkowy rabat.
ZANIM ZACZNIESZ

Czego potrzebujesz

⚠️

Jedna żelazna zasada: przez cały proces trzymaj otwarte drugie okno terminala zalogowane na serwer. Wizard nie dotyka SSH ani firewalla, ale instalacja Dockera i restart usług to moment, w którym zapasowe drzwi zawsze się przydają.

Ile to potrwa? Sama instalacja Rakazo to u mnie ok. 7 minut od pierwszej komendy do działającego adresu HTTPS - z czego 2-3 minuty to samo pobieranie obrazów (6,8 GB). Doliczy się do tego czas na Twoje decyzje i, jeśli serwer nie jest jeszcze zabezpieczony, kwadrans na krok zero.

Ile to kosztuje? Samo Rakazo jest darmowe (open source, licencja Apache 2.0, repozytorium elie222/rakazo). Płacisz tylko za serwer i za tokeny modelu, który podepniesz. Nie ma tu żadnej subskrypcji pośrednika.

KROK 1 / 3

Otwórz Claude Code w pustym folderze

Nowy folder, żeby agent miał czyste biurko. Wpisz w terminalu na swoim komputerze (nie na serwerze):

Twój komputer · terminal
mkdir rakazo-vps && cd rakazo-vps && claude

Po chwili patrzysz na okno rozmowy z agentem. To wszystko, co musisz umieć z terminala.

Pracujesz w aplikacji desktopowej Claude Code? Terminal nie jest Ci w ogóle potrzebny: utwórz pusty folder w Finderze albo Eksploratorze, otwórz go w apce jako nową sesję lokalną i przejdź od razu do Kroku 2.

KROK 2 / 3

Wklej agentowi ten prompt

Całość, jednym wklejeniem. W prompcie jest wszystko: skąd wziąć wizard, w jakiej kolejności iść i czego pilnować, żebyś nie wystawił do internetu czegoś, czego nie chcesz.

Prompt · wklej do Claude Code
Sklonuj repozytorium https://github.com/Szewowsky/rakazo-vps.git do bieżącego katalogu,
przeczytaj plik .claude/commands/rakazo-setup.md i przeprowadź mnie przez opisany tam wizard
instalacji Rakazo na moim serwerze VPS - dokładnie według jego kolejności faz od F0 do F9
i jego zasad bezpieczeństwa.

Idź krok po kroku: czekaj na wynik każdej komendy i nie przechodź dalej, jeśli test fazy
nie przeszedł. Zacznij od zebrania danych (Faza F0: adres serwera, użytkownik, domena,
e-mail do certyfikatu), potem zrób audyt PRZED skryptem scripts/check.sh, następnie
instalację, TLS, zamknięcie rejestracji i audyt PO.

Nie zmieniaj mojej konfiguracji SSH ani reguł firewalla poza otwarciem portów 80 i 443.
Nie wypisuj w czacie zawartości pliku .env ani żadnych sekretów. Na końcu pokaż mi
zestawienie: co było na czerwono, a co jest teraz na zielono.

Agent zapyta Cię o adres serwera, użytkownika, domenę i e-mail do certyfikatu. Odpowiadasz normalnie, po ludzku - resztę robi sam.

KROK 3 / 3

Co się będzie działo (i gdzie masz coś do powiedzenia)

Dziesięć faz. Przy trzech z nich agent się zatrzyma i zapyta - są oznaczone na pomarańczowo.

F0

Zbierz dane Twoja decyzja

Agent pyta o adres serwera, użytkownika i port SSH, wybraną domenę i e-mail, na który Let's Encrypt wyśle ostrzeżenia o certyfikacie. Rekord A tej nazwy musi już wskazywać na ten serwer - jeśli nie wskazuje, agent zatrzymuje się tutaj, zanim cokolwiek zainstaluje.

F1

Test SSH i wymagania serwera

Najpierw logowanie po SSH i sprawdzenie sudo, potem skrypt scripts/check.sh w trybie „przed". Wszystko, co dopiero ma powstać - Docker, kontenery, certyfikat - jest wtedy żółte, a nie czerwone: to punkt odniesienia, do którego wrócimy na końcu.

F2

Docker Engine i Compose

Docker Engine plus wtyczka Compose, jeśli ich nie ma. Rakazo to kilka współpracujących kontenerów - bez tego ani rusz.

F3

Instalacja z gotowych obrazów i .env

Agent pobiera oficjalny instalator, wpisuje Twoją domenę w cztery miejsca w .env (adres publiczny dla logowania, dla przeglądarki, dla API i samą nazwę hosta) i dopiero wtedy startuje stack. Żadnego kompilowania, obrazy są gotowe - trzeba je tylko ściągnąć, 6,8 GB, u mnie 2-3 minuty. Listy dozwolonych adresów e-mail celowo nie ustawia - w tej wersji Rakazo włącza ona potwierdzanie adresu mailem, a instalacja nie ma skąd tego maila wysłać.

F4

HTTPS przez Caddy'ego

Panel Rakazo słucha wyłącznie na pętli lokalnej serwera - z internetu nie da się do niego dobić bezpośrednio. Agent otwiera w firewallu tylko 80 i 443, stawia przed panelem Caddy'ego, który sam wyrabia certyfikat Let's Encrypt, a potem sprawdza, że nic poza tym nie wycieka na świat. Na koniec puka nie tylko w stronę, ale i w samo API - bo strona odpowiada „200" nawet wtedy, gdy backend leży.

F5

Pierwsze konto i zamknięcie drzwi Twoja decyzja

Wchodzisz na swój adres i rejestrujesz się. Pierwszy zarejestrowany użytkownik zostaje właścicielem instalacji - więc zrób to od razu, zanim ktokolwiek inny pozna adres. Przez te kilka minut rejestracja jest otwarta dla każdego i to jest świadoma decyzja: alternatywa, czyli lista dozwolonych adresów, zamyka Cię przed własnym kontem. Zaraz potem agent wyłącza rejestrację i sprawdza, że obcy e-mail dostaje odmowę. Nie rób w tym miejscu przerwy na kawę.

F6

Podpięcie modelu Twoja decyzja

Albo klucz OpenRouter, albo logowanie OAuth kontem dostawcy - w obu wypadkach wklejasz go sam, w panelu, żeby nie przechodził przez czat. Agent zapyta, którą drogę wybierasz, i sprawdzi, czy model odpowiada.

F6b

Aplikacje przez Composio Opcjonalnie

Model to mózg, integracje to ręce. Jeden darmowy klucz Composio (koniecznie z trybu PLATFORM, prefiks ak_) wklejasz sam w panelu Rakazo w zakładce Integrations, a potem łączysz aplikacje - GitHub, YouTube, Gmail, Notion - logowaniem OAuth w oknie, które się otworzy. Połączenia są wspólne dla całej instalacji, więc bot dostaje tylko te, które mu włączysz. Agent nie widzi klucza; sprawdza tylko, czy katalog aplikacji się ładuje i czy bot zwraca prawdziwe dane. Szczegóły: potknięcie 02.

F7

Test komputera bota

Agent zleca botowi zadanie, które wymaga otwarcia przeglądarki - żebyś zobaczył, jak jego komputer naprawdę startuje. Kontener budzi się dopiero przy narzędziach graficznych, samo pisanie wiadomości go nie rusza.

F8

Pierwszy bot z rutyną

Rutyna to zadanie o stałej porze, na przykład poranny przegląd jednej strony z linkami. Agent nie każe Ci czekać do rana - odpala ją ręcznie, żebyś od razu zobaczył wynik w wątku bota.

F9

Backup, aktualizacje i audyt PO

Kopia wolumenów i .env, komendy do aktualizacji obrazów i wskazanie sejfu sekretów w panelu, do którego wpisujesz klucze do zewnętrznych API. Na koniec ten sam skrypt audytu jeszcze raz, tym razem na zielono.

Przy każdej ryzykownej zmianie agent zatrzymuje się i pyta. Jeśli jakaś faza się wysypie, nie brnie dalej na ślepo - pokazuje błąd i czeka na Ciebie. Tak jest napisany wizard.

SPRAWDŹ, CZY ZADZIAŁAŁO

Czerwone ma być zielone

Audyt odpalasz sam, kiedy chcesz - to zwykły skrypt, który tylko czyta i niczego nie zmienia:

Serwer · terminal
bash scripts/check.sh --before   # przed instalacją
bash scripts/check.sh            # po instalacji

Dziewięć pozycji. Tak wyglądają przed instalacją i tak mają wyglądać po niej:

Co sprawdzamyPrzedPoDlaczego to ważne
Docker i Compose [WARN] [PASS] Bez silnika kontenerów nic nie wystartuje. Przed instalacją to żółty, nie czerwony - Docker jest po prostu jeszcze do zrobienia.
Porty 80 i 443 otwarte i wolne [WARN] [PASS] Let's Encrypt puka na 80, użytkownicy wchodzą na 443. Skrypt sprawdza też, czy ktoś już na nich nie siedzi - jeśli masz na serwerze inny serwer WWW, dowiesz się o tym tutaj, a nie w połowie instalacji.
Port 5173 tylko lokalnie [n/d] [PASS] Panel ma być widoczny wyłącznie przez Caddy'ego. Gdyby wisiał na publicznym adresie, ktoś wszedłby do niego bez szyfrowania, z pominięciem certyfikatu.
Kontenery w stanie healthy [n/d] [PASS] Baza, API, worker i panel muszą stać wszystkie naraz.
Adres HTTPS odpowiada 200 [FAIL] [PASS] Certyfikat wydany, domena działa, aplikacje się połączą.
Rejestracja zamknięta [FAIL] [PASS] Adres jest publiczny. Otwarta rejestracja to zaproszenie dla przypadkowych osób do Twoich botów i Twoich tokenów.
Uprawnienia pliku .env = 600 [n/d] [PASS] W środku są wszystkie sekrety i klucz szyfrujący. Czyta go tylko właściciel.
Wolne miejsce na dysku [WARN] [PASS] Obrazy plus komputery botów potrafią urosnąć. Poniżej kilku GB zapasu zaczynają się dziwne błędy.
Wolna pamięć RAM [WARN] [PASS] Każdy aktywny komputer bota to 1-2 GB. Ten wiersz mówi Ci, ilu botów naraz utrzymasz.

Cztery szybkie testy własnoręczne, dla spokoju ducha (podmień dane na swoje):

Twój komputer i serwer · terminal
# 1. adres odpowiada po HTTPS (z Twojego komputera):
curl -I https://rakazo.twojadomena.pl

# 2. odpowiada nie tylko strona, ale i samo API:
curl -s https://rakazo.twojadomena.pl/api/auth/ok

# 3. wszystkie kontenery stoją, łącznie z zakończonymi (na serwerze, z katalogu instalacji):
docker compose --env-file .env -f docker-compose.images.yml ps -a

# 4. panel NIE wisi na publicznym adresie (na serwerze):
ss -tlnp | grep 5173

Pierwsza komenda ma zwrócić 200, druga dokładnie {"ok":true}, trzecia pięć usług w stanie running i dwie exited (to zadania jednorazowe, tak ma być), a czwarta ma pokazać adres 127.0.0.1:5173 - i tylko taki. Druga komenda jest ważniejsza, niż wygląda: panel oddaje tę samą stronę na każdy adres, więc 200 dostaniesz nawet wtedy, gdy backend leży. Jeśli w czwartej zobaczysz 0.0.0.0:5173, panel jest wystawiony do internetu z pominięciem HTTPS. Wtedy stop i napraw to, zanim pójdziesz dalej.

CO DALEJ

Po instalacji: pierwszy bot

Stack stoi, konto masz, drzwi zamknięte. Teraz właściwa część zabawy - to, po co w ogóle stawiałeś ten serwer.

01

Załóż bota

W panelu tworzysz nowego bota: nazwa, opis tego, czym się zajmuje, i model z listy. Opis to nie ozdobnik - bot naprawdę się nim kieruje, więc napisz konkretnie, co ma robić i czego nie ruszać.

02

Otwórz jego komputer

Na stronie bota jest przycisk pokazujący pulpit (Open computer / Show computer). Kontener startuje dopiero, gdy bot sięga po narzędzia graficzne - zadania czysto tekstowe go nie budzą. Chcesz zobaczyć pulpit od razu? Poproś bota o otwarcie konkretnej strony w przeglądarce, a ekran ożyje. Przyciskiem Take control przejmujesz klawiaturę i mysz, na przykład żeby raz zalogować go do jakiegoś serwisu.

03

Pierwsza rutyna

Rutyna to zadanie o stałej porze - codziennie o 07:00 sprawdź coś i napisz mi raport. Zacznij od czegoś nudnego i weryfikowalnego, na przykład przegląd nowości z jednej strony. Rutyna odpalona przez harmonogram działa dokładnie tak samo, jak zadanie zlecone ręcznie - a Ty od razu widzisz, czy bot rozumie polecenie.

04

Gdzie są raporty

Bot odpowiada w swoim wątku w panelu - tam lądują wyniki rutyn i tam do niego piszesz. Nie każ mu "zapisywać raportu do pliku" na starcie: prosta odpowiedź w wątku jest pewniejsza i od razu ją widzisz.

05

Pilnuj pamięci

Komputer bota gaśnie sam po dziesięciu minutach bezczynności. Jeśli mimo to serwer zaczyna dyszeć, sprawdź free -h i rozstaw rutyny w czasie zamiast puszczać trzy o tej samej godzinie.

06

Aplikacja na komputer (macOS, Linux)

Do panelu wchodzisz z przeglądarki, ale jest też aplikacja desktopowa - to samo, tylko w osobnym oknie, z powiadomieniami i bez karty, którą przypadkiem zamkniesz. Pobierasz ją z strony wydań Rakazo: na Maca plik Rakazo-x.y.z-universal.dmg (podpisany i notaryzowany, jeden plik na Intel i Apple Silicon), na Linuksa .AppImage. Po instalacji, na ekranie powitalnym, wybierz Existing instance i wpisz swój adres https://twoja-domena. Nie klikaj "This computer" - ta opcja stawia osobną, lokalną instalację Rakazo na Twoim laptopie, a nie łączy się z serwerem. Windows: na dziś (wrzesień 2026) nie ma oficjalnej instalki, bo projekt nie ma jeszcze certyfikatu do podpisywania - zostajesz przy przeglądarce (Chrome → "Zainstaluj jako aplikację" daje prawie ten sam efekt). Telefon: to samo, panel w przeglądarce.

Serwer nie idzie spać razem z Tobą. To jest cała różnica między botem na własnym VPS-ie a agentem odpalonym na laptopie: zamykasz klapę, a rutyna o 07:00 i tak się wykona. Do panelu wejdziesz z przeglądarki, z aplikacji desktopowej albo z telefonu - wszystkie łączą się z tym samym adresem HTTPS.

POTKNIĘCIA

Zjedzone za Ciebie

Rzeczy, na których sam się przyciąłem, żebyś Ty nie musiał. Każda z objawem, przyczyną i tym, co robisz:

01 Założyłem konto i nie mogę się na nie zalogować

Objaw: rejestracja przechodzi, ale zamiast panelu widzisz prośbę o kliknięcie w link wysłany na e-mail. Mail nie przychodzi. W spamie też go nie ma, bo nigdy nie wyszedł.

Przyczyna: w .env jest wpisana lista dozwolonych adresów (SIGNUP_ALLOWLIST). Wygląda to na rozsądne zabezpieczenie - wpuszczam tylko siebie - ale w aktualnej wersji Rakazo niepusta lista włącza jednocześnie wymóg potwierdzenia adresu mailem. Instalacja z tego poradnika nie ma skonfigurowanej poczty wychodzącej, więc czekasz na link, którego nikt nie wysłał.

Co robisz: czyścisz listę, restartujesz trzy usługi i rejestrujesz się jeszcze raz - a zaraz potem zamykasz rejestrację, tak jak w Kroku 3.

Serwer · terminal
cd ~/rakazo
sed -i "s|^SIGNUP_ALLOWLIST=.*|SIGNUP_ALLOWLIST=|" .env
docker compose --env-file .env -f docker-compose.images.yml up -d api worker web

Komunikat nie znika? Polityka rejestracji zapisała się w bazie przy pierwszym starcie i plik .env przestał rządzić. Wyczyść ją bezpośrednio w bazie:

Serwer · terminal
cd ~/rakazo
docker exec rakazo-postgres-1 psql -U rakazo -d rakazo -c "update deployment_settings set \"signupAllowlist\"='' where id='default';"

Bezpieczeństwo bierze się tutaj nie z listy adresów, tylko z tego, że rejestracja jest otwarta przez kilka minut i wyłączona na stałe zaraz po tym, jak założysz konto.

02 Klucz do integracji nie działa, choć jest poprawny

Objaw: podpinasz Composio (to przez niego bot dostaje dostęp do GitHuba, YouTube'a i reszty), klucz wygląda dobrze, a połączenie i tak jest odrzucane.

Przyczyna: Composio ma dwa rodzaje kluczy i wyglądają niemal identycznie. Rakazo potrzebuje klucza zaczynającego się od ak_ - tego z trybu PLATFORM. Klucz zaczynający się od ck_ jest z innego trybu i nie zadziała, niezależnie od tego, ile razy go wkleisz.

Co robisz: wróć do panelu Composio, przełącz się na tryb PLATFORM (przełącznik "Switch" w panelu, potem projekt → API keys → Create API key) i wygeneruj klucz stamtąd. Sprawdzenie zajmuje sekundę - patrzysz na dwa pierwsze znaki. Klucz wklejasz w Rakazo w zakładce Integrations (źródło Composio → API key → Connect), nie w czacie z agentem.

03 Bot wisi i czeka na Twoją zgodę przy każdym ruchu

Objaw: zlecasz botowi zadanie, a on przy pierwszej poważniejszej czynności staje i prosi o potwierdzenie. Potem przy następnej. I następnej. Rutyna o 07:00 rano nie robi nic, bo nikt nie kliknął "zgoda".

Przyczyna: Rakazo ma automatycznego recenzenta, który ocenia, czy dana czynność jest bezpieczna. Domyślnie daje mu na to 1,5 sekundy. Żaden model się w tym nie mieści, więc recenzent milczy, a decyzja spada na człowieka.

Co robisz: wskaż recenzentowi szybki model i daj mu sensowny czas. Trzy linijki w pliku .env, potem restart stacku:

.env · na serwerze
RAKAZO_AUTO_REVIEW_PROVIDER=openrouter
RAKAZO_AUTO_REVIEW_MODEL=google/gemini-3.1-flash-lite
RAKAZO_AUTO_REVIEW_TIMEOUT_MS=30000

Od tej pory szybki i tani model ocenia czynności w tle, a Ciebie bot pyta tylko wtedy, gdy naprawdę jest o co pytać.

04 Przeglądarka bota nie chce wstać po nagłym padzie

Objaw: kontener komputera się wywalił albo serwer został zrestartowany w trakcie pracy bota. Po ponownym starcie pulpit jest, ale Chromium nie rusza.

Przyczyna: Chromium zostawia w profilu plik-blokadę, żeby dwie kopie nie pisały po tych samych danych. Przy czystym zamknięciu sam go sprząta. Przy nagłym padzie plik zostaje i blokuje kolejne uruchomienie.

Co robisz: usuwasz blokadę w katalogu domowym komputera bota i uruchamiasz go ponownie:

Wewnątrz komputera bota
rm -f "$HOME/.browser-profiles/chromium/SingletonLock" \
      "$HOME/.browser-profiles/chromium/SingletonCookie" \
      "$HOME/.browser-profiles/chromium/SingletonSocket"

Nic nie tracisz - to są pliki tymczasowe, nie Twoje zalogowane sesje.

05 „Computer is busy" na stałe, Recover nie pomaga

Objaw: pulpit bota jest czarny albo widzisz, że ekran przejęła nowsza sesja. W menu komputera świeci „Computer is busy", a Recover computer i Reset computer odpowiadają tym samym komunikatem. Zadanie bota dawno się skończyło.

Przyczyna A (najczęstsza): to Ty trzymasz sterowanie. Po „Take control" Twoja karta przedłuża dzierżawę co kilkadziesiąt sekund, a Recover i Reset odmawiają, dopóki ktoś trzyma mysz i klawiaturę. Czarny obraz to uchwyt ekranu z poprzedniej sesji podglądu. Przyczyna B (bug Rakazo, stan na wrzesień 2026): po „Take control" instalacja zakłada dzierżawę komputera na 24 godziny i nie zwalnia jej po zakończeniu zadania bota. Poprawka jest zgłoszona do autorów.

Co robisz: wyłącz „Take control" albo zamknij panel ekranu i odczekaj minutę, przeładuj stronę i kliknij Open computer - w wariancie A to zwykle wystarcza. Nadal czarno? Teraz Recover computer przejdzie. Dalej „busy"? Upewnij się, że bot nie ma naprawdę trwającego zadania (Stop w wątku), potem skrypt z repo, scripts/unlock-computer.sh, uruchomiony na serwerze - pokazuje dzierżawy, pyta o zgodę, usuwa tylko te po zakończonych zadaniach i zeruje zawieszone sterowanie. Ostateczność, gdy ekran dalej czarny: docker stop kontenera komputera bota, supervisor postawi nowy przy następnym użyciu. Pliki bota w shared/ zostają. Agent w wizardzie ma tę procedurę w Fazie 7.

06 Brakuje mi dwóch kontenerów na liście

Objaw: liczysz kontenery i wychodzi pięć, a instrukcja mówi o siedmiu. Pierwsza myśl: coś się nie uruchomiło.

Przyczyna: dwa z nich to zadania jednorazowe - jedno pobiera obraz pulpitu, drugie ustawia właściciela katalogu z danymi. Kończą się poprawnie i przechodzą w stan zakończony, a lista domyślnie pokazuje tylko to, co aktualnie działa.

Co robisz: dopisujesz -a. Pięć linii zamiast siedmiu to poprawny wynik, nie brak.

Serwer · terminal
cd ~/rakazo
docker compose --env-file .env -f docker-compose.images.yml ps -a
07 Instalacja stoi i nic się nie dzieje

Objaw: instalator wisi kilka minut bez widocznego postępu. Kusi, żeby przerwać i spróbować jeszcze raz.

Przyczyna: ściąga 6,8 GB obrazów. Na łączu hostingu schodzi to w 2-3 minuty, na wolniejszym w kwadrans. To nie jest zawieszenie, to po prostu duży plik.

Co robisz: z drugiego terminala patrzysz, czy coś przybywa. Jeśli po kwadransie nadal cisza - przerywasz i powtarzasz instalator. Zachowa istniejący .env i dociągnie tylko brakujące warstwy.

Serwer · drugi terminal
docker images | grep rakazo
df -h /
08 Instalacja pakietu wisi w nieskończoność

Objaw: instalacja pakietu stoi, a w logu przewijają się komunikaty o niemożności otwarcia okna konfiguracyjnego. Nic się nie dzieje ani przez minutę, ani przez pięć.

Przyczyna: pakiet chce zadać pytanie w okienku, którego w sesji SSH nie ma. Czeka na odpowiedź, której nigdy nie dostanie, i po drodze blokuje mechanizm instalacji pakietów dla wszystkiego innego.

Co robisz: ubijasz zawieszony proces, porządkujesz to, co zostało w połowie, i powtarzasz instalację z przedrostkiem, który mówi „nie zadawaj pytań".

Serwer · terminal
sudo pkill -f apt-get
sudo dpkg --configure -a --force-confdef --force-confold
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y NAZWA_PAKIETU

Ten przedrostek dawaj przy każdej instalacji pakietów, nie tylko przy naprawie. Wizard robi to za Ciebie.

09 „Dostępna aktualizacja" przy komputerze bota, która nic nie znaczy

Objaw: przy komputerze bota wisi informacja o dostępnej aktualizacji. Klikasz, coś się dzieje, komunikat wraca.

Przyczyna: w wersjach do początku września to pole było zapalone praktycznie zawsze, niezależnie od stanu obrazu - czyli był to szum, nie sygnał. W nowszych wersjach zastąpiło je pole opisujące, czy aktualizacja jest w ogóle możliwa, i wtedy komunikat już coś znaczy.

Co robisz: na starszym obrazie po prostu ignorujesz. Na nowszym pamiętaj, że odświeżenie komputera bota tworzy kontener od nowa - katalog domowy jest zapisywany i przywracany, ale to nie jest operacja za darmo. Nie klikaj tego w oknie, w którym mają się odpalić rutyny.

10 Zadanie wisi w połowie i nigdy się nie kończy

Objaw: rutyna albo zlecone zadanie zostało w stanie „w trakcie", a w wątku nic nie przybywa.

Przyczyna: usługa wykonująca zadania została zrestartowana w trakcie pracy. Zadanie zostaje wtedy osierocone - nikt go już nie dokończy, bo ten, kto je prowadził, przestał istnieć.

Co robisz: zaglądasz w logi, żeby się upewnić, i odpalasz rutynę ponownie przyciskiem Run now. Na przyszłość: restartuj usługi wtedy, gdy nic nie leci, a nie w środku okna rutyn.

Serwer · terminal
docker logs rakazo-worker-1 --tail 60
12 Pulpit bota czarny, bez żadnego komunikatu

Objaw: Open computer otwiera panel, obraz jest czarny, nic nie mówi, że coś jest nie tak. W kontenerze bota przeglądarka żyje. W logu Caddy (sudo journalctl -u caddy -n 50) wpisy 502 / EOF dla GET /novnc/session/..., w których /novnc/session/ występuje dwa razy w jednym adresie.

Przyczyna: bug Rakazo od 8 września 2026 (zmiana „Revoke screen capabilities", #822, zgłoszenie #832). Strona ekranu składa adres WebSocketu z katalogu strony i parametru path, a od tej zmiany parametr sam zawiera pełny prefiks. Prefiks się dubluje, websockify dostaje nieistniejącą ścieżkę i zrywa połączenie. Instalacje sprzed 8 września tego nie mają - dlatego na produkcji z filmu działa, a na świeżej nie.

Co robisz: jedna linia w /etc/caddy/Caddyfile, w bloku domeny, przed reverse_proxy:

uri path_regexp ^(/novnc/session/(?:view|control)/[^/]+)/novnc/session/(?:view|control)/[^/]+(/.*)$ $1$2

Potem sudo systemctl reload caddy, przeładowanie panelu i Open computer. Wizard wpisuje tę linię sam w fazie F4. Po poprawce w upstreamie linia jest nieszkodliwa.

11 Bot ginie w środku zadania, bez błędu

Objaw: komputer bota znika w połowie pracy. W logach nie ma żadnego sensownego wyjaśnienia - po prostu koniec.

Przyczyna: komputer bota ma twardy sufit pamięci, domyślnie 2 GB. Pulpit, menedżer okien i przeglądarka z kilkoma kartami potrafią go przekroczyć, a wtedy system ubija kontener bez ostrzeżenia.

Co robisz: na serwerze 8 GB podnosisz sufit do 4 GB. Na 4 GB raczej odciążasz bota - jedno zadanie naraz, mniej kart - bo 4 GB dla komputera nie zmieści się obok reszty.

Serwer · terminal
cd ~/rakazo
grep -q '^RAKAZO_COMPUTER_MEMORY=' .env \
  && sed -i "s|^RAKAZO_COMPUTER_MEMORY=.*|RAKAZO_COMPUTER_MEMORY=4g|" .env \
  || echo 'RAKAZO_COMPUTER_MEMORY=4g' >> .env
docker compose --env-file .env -f docker-compose.images.yml up -d supervisor

Format to 4g albo 1536m. Wpisanie 4GB wywali usługę przy starcie i zablokuje całe uruchomienie.

Nie ma Twojego objawu na liście? Wklej treść błędu agentowi w tej samej sesji, w której robiłeś instalację - on ma cały kontekst Twojego serwera i najczęściej diagnozuje to szybciej, niż znajdziesz odpowiedź w internecie.

Nie masz jeszcze VPS-a?

Cały ten poradnik zaczyna się od serwera. Ja swoje trzymam u Hostingera - to partner technologiczny kanału, więc z kodem ROBERTHOST dostajesz dodatkowy rabat, a ja małą prowizję. Sprzęt bez zmian, cena niższa.

Postaw serwer →