Files
infra/docs/SERVER.md
T

5.6 KiB

SERVER.md — rejestr serwera

Źródło prawdy o tym, co stoi na maszynie. Każda zmiana stanu serwera = wpis tutaj, w tej samej sesji. Jeśli czegoś nie ma w tym pliku — z punktu widzenia dokumentacji to nie istnieje.

Ostatnia aktualizacja: (uzupełnić przy pierwszym bootstrapie)


1. Maszyna

Pozycja Wartość
Dostawca OVH
Model VPS-2 2026
Host OVH vps-c936b594.vps.ovh.net
vCore / RAM / dysk 6 / 12 GB / 100 GB SSD NVMe
System Ubuntu 24.04 LTS
Lokalizacja (uzupełnić)
IPv4 54.38.159.156
IPv6 (uzupełnić)
Snapshot OVH włączony, 1 slot, ręczny
Data ostatniego snapshota (uzupełniać przy każdym)

2. Domeny

Domena Rola Rejestrator DNS
dfkk.cloud infrastruktura + subdomeny projektów OVH OVH
(domena 2) wolna, pod projekt OVH OVH
(domena 3) wolna, pod projekt OVH OVH

Certyfikaty: Let's Encrypt, wildcard *.dfkk.cloud, wyzwanie DNS-01 przez API OVH. Klucze API OVH: przechowywane w /srv/infra/stacks/traefik/.env (poza repo).

Zajęte subdomeny

Subdomena Usługa Publiczna? Uwagi
git.dfkk.cloud Gitea tak rejestracja wyłączona
status.dfkk.cloud Uptime Kuma tak za basic auth
traefik.dfkk.cloud Traefik dashboard nie tylko przez tunel SSH

3. Użytkownicy systemowi

Użytkownik Rola sudo Uwagi
root logowanie po SSH wyłączone przez OVH i przez nas
ubuntu praca codzienna, Docker, Claude Code tak konto domyślne obrazu OVH

4. Klucze SSH

Każde urządzenie ma własny klucz. Zgubiony laptop = usunięcie jednej linii z authorized_keys, bez ruszania pozostałych.

Urządzenie Typ Komentarz w kluczu Dodany Status
PC (PILTECH) ed25519 KK_PILTECH_PC przed bootstrapem aktywny
PC domowy (KK_HOME_PC, Windows) ed25519 kacper@KK_HOME_PC 2026-08-20 aktywny, zweryfikowany (Accepted publickey w auth.log)
macOS ed25519 (do ustalenia) (data) (do zrobienia)
iPhone (Termius) ed25519 kacper@iphone 2026-08-20 aktywny, zweryfikowany (Accepted publickey w journalctl)

5. Porty otwarte na świat

Port Usługa Uzasadnienie
22 SSH dostęp administracyjny, tylko klucze
80 Traefik przekierowanie na 443
443 Traefik cały ruch HTTPS

Nic więcej. Każdy dodatkowy port wymaga wpisu tutaj z uzasadnieniem. Pamiętaj: opublikowany port kontenera omija ufw — patrz CLAUDE.md, sekcja 3.3.


6. Stacki infrastruktury

Stack Ścieżka Status Opis
Traefik /srv/infra/stacks/traefik (planowany) reverse proxy, TLS, wejście do wszystkiego
Gitea /srv/infra/stacks/gitea (planowany) repozytoria kodu, mirror na GitHub
Monitoring /srv/infra/stacks/monitoring (planowany) Uptime Kuma, alerty na maila

7. Projekty

Tabela uzupełniana przy każdym nowym projekcie (runbook 10-nowa-usluga.md) i czyszczona przy usuwaniu (runbook 30-usuwanie.md).

Projekt Katalog Repo Domena Wolumeny Baza Backup Uruchomiony
(brak)

8. Zadania cykliczne (cron / systemd timers)

Zadanie Harmonogram Gdzie zdefiniowane Co robi
unattended-upgrades codziennie systemd aktualizacje bezpieczeństwa
(uzupełniać)

9. Konta zewnętrzne powiązane z serwerem

Usługa Do czego Gdzie klucz/token
OVH API DNS-01 dla Traefika /srv/infra/stacks/traefik/.env
GitHub mirror repo infra token w Gitei, ustawienia push mirror
SMTP (Resend/Brevo) wysyłka maili z aplikacji .env danego projektu

10. Dziennik większych zmian

Krótko, jedna linia, najnowsze na górze. Chodzi o to, żeby po miesiącu dało się odtworzyć, co się działo — nie o pełny changelog.

Data Co się zmieniło Kto
2026-08-20 Krok 5 bootstrapu: fail2ban aktywny, jail sshd (bantime 1h, findtime 10m, maxretry 5). Od razu zbanował ruch skanujący port 22 (normalny szum) Claude
2026-08-20 Krok 4 bootstrapu: ufw aktywny, default deny incoming, dozwolone 22/80/443 (IPv4+IPv6). Zweryfikowane: SSH nadal dostępny Claude + Kacper
2026-08-20 Krok 3 bootstrapu: PasswordAuthentication no, PermitRootLogin no, AllowUsers ubuntu w sshd_config.d/99-hardening.conf. Napotkano i naprawiono konflikt: sshd_config.d/50-cloud-init.conf nadpisywał hasła z powrotem na yes (kolejność alfabetyczna plików Include) — poprawiono plik i dodano ssh_pwauth: false w cloud.cfg.d/, żeby nie wróciło po reboocie. Zweryfikowane: logowanie kluczem działa, logowanie hasłem zablokowane. macOS wciąż bez klucza — dostęp z Maca możliwy dopiero po dodaniu klucza przez już uwierzytelnione urządzenie Claude + Kacper
2026-08-20 Krok 1 bootstrapu: timezone Europe/Warsaw, hostname dfkk, pakiety bazowe, uporządkowany /etc/hosts Claude
2026-08-20 Krok 2 bootstrapu: dodane klucze SSH kacper@KK_HOME_PC (Windows) i kacper@iphone (Termius), zweryfikowane logowaniem. macOS jeszcze do zrobienia Claude + Kacper
2026-08-20 sudo dla ubuntu ustawiony na NOPASSWD (/etc/sudoers.d/90-ubuntu-nopasswd); hasło do konta ustawia Kacper ręcznie jako furtka KVM Claude
2026-08-20 Poprawki 00-bootstrap.md (Krok 9 tmux append + focus-events, Krok 10 katalogi, Krok 12 Claude Code jako wykonany, nowy Krok 14 audyt) i numeracja HANDOFF.md sekcja 6 Claude