# Isbre: instrukcja dla Twojego AI > Wklej ten plik jako pierwszą wiadomość do asystenta AI (ChatGPT, Claude, agent z dostępem SSH). Opisuje hosting Isbre (https://isbre.pl): co jest w usłudze, jak się do niej dostać, gdzie co się ustawia i jak krok po kroku postawić WordPressa, aplikację Node.js lub Python albo skonfigurować pocztę. Asystent ma prowadzić klienta, a przy dostępie SSH wykonywać polecenia w jego imieniu, w granicach z sekcji „Czego AI nie robi”. Wszystko, co tu jest, klient widzi też w panelu (https://panel.isbre.pl) i w pomocy (https://isbre.pl/pomoc). > > To wersja ogólna. Wersję z danymi konkretnej usługi (login, port, domeny, bazy, skrzynki, para serwerów nazw) klient pobiera w panelu: usługa, grupa Pomoc, „Instrukcja dla Twojego AI”. ## 1. Czym jest usługa - Każda usługa to własny serwer klienta (kontener z Debianem), bez uprawnień administratora (roota). Klient ma w nim jedno konto systemowe: ``. - Strony WWW serwuje Apache z PHP-FPM. Wersję PHP wybiera się osobno dla każdej domeny w panelu: do wyboru 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5; nowa strona dostaje 8.3. `.htaccess` działa w pełni, razem z `php_value` i `php_flag`. - Aplikacje Node.js i Python (Django, Flask, FastAPI) uruchamia się z panelu jako stałe procesy, wpięte pod domenę albo jej podścieżkę. Środowiska w obrazie serwera: Node.js 20, 22, 24 (domyślnie 22) i Python 3.13. - Bazy danych: MariaDB albo PostgreSQL, zakładane w panelu, na wspólnym serwerze baz. Do bazy łączy się aplikacja klienta; z powłoki nie ma klienta `mariadb` ani `psql` (narzędziem do bazy jest phpMyAdmin lub Adminer otwierany z panelu). - Poczta działa na osobnym serwerze pocztowym platformy (mail.isbre.pl), skrzynki i aliasy zakłada się w panelu. - DNS: każde konto ma własną parę serwerów nazw `k<12 znaków>.ns1.isbre.pl` i `k<12 znaków>.ns2.isbre.pl`. Domena wskazana u rejestratora na tę parę jest przyjmowana automatycznie, bez kolejki do obsługi. - Pakiety (liczby z cennika https://isbre.pl/cennik): | Pakiet | Dysk | Miejsce na bazy | Poczta | Strony | Bazy | Skrzynki | Cron | Powłoka SSH | memory_limit | max_execution_time | Czas żądania | |---|---|---|---|---|---|---|---|---|---|---|---| | Start (S) | 10 GB | 2 GB | 10 GB | 2 | 5 | 10 | 3 | nie | 256M | 60 s | 300 s | | Standard (M) | 25 GB | 5 GB | 25 GB | 10 | 25 | 50 | 10 | tak | 512M | 120 s | 300 s | | Pro (L) | 50 GB | 10 GB | 50 GB | 25 | 50 | 150 | 25 | tak | 768M | 180 s | 360 s | | Max (XL) | 80 GB | 16 GB | 80 GB | bez limitu | bez limitu | 500 | 50 | tak | 1024M | 300 s | 600 s | Limity PHP z pakietu (`memory_limit`, `max_execution_time`, `upload_max_filesize`, `post_max_size`) są wartościami domyślnymi: klient może je podnieść w `.htaccess`. Twardy jest tylko czas jednego żądania (kolumna „Czas żądania”): po nim żądanie jest przerywane niezależnie od `max_execution_time`. ## 2. Dostęp: panel, SFTP, SSH - Panel: https://panel.isbre.pl. Logowanie adresem e-mail i hasłem (opcjonalnie drugi składnik). W panelu klient wybiera usługę; wszystkie ekrany poniżej (Strony, Aplikacje Node i Python, Bazy danych, Poczta, Pliki (SFTP), Zadania cykliczne (cron), Domeny i DNS, Kopie zapasowe, Logi, Historia) są w menu tej usługi. - SFTP: host ``, port ``, użytkownik ``, hasło ustawione w panelu na ekranie „Pliki (SFTP)”. Zwykłego FTP nie ma; FileZilla i WinSCP obsługują SFTP. Hasła nie da się odczytać ponownie, da się je tylko ustawić na nowo (ten sam ekran). - SSH (powłoka): w pakiecie Start jest wyłącznie SFTP. W pakietach Standard, Pro i Max powłokę włącza się przełącznikiem na ekranie „Pliki (SFTP)” (domyślnie jest wyłączona). Po włączeniu: `ssh -p @`. Nadal bez roota, bez `sudo`, bez instalowania pakietów systemowych. - Klucz SSH: klient może wgrać własny klucz publiczny do `~/.ssh/authorized_keys` (katalog `.ssh` z prawami 700, plik 600). Logowanie kluczem działa i przez SFTP, i przez SSH. - Ścieżki: - katalog domowy: `/home/`, - strona domeny: `/home//domains//public_html` (to jest katalog główny witryny, `DocumentRoot`), - pliki tymczasowe i sesje PHP domeny: `/home//domains//tmp`, - aplikacje Node/Python: `/home//apps/`. - Po SFTP klient widzi tylko swój katalog domowy, więc te same ścieżki wyglądają tak: `//domains//public_html`. - Narzędzia w powłoce (są w obrazie serwera, nie trzeba ich instalować): `php` (w konsoli domyślnie 8.3; inną wersję wywołuje się jawnie, np. `php8.1`), `composer`, `wp` (WP-CLI), `node`, `npm`, `npx`, `python3`, `pip` przez `python3 -m venv`, `git`, `rsync`, `curl`, `wget`, `zip`, `unzip`, `tar`, `nano`, `vim`, `mc`, `sqlite3`, `jq`, `dig`. - Czego w powłoce nie ma albo co nie działa: `sudo` i `apt` nie działają (brak uprawnień roota), nie ma `mysql`/`mariadb`, `psql` ani Dockera. Dziennik błędów PHP leży w koncie klienta: `/home//logs/php-error.log` (jeden plik na wersję PHP, np. `php8.3-error.log`; czytelny z powłoki i przez SFTP). Logów dostępu i błędów Apache nie czyta się z plików (są niedostępne dla konta klienta), tylko z panelu na ekranie „Logi” (podgląd na żywo i pobranie pliku). - Polecenie `df` pokazuje więcej zajętego miejsca, niż zajmują pliki klienta, bo liczy też wspólną warstwę systemu; do limitu pakietu liczą się tylko pliki klienta. Realne zużycie jest na pulpicie usługi w panelu, w karcie „Miejsce”. ## 3. Domeny - Domena należy do konta klienta, a do usługi jest przypisywana. Ekran: menu konta „Domeny” (kafelek). W usłudze (Strony, Poczta) widać tylko domeny do niej przypisane. - Nowa domena zewnętrzna, kolejność: najpierw dodać ją w panelu („Dodaj stronę” w usłudze albo „Podepnij domenę” w kafelku Domeny), potem u rejestratora wpisać parę serwerów nazw konta (widoczną w panelu przy dodawaniu domeny). Do czasu przepięcia domena stoi na liście jako zgłoszenie „Oczekuje na zmianę serwerów nazw”; platforma sprawdza delegację co 10 minut (jest też przycisk „Sprawdź teraz”), a gdy ją zobaczy, uruchamia domenę i wysyła mail. Zgłoszenie bez przepięcia wygasa po 30 dniach. - DNS ma zostać u dotychczasowego dostawcy: druga droga to jednorazowy rekord TXT `_isbre-verify.` o wartości `isbre-verify=<żeton z panelu>` (żeton pokazuje ekran dodawania domeny). Potem u tego dostawcy trzeba samemu ustawić rekordy: A domeny i `www` na adres IP serwera (ten sam, na który wskazuje adres techniczny usługi: `dig +short `), a dla poczty MX, SPF, DKIM i DMARC. Komplet wartości do przepisania jest na ekranie DNS tej domeny w panelu (Domeny, domena, DNS). - Subdomena już potwierdzonej domeny nie wymaga żadnego dowodu: dodaje się ją od razu. - Domena kupiona u Isbre: zamawia się ją w kafelku Domeny albo przy zakupie pakietu; jest przypisana i skierowana automatycznie. - DNS prowadzony przez Isbre (domena wskazuje parę NS konta): rekordy edytuje się w panelu na ekranie DNS domeny. Rekordy platformy (A strony, MX, SPF, DKIM, DMARC, autokonfiguracja poczty) stoją tam z automatu. - Tryb przeprowadzki: gdy strefę DNS prowadzimy my, przełącznik na ekranie DNS domeny skraca czas życia rekordów A na czas przełączania serwera, a po oknie przywraca poprzednią wartość. Gdy strefa jest u innego dostawcy, TTL ustawia się tam i tryb przeprowadzki nie ma czego skracać. - Adres techniczny usługi (`srv.`, widoczny na pulpicie usługi) jest pełnoprawną stroną z własnym certyfikatem: nadaje się do testów przed przepięciem domeny, nie zajmuje limitu stron i nie jest domeną klienta (nie ma go w kafelku Domeny). ## 4. Strony (PHP) - Ekran „Strony” w usłudze: „Dodaj stronę” z nazwą domeny i wersją PHP. Powstaje katalog `domains//public_html` i konfiguracja serwera. Wersję PHP zmienia się w każdej chwili z listy przy stronie. - Certyfikat SSL (Let's Encrypt) wystawia się automatycznie, gdy domena wskazuje na serwer; do tego czasu przeglądarka może pokazać ostrzeżenie o certyfikacie. Stan i powód oczekiwania są przy stronie na ekranie „Strony”; jest tam też ponowienie. - `php_value` i `php_flag` w `.htaccess` działają jak przy mod_php; `php_admin_value` daje błąd 500. Można też użyć `.user.ini` w katalogu strony. Ścieżek dziennika błędów, sesji, katalogu tymczasowego i `open_basedir` klient nie zmienia. - Blokada botów AI: przełącznik przy każdej stronie („Blokuj boty AI na ”), domyślnie włączony. Blokuje roboty firm AI (GPTBot, ClaudeBot, PerplexityBot i podobne), nie wyszukiwarki Google i Bing. Wyłącza się go, gdy klient chce, żeby jego treść trafiała do asystentów AI. - ionCube Loader jest włączony w każdej wersji PHP poza 8.0 (dla 8.0 producent nie wydał loadera). - Logi dostępu i błędów Apache: ekran „Logi” (na żywo, z filtrem, do pobrania). Dziennik błędów PHP jest też plikiem w koncie: `/home//logs/php-error.log` (np. `tail -n 50 ~/logs/php8.3-error.log` przez SSH). ## 5. Aplikacje Node.js i Python Aplikację uruchamia panel, nie klient z powłoki. Ekran „Aplikacje Node i Python”, „Dodaj aplikację”, pola: nazwa (małe litery, cyfry, myślnik; to nazwa katalogu w `~/apps` i nazwa procesu), środowisko (Node.js / Python), wersja (lista z tego serwera), dla Pythona framework (bez frameworka (WSGI) / Django / Flask / FastAPI-ASGI), domena (albo „bez domeny”, wtedy proces działa tylko wewnętrznie) i ścieżka (`/` = cała domena, albo np. `/api`). - Pliki klient wgrywa PRZED dodaniem aplikacji, do `~/apps/` (SFTP albo `git clone` przez SSH). - Node.js: w katalogu musi być `server.js`, a aplikacja ma nasłuchiwać na porcie ze zmiennej `process.env.PORT` (port przydziela panel). Nie ma pola „komenda”: uruchamiane jest zawsze `node server.js` wybraną wersją Node. - Python: w katalogu musi być gotowe `venv` z zainstalowanym serwerem: `gunicorn` (WSGI: Django, Flask, bez frameworka) albo `uvicorn` (FastAPI i inne ASGI). Bez frameworka i Flask: obiekt `app` w `app.py`. FastAPI: obiekt `app` (ASGI) w `app.py`. Django: projekt nazwany tak samo jak aplikacja (`django-admin startproject .`) i `STATIC_ROOT` w `settings.py`; pliki statyczne zbiera panel przy dodawaniu i serwuje je spod `/static/`. - Po dodaniu: panel pokazuje stan procesu (działa / startuje / nie działa), port, logi (przycisk „Logi” przy aplikacji) i ma przyciski „Edytuj”, „Logi”, „Restartuj” i „Usuń”. Po zmianie kodu klient klika „Restartuj”. Zmiana wersji Node/Pythona: „Edytuj” przy aplikacji. - Jeśli dodanie się nie uda (proces nie utrzymał się kilka sekund), panel pokazuje końcówkę logu z powodem. Najczęściej: brak `server.js`, brak `venv`, nasłuch na złym porcie. - Domena może być albo stroną PHP, albo aplikacją pod `/`; dwie aplikacje na jednej domenie muszą stać na rozłącznych ścieżkach. - Aplikacja dostaje ten sam certyfikat SSL co strony PHP. Procesy w tle spoza panelu (pm2, `nohup`, screen) nie są wspierane: po restarcie serwera nie wstaną. ## 6. Bazy danych - Ekran „Bazy danych”, „Utwórz bazę”: silnik (MariaDB / PostgreSQL) i nazwa. Pełna nazwa i użytkownik dostają przedrostek usługi (np. `c_sklep`). Hasło panel pokazuje RAZ, przy tworzeniu; nowe hasło ustawia się przyciskiem przy bazie. - Dane do połączenia (host, port, baza, użytkownik) są na ekranie „Bazy danych” przy każdej bazie: MariaDB port 3306, PostgreSQL port 5432. Aplikacja łączy się po tym hoście, nie po `localhost`. - Narzędzie do bazy: przycisk „Otwórz phpMyAdmin” (MariaDB) albo „Otwórz Adminer” (PostgreSQL) przy bazie w panelu; logowanie następuje automatycznie. Z powłoki nie ma `mysql`, `mysqldump` ani `psql`, więc nie działają też polecenia, które ich wymagają: `wp db import`, `wp db export`, `wp db query` (zmierzone: „env: 'mysqldump': No such file or directory”). Zrzut SQL importuje się przez phpMyAdmin/Adminer (zakładka Import) albo narzędziem aplikacji, które łączy się przez PHP/Python (`wp search-replace`, `manage.py loaddata` działają). - Zrzut bazy do pobrania: ekran „Kopie zapasowe”, „Pobierz kopię bazy”. - Miejsce na bazy ma własny limit z pakietu (kolumna „Miejsce na bazy” w tabeli pakietów), liczony łącznie dla wszystkich baz MariaDB i PostgreSQL konta; dysk serwera i poczta mają własne limity (trzy pule, jak w karcie „Miejsce” na pulpicie usługi, gdzie widać zużycie). Panel pokazuje też sumę zajętości tych trzech pul wobec rozmiaru pakietu (wiersz „Razem”). Przekroczenie limitu miejsca na bazy (powyżej 110%) albo tej sumy (powyżej 110% rozmiaru pakietu) wstrzymuje zapis do baz danych do czasu zwolnienia miejsca; odczyt działa dalej, strony i poczta też. Niczego innego przekroczenie sumy nie wyłącza. ## 7. Poczta - Ekran „Poczta”: „Nowa skrzynka” (nazwa i domena; tylko domena przypisana do tej usługi), „Nowy alias” (adres aliasu i lista adresów, na które przekazuje; alias nie ma skrzynki ani hasła). Hasło skrzynki panel pokazuje raz; zmiana hasła przyciskiem przy skrzynce albo w webmailu. - Program pocztowy: nazwa użytkownika = pełny adres e-mail, serwer poczty przychodzącej i wychodzącej `mail.isbre.pl`: - IMAP: port 993, SSL/TLS, - POP3: port 995, SSL/TLS, - SMTP: port 465, SSL/TLS (albo 587 ze STARTTLS). - Webmail: https://poczta.isbre.pl. Tam też: filtry, autoresponder (wiadomość o nieobecności), zmiana hasła. - Autokonfiguracja: Thunderbird, Outlook i telefony znajdują ustawienia same po podaniu adresu i hasła, jeśli DNS domeny prowadzi Isbre (rekordy `autoconfig` i `_autodiscover` są w strefie). - SPF, DKIM i DMARC dla domeny ze strefą u Isbre są ustawione automatycznie. Gdy DNS jest u innego dostawcy, te rekordy trzeba tam przepisać z ekranu DNS domeny w panelu. - Wiadomości rozpoznane jako spam trafiają do folderu Junk (w webmailu widocznego jako „Spam”). PHP `mail()` z witryny działa (wychodzi przez przekaźnik platformy). ## 8. Kopie zapasowe - Kopie robi platforma automatycznie: migawki serwera kilka razy dziennie i nocne archiwum. Klient niczego nie włącza. - Ekran „Kopie zapasowe”: lista punktów przywracania, „Przywróć pliki” (ścieżka względem katalogu domowego, np. `domains/sklep.pl/public_html`) w jednym z dwóch trybów: „obok” (domyślny; przywrócone pliki trafiają do `_restored//` w katalogu domowym, bieżące dane zostają nietknięte) albo „nadpisz w miejscu” (wymaga osobnego potwierdzenia; poprzednia wersja jest przenoszona do `_restored/przed-/`), „Przywróć bazę danych” (z nocnego archiwum, jako NOWA baza obok; bieżąca baza zostaje nietknięta), „Pobierz kopię bazy” (zrzut SQL). Historia przywracań jest na tym samym ekranie. - Jak głęboko sięgają kopie i co obejmują: https://isbre.pl/pomoc (pytanie „Jak działa backup?”). Kopia platformy nie zastępuje własnego archiwum klienta. ## 9. Zadania cykliczne (cron) - Ekran „Zadania cykliczne (cron)”, „Nowe zadanie”: harmonogram w 5 polach (`*/15 * * * *`, albo `@daily`, `@hourly`) i komenda w jednej linii. Komenda wykonuje się na serwerze usługi jako użytkownik klienta, np. `cd /home//domains/sklep.pl/public_html && php wp-cron.php` albo `php8.2 /home//domains/sklep.pl/public_html/artisan schedule:run`. - Liczba zadań jest limitem pakietu. Panel zarządza tylko zadaniami dodanymi w panelu; wpisów zrobionych przez `crontab -e` w powłoce nie widzi i ich nie rusza. ## 10. Scenariusze krok po kroku Przed każdym scenariuszem: asystent pyta klienta o nazwę domeny, wersję PHP, nazwę bazy i hasła; niczego nie zgaduje. Przy dostępie SSH zaczyna od `hostname; whoami; ls ~/domains` i porównuje z danymi z panelu. ### 10.1 WordPress przez WP-CLI Założenia: strona dodana w panelu (ekran „Strony”, domena ``, PHP 8.3 albo nowsze), baza MariaDB utworzona w panelu (ekran „Bazy danych”; nazwa, użytkownik, host i port z ekranu, hasło z chwili utworzenia), dostęp przez SSH włączony. ```sh cd /home//domains//public_html wp core download --locale=pl_PL wp config create --dbname= --dbuser= --dbpass='' --dbhost=:3306 --dbprefix=wp_ wp core install --url=https:// --title="Nazwa strony" --admin_user= --admin_password='' --admin_email= --skip-email wp plugin install wordpress-seo --activate ``` - Bez SSH (pakiet Start): klient wgrywa rozpakowany WordPress przez SFTP do `public_html` i przechodzi instalator w przeglądarce, wpisując dane bazy z panelu (host z portem: `:3306`). - Zanim domena wskaże na serwer, stronę testuje się na adresie technicznym usługi (WordPress przyjmuje `--url` z domeną docelową; do testu można tymczasowo podać adres techniczny i zmienić go potem przez `wp option update home` i `wp option update siteurl`). - Import istniejącej strony: pliki przez SFTP/rsync do `public_html`, zrzut SQL przez phpMyAdmin (przycisk przy bazie w panelu, zakładka Import; `wp db import` nie zadziała, bo w powłoce nie ma programu `mysql`), zmiana danych bazy w `wp-config.php` (`wp config set DB_HOST ':3306'` i analogicznie `DB_NAME`, `DB_USER`, `DB_PASSWORD`), potem `wp search-replace 'https://' 'https://'` (to polecenie działa, bo idzie przez PHP). - Cron WordPressa: w `wp-config.php` `define('DISABLE_WP_CRON', true);` i zadanie w panelu: `*/5 * * * *` z komendą `cd /home//domains//public_html && wp cron event run --due-now --quiet`. - Limity PHP (np. `upload_max_filesize`): `php_value upload_max_filesize 128M` w `.htaccess` w `public_html`. ### 10.2 Przeniesienie strony i poczty z innego hostingu Kolejność: kopia u dotychczasowego dostawcy, test u Isbre na adresie technicznym, poczta, tryb przeprowadzki (tylko gdy strefę DNS prowadzimy my), DNS na końcu. 1. Kopia: pobrać pliki strony (FTP/SFTP starego hostingu) i zrzut bazy; zapisać je lokalnie. Bez tej kopii nie robić nic dalej. 2. W panelu: „Dodaj stronę” z docelową domeną (zgłoszenie zostanie w stanie oczekiwania, dopóki DNS wskazuje stary hosting) i „Utwórz bazę”. 3. Wgrać pliki do `domains//public_html`, zaimportować bazę (WP-CLI, phpMyAdmin albo narzędzie aplikacji), poprawić dane bazy w konfiguracji aplikacji. 4. Test przed przepięciem: na własnym komputerze dopisać domenę do pliku `hosts` z adresem IP serwera (`dig +short `) i otworzyć stronę; alternatywnie sprawdzić ją pod adresem technicznym. 5. Poczta: założyć skrzynki w panelu z tymi samymi adresami, co u starego dostawcy; wiadomości przenosi klient własnym programem pocztowym (dwa konta IMAP, przeciąganie folderów) albo zamawia przeniesienie u Isbre (zaznaczane przy zakupie: https://isbre.pl/migracja). 6. Przepięcie DNS: u rejestratora wskazać parę serwerów nazw konta (domena w panelu przejdzie ze zgłoszenia w działającą stronę) ALBO, gdy DNS zostaje u dostawcy, zmienić tam rekordy A i MX. Certyfikat SSL wystawi się po tym, jak domena zacznie wskazywać na serwer. 7. Stary hosting wyłączyć dopiero po sprawdzeniu strony, HTTPS i poczty, po kilku dniach. Migracja wykonywana przez Isbre (w cenie pakietu, jedna strona) ma własny opis: https://isbre.pl/migracja. ### 10.3 Aplikacja Node.js ```sh mkdir -p ~/apps/api && cd ~/apps/api git clone . # albo pliki przez SFTP do ~/apps/api npm ci --omit=dev # albo npm install ``` `server.js` w katalogu aplikacji (nazwa pliku jest obowiązkowa): ```js const http = require('http'); const port = process.env.PORT; http.createServer((req, res) => res.end('ok')).listen(port, '127.0.0.1'); ``` Potem w panelu: „Aplikacje Node i Python”, „Dodaj aplikację”: nazwa `api`, Node.js, wersja, domena i ścieżka (np. `api.sklep.pl` i `/`). Domena musi być wcześniej dodana w usłudze (jako strona albo domena podpięta). Po zmianie kodu: `git pull` (albo wgranie plików), `npm ci`, przycisk „Restartuj” w panelu. Logi aplikacji: ekran „Aplikacje Node i Python”, przycisk „Logi” przy aplikacji. Framework, który buduje pliki (Next.js, Nuxt, Astro w trybie serwera), buduje się przez SSH (`npm run build`), a `server.js` uruchamia zbudowany serwer. ### 10.4 Django albo FastAPI ```sh mkdir -p ~/apps/sklep && cd ~/apps/sklep python3 -m venv venv venv/bin/pip install --upgrade pip # Django: venv/bin/pip install gunicorn django psycopg2-binary venv/bin/django-admin startproject sklep . # FastAPI: venv/bin/pip install uvicorn fastapi ``` Django, w `sklep/settings.py`: `ALLOWED_HOSTS = ['sklep.pl', 'www.sklep.pl']`, `STATIC_ROOT = BASE_DIR / 'static'`, `DATABASES` na PostgreSQL z ekranu „Bazy danych” (host , port 5432, nazwa, użytkownik, hasło). Potem `venv/bin/python manage.py migrate` i `venv/bin/python manage.py createsuperuser` przez SSH. W panelu: „Dodaj aplikację”, Python, framework Django, nazwa `sklep` (taka sama jak nazwa projektu), domena. Pliki statyczne zbiera panel przy dodawaniu (`collectstatic`); po zmianach w statykach: `venv/bin/python manage.py collectstatic --noinput` i „Restartuj”. FastAPI, `app.py`: ```py from fastapi import FastAPI app = FastAPI() @app.get("/") def root(): return {"ok": True} ``` W panelu framework „FastAPI / ASGI”. Aplikacja pod podścieżką (np. `/api`) dostaje od platformy `--root-path`, więc dokumentacja `/api/docs` działa bez zmian w kodzie. ### 10.5 Program pocztowy 1. Skrzynka założona w panelu (ekran „Poczta”), hasło zapisane przy tworzeniu. 2. W programie: konto IMAP, nazwa użytkownika = pełny adres, serwer przychodzący `mail.isbre.pl` port 993 SSL/TLS, serwer wychodzący `mail.isbre.pl` port 465 SSL/TLS, uwierzytelnianie hasłem, to samo hasło co do odbioru. 3. Telefon: zwykle wystarczy adres i hasło (autokonfiguracja), jeśli DNS domeny prowadzi Isbre. 4. Sprawdzić wysyłkę do siebie i odbiór. Gdy wiadomości do zewnętrznych odbiorców lądują w spamie, sprawdzić SPF/DKIM/DMARC domeny (automatyczne przy strefie u Isbre; przy DNS u innego dostawcy przepisać rekordy z panelu). ## 11. Czego AI nie robi - Nie zmienia DNS, serwerów nazw ani rekordów u rejestratora bez wyraźnego potwierdzenia klienta w tym samym kroku; opisuje, co zamierza zmienić i co się stanie ze stroną i pocztą. - Nie kasuje `public_html`, katalogów aplikacji ani baz bez wcześniejszej kopii (pliki: `tar`/`rsync` poza katalog roboczy albo kopia w panelu; baza: „Pobierz kopię bazy” w panelu albo eksport z phpMyAdmin/Adminera). - Nie edytuje plików systemowych serwera (poza katalogiem domowym), nie próbuje `sudo`, `apt`, `systemctl`, nie zmienia konfiguracji Apache i PHP poza `.htaccess` i `.user.ini`. - Nie omija panelu tam, gdzie panel jest jedynym wejściem: bazy, skrzynki i aliasy, domeny, zadania cykliczne, aplikacje (uruchamianie, restart, usuwanie), certyfikaty, hasło SFTP. Procesy w tle uruchamiane ręcznie z powłoki nie przeżyją restartu serwera. - Przy błędzie czyta komunikat do końca i zatrzymuje się; nie powtarza polecenia „na ślepo”, nie obchodzi błędu uprawnień. - Nie wysyła haseł, kluczy ani tokenów nigdzie poza serwerem klienta; nie wpisuje ich do plików w `public_html`; nie zapisuje ich w historii poleceń, gdy da się tego uniknąć. - Nie zmienia pakietu, nie zamawia domen ani dodatków i nie płaci; to robi klient w panelu. - Nie wyłącza blokady botów AI ani nie zmienia ustawień poczty (aliasów, przekierowań) bez pytania. ## 12. Pomoc - Poradniki i odpowiedzi: https://isbre.pl/pomoc (ceny, domeny, faktury, backup, `php_value`, ionCube) i https://isbre.pl/onboarding (pierwsze kroki po zakupie). - Biuro obsługi: bok@isbre.pl. Odpowiadamy mailem; w wiadomości podaj domenę i wklejony komunikat błędu. Reklamacje rozpatrujemy w terminie z regulaminu (https://isbre.pl/regulamin, §11). - Płatny dodatek „Obsługa hostingu”: czynności administracyjne przy usłudze wykonuje Isbre na zlecenie klienta (opis w panelu, grupa Pomoc).