Infrastructure configs for GMKtec K11 (Docker, vLLM, LocalAI, ComfyUI, control-plane, gpu-fan agent, Server UI with CLI/file explorer/GPU fan curve). Co-authored-by: Cursor <cursoragent@cursor.com>
7.2 KiB
Portainer — setup token (archiwum)
Portainer usunięty 2026-07-04. Aktualny Docker UI: Server UI na porcie 8091.
Od Portainer 2.43 (w tym portainer-ce:latest) przy pierwszej konfiguracji panelu potrzebny jest setup token — jednorazowy kod z logów kontenera. Chroni to świeżą instalację przed przejęciem przez kogoś innego w sieci LAN.
To nie jest token API z menu użytkownika (ten tworzysz później, po zalogowaniu).
Czy mnie to dotyczy?
| Sytuacja | Co robić |
|---|---|
| Logujesz się już loginem i hasłem | Setup token nie jest potrzebny |
| W przeglądarce widzisz pole Setup token | Potrzebujesz kodu z logów (poniżej) |
Plik /data/apps/portainer/data/portainer.db istnieje |
Instancja została już zainicjowana — zwykle logujesz się hasłem, nie tokenem |
Sprawdzenie na serwerze (SSH):
ls -la /data/apps/portainer/data/portainer.db
Jeśli plik jest — konto admina mogło zostać utworzone. Jeśli nie pamiętasz hasła, patrz sekcja Reset od zera.
Jak znaleźć setup token (krok po kroku)
1. Upewnij się, że kontener działa
docker ps --filter name=portainer
Powinien być Up.
2. Odczytaj token z logów
Na maszynie z Dockerem (ten sam host co Portainer):
docker logs portainer 2>&1 | grep setup_token
Szukaj linii w stylu:
setup_token=AbCdEf123456...
Kopiujesz tylko część po znaku = (bez setup_token=).
Jeśli grep nic nie zwraca:
docker logs portainer 2>&1 | less
W less wciśnij / i wpisz setup_token, Enter.
3. Wpisz token w przeglądarce
- Otwórz http://192.168.100.90:9000
- Wklej Setup token
- Ustaw hasło administratora (minimum 12 znaków)
- Zatwierdź i wybierz środowisko Local (Docker na tym komputerze)
4. Ważne ograniczenia czasowe
- Token jest jednorazowy — po udanym setupie nie musisz go zapisywać.
- Masz około 5 minut od startu kontenera na dokończenie konfiguracji. Po tym czasie token może wygasnąć.
- Jeśli minęło za dużo czasu: zrestartuj kontener i od razu odczytaj nowy token:
cd /home/tomasz-syn-grzegorza/cursor/ubuntu-bare-metal/stacks/portainer
docker compose --profile portainer restart portainer
sleep 3
docker logs portainer 2>&1 | grep setup_token
Gdy token „nie działa”
| Problem | Rozwiązanie |
|---|---|
| „Invalid setup token” | Ponownie docker logs portainer | grep setup_token — literówka, stary token |
| Minęło > 5 min | Restart kontenera (jak wyżej), nowy token z logów |
| Panel mówi, że admin już istnieje | Nie szukaj tokena — loguj się hasłem ustawionym wcześniej |
Brak linii setup_token w logach |
Możliwe, że setup już zakończony (portainer.db istnieje) lub starsza wersja obrazu |
Jak pominąć setup token (tylko zaufana sieć LAN)
Jeśli Portainer działa wyłącznie w domowej sieci (192.168.100.x) i nie jest wystawiony na internet, możesz wyłączyć wymóg tokena.
W stacks/portainer/docker-compose.yml dodaj pod serwisem portainer:
command: --no-setup-token
Potem:
cd stacks/portainer
docker compose --profile portainer up -d
Uwagi:
- Działa sensownie przy nowej instalacji (brak
portainer.db). Przy istniejącej bazie ta flaga nie zmienia hasła ani konta. - Nie używaj
--no-setup-token, jeśli port 9000 jest dostępny z internetu. - To świadome osłabienie zabezpieczenia przy pierwszym starcie — akceptowalne na izolowanym LAN.
Własny token (zamiast losowego z logów)
Przydatne przy skryptach — nie commituj tej wartości do git.
command: --setup-token TwojTajnyKodNaSetup
Ten sam ciąg wpisujesz w polu Setup token w przeglądarce.
Hasło admina z pliku (bez tokena)
Rekomendowane przez Portainer przy instalacjach, gdzie nie masz wygodnego dostępu do logów.
1. Plik z hasłem (poza repozytorium)
echo -n 'TwojeSilneHasloMin12Znakow' > /data/apps/portainer/admin-password
chmod 600 /data/apps/portainer/admin-password
Plik musi zawierać samą treść hasła — bez pustej linii na końcu (echo -n).
2. Zmiany w docker-compose.yml
command: --admin-password-file /run/portainer/admin-password
volumes:
# ... istniejące wolumeny ...
- ${DATA_ROOT:-/data}/apps/portainer/admin-password:/run/portainer/admin-password:ro
3. Pierwszy start
cd stacks/portainer
docker compose --profile portainer up -d
Portainer tworzy konto admin z tym hasłem. Setup token nie jest potrzebny.
Uwaga: przy istniejącym portainer.db ta flaga nie nadpisuje hasła.
Setup token vs Access token (API)
| Setup token | Access token | |
|---|---|---|
| Kiedy | Pierwsza konfiguracja panelu | Po zalogowaniu do UI |
| Gdzie go wziąć | docker logs portainer |
UI → ikona użytkownika → My account → Access tokens |
W pliku .env w repo |
Nie | Nie |
| Do czego | Jednorazowe utworzenie admina | Wywołania API Portainera (skrypty) |
W stacks/portainer/.env nie ma żadnego tokena — to normalne.
Reset od zera (ostrożnie)
Gdy utknąłeś: nie znasz hasła, token wygasł, a setup się nie udał.
cd /home/tomasz-syn-grzegorza/cursor/ubuntu-bare-metal/stacks/portainer
docker compose --profile portainer down
mv /data/apps/portainer/data /data/apps/portainer/data.bak.$(date +%Y%m%d)
./scripts/start.sh
docker logs portainer 2>&1 | grep setup_token
Stracisz: zapisane ustawienia Portainer w UI (endpointy, preferencje). Kontenery Docker (localai, npmplus, …) nie są usuwane — tylko konfiguracja samego Portainera.
Przy reinstalacji możesz od razu dodać command: --no-setup-token lub --admin-password-file (sekcje wyżej).
Rekomendacja dla RTX1 (tylko LAN, headless)
| Scenariusz | Najprostsza droga |
|---|---|
| Domyślnie w repo | --admin-password-file + plik na /data — bez tokena, bez limitu 5 min |
| Masz SSH, setup token | docker logs portainer | grep setup_token → przeglądarka (w ciągu 5 min) |
| Chcesz bez tokena na LAN | --no-setup-token przy czystej instalacji (nadal ~5 min na hasło w UI) |
Stack w repo: stacks/portainer/docker-compose.yml używa --admin-password-file.
Stan na hoście (2026-07-04)
- Naprawiono timeout pierwszej konfiguracji przez
--admin-password-filew compose. - Hasło:
/data/apps/portainer/admin-password(utworzone przy wdrożeniu, nie w git). - Logowanie: użytkownik admin, hasło z pliku.
portainer.dbistnieje — konto admin utworzone przy starcie z pliku hasła.
Powiązane dokumenty
DOCKER-UI-DEPLOYMENT.mdDOCKER-UI-HANDOFF.mdstacks/portainer/README.md- Oficjalna dokumentacja: How do I find, skip, or customize my setup token? (Portainer 2.43+)