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.
A
typu rakazo.twojadomena.pl → adres IP VPS-a. Bez tego nie będzie HTTPS,
a bez HTTPS aplikacje desktopowa i mobilna się nie zalogują. Nie masz domeny? Użyj
nazwy, którą serwer dostał od hostingu - na Hostingerze to
srvNNNNNN.hstgr.cloud (widać ją w hPanelu jako hostname). Rekord A już
istnieje, Let's Encrypt ją wystawia, zero konfiguracji. Adres jest brzydki i przypięty do tej
konkretnej maszyny, więc na start w sam raz, docelowo lepsza własna subdomena.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.
Nowy folder, żeby agent miał czyste biurko. Wpisz w terminalu na swoim komputerze (nie na serwerze):
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.
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.
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.
Dziesięć faz. Przy trzech z nich agent się zatrzyma i zapyta - są oznaczone na pomarańczowo.
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.
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.
Docker Engine plus wtyczka Compose, jeśli ich nie ma. Rakazo to kilka współpracujących kontenerów - bez tego ani rusz.
.envAgent 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ć.
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.
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ę.
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.
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.
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.
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.
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.
Audyt odpalasz sam, kiedy chcesz - to zwykły skrypt, który tylko czyta i niczego nie zmienia:
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 sprawdzamy | Przed | Po | Dlaczego 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):
# 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.
Stack stoi, konto masz, drzwi zamknięte. Teraz właściwa część zabawy - to, po co w ogóle stawiałeś ten serwer.
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ć.
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.
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.
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.
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.
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.
Rzeczy, na których sam się przyciąłem, żebyś Ty nie musiał. Każda z objawem, przyczyną i tym, co robisz:
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.
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:
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.
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.
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:
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ć.
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:
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.
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.
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.
cd ~/rakazo docker compose --env-file .env -f docker-compose.images.yml ps -a
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.
docker images | grep rakazo df -h /
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ń".
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.
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.
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.
docker logs rakazo-worker-1 --tail 60
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.
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.
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.
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.