# Przygotowanie repozytorium pod Gitea Raport z sesji przygotowującej pierwszy commit `ubuntu-bare-metal`. ## Analiza stanu wyjściowego | Aspekt | Wynik | |--------|--------| | Git | Katalog **nie był** repozytorium — wykonano `git init` | | Gitea remote | **Nie skonfigurowany** — URL do podania przez użytkownika | | Pliki `.env` | 7 na dysku (sekrety) — **wykluczone** przez root `.gitignore` | | `.venv` | `stacks/server-ui/.venv`, `stacks/gpu-fan/.venv` (~54 MB każdy) — **wykluczone** | | Bloker bezpieczeństwa | Prawdziwy `API_KEY` w `manual-tutorial/04a-api-key.md` — **zredagowany** na placeholder | ## Zmiany przygotowawcze (ta sesja) 1. **Root [`.gitignore`](../.gitignore)** — `.env`, `.venv`, `__pycache__`, `upstream/`, `.cursor/` 2. **Redakcja** [`manual-tutorial/04a-api-key.md`](../manual-tutorial/04a-api-key.md) — przykład `API_KEY` to placeholder `xxxxxxxx…`, nie produkcyjny klucz 3. **`git init`** + branch `main` 4. **Pierwszy commit** — pełny import repo (bez push) ## Zakres pierwszego commita ``` ubuntu-bare-metal/ ├── README.md ├── .gitignore ├── scripts/ ├── manual-tutorial/ # 13 rozdziałów (00–10, 04a) ├── coding-agent/ # handoff, ADR, deployment notes └── stacks/ ├── vllm/ ├── localai/ ├── comfyui/ ├── gpu-fan/ ├── server-ui/ # panel :8091, CLI PTY, Pliki, GPU Fan ├── control-plane/ # env_loader, wspólny API_KEY ├── npmplus/ └── llamacpp/ ``` ### Nie trafia do gita - `**/.env` (produkcja: `/opt/control-plane/.env` poza repo) - `**/.venv/`, `**/__pycache__/` - `stacks/localai/upstream/` (jeśli sklonowany lokalnie) ## Ostatnie zmiany Server UI (GPU Fan chart) W [`stacks/server-ui/static/index.html`](../stacks/server-ui/static/index.html): - Siatka i podziałka temperatury (°C) / prędkości (%) - Linijki kreskowe (zamiast kolorowych pasków gradientowych) - Odstęp etykiet Y od lewej linijki (`yLabelX`) - Odstęp etykiet X od dolnej linijki (`xLabelY`) - Responsywne SVG: `aspect-ratio: 600/360`, `height: auto` (bez rozciągania na mobile) - Wyśrodkowanie wykresu w karcie: `margin: 0 auto` Powiązane docs: [`manual-tutorial/06-gpu-fan-control.md`](../manual-tutorial/06-gpu-fan-control.md), [`SERVER-UI-CLI.md`](SERVER-UI-CLI.md), [`SERVER-UI-CLI-BUGFIX.md`](SERVER-UI-CLI-BUGFIX.md). ## Push na Gitea (gdy masz URL) ```bash cd ~/cursor/ubuntu-bare-metal # jednorazowo — podstaw URL z Gitea (SSH lub HTTPS) git remote add origin # jeśli repo na Gitea ma już README / initial commit: # git pull origin main --allow-unrelated-histories # (rozwiąż ewentualne konflikty, potem push) git push -u origin main ``` Przykładowe URL: - HTTPS: `https://gitea.example.com/user/ubuntu-bare-metal.git` - SSH: `git@gitea.example.com:user/ubuntu-bare-metal.git` ## Checklist bezpieczeństwa przed każdym commitem ```bash cd ~/cursor/ubuntu-bare-metal # 1. Brak sekretów w staged plikach git diff --cached | grep -iE 'API_KEY=|HF_TOKEN=|password=|secret=' && echo 'STOP: sekret w diff!' || echo 'OK' # 2. .env nie jest śledzony git status --short | grep '\.env' && echo 'STOP: .env w staging!' || echo 'OK' # 3. Dry-run — co trafi do commita git add -n . # 4. Szukaj przypadkowych kluczy w docs grep -rE '[a-f0-9]{32}' manual-tutorial/ coding-agent/ --include='*.md' | grep -v xxxxxxxx ``` ## Zalecenia po redakcji klucza w tutorialu Klucz produkcyjny był kiedyś w `04a-api-key.md`. Rozważ **rotację** `API_KEY` w `/opt/control-plane/.env` i restart `server-ui` / `gpu-fan`, jeśli repo będzie publiczne lub współdzielone. ## Weryfikacja po clone na innym hoście ```bash git clone ubuntu-bare-metal cd ubuntu-bare-metal/stacks/control-plane cp .env.example .env # uzupełnij API_KEY lokalnie ``` --- *Wygenerowano przy pierwszym imporcie git — lipiec 2026.*