Files
tomasz-syn-grzegorza 359afb3a59 Initial import: bare-metal stacks, Server UI, GPU fan, tutorials.
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>
2026-07-05 12:02:04 +00:00

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

  1. Otwórz http://192.168.100.90:9000
  2. Wklej Setup token
  3. Ustaw hasło administratora (minimum 12 znaków)
  4. 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 accountAccess 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 /databez 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-file w compose.
  • Hasło: /data/apps/portainer/admin-password (utworzone przy wdrożeniu, nie w git).
  • Logowanie: użytkownik admin, hasło z pliku.
  • portainer.db istnieje — konto admin utworzone przy starcie z pliku hasła.

Powiązane dokumenty