# Szczegółowy Dziennik Operacyjny i Wdrożeniowy Ekosystemu TechArmor

**Właściciel / Administrator:** Grzegorz Wolaniuk  
**Domena:** `techarmor.pl`  
**Adres IP VPS:** `192.109.240.163`  
**Data utworzenia dziennika:** 27 sierpnia 2026 r.  

Niniejszy dokument stanowi pełny, chronologiczny zapis wszystkich operacji, decyzji architektonicznych, napotkanych problemów technicznych oraz rozwiązań wdrożeniowych przeprowadzonych w celu uruchomienia samohostowanego ekosystemu firmowego.

---

## 1. Przegląd Architektury i Stosu Technologicznego

Ekosystem opiera się na konteneryzacji (Docker / Docker Compose), orkiestrowany przy użyciu podejścia **Infrastructure as Code (IaC)**. W skład wdrożonego środowiska wchodzą następujące usługi:

*   **Zarządzanie ruchem i SSL:** Nginx Proxy Manager (`proxy.techarmor.pl`)
*   **Centralny pulpit:** Homepage (`dashboard.techarmor.pl`)
*   **Monitorowanie:** Uptime Kuma (`status.techarmor.pl`)
*   **Uwierzytelnianie (SSO):** Authentik (`auth.techarmor.pl`)
*   **Chmura i pakiet biurowy:** Nextcloud + Collabora Online (`cloud.techarmor.pl`, `office.techarmor.pl`)
*   **Zarządzanie kodem i CI/CD:** Forgejo (`git.techarmor.pl`)
*   **Zarządzanie zadaniami:** Plane (`tasks.techarmor.pl`)
*   **Baza wiedzy i Wiki:** Docmost (`wiki.techarmor.pl`)
*   **Archiwum dokumentów i OCR:** Paperless-ngx (`docs.techarmor.pl`)
*   **Biblioteka e-booków:** Calibre-Web (`books.techarmor.pl`)
*   **Zarządzanie aliasami e-mail:** SimpleLogin (`mail.techarmor.pl`)
*   **System obsługi zgłoszeń (Helpdesk):** FreeScout (`support.techarmor.pl`)

---

## 2. Faza Inicjalizacji i Konfiguracji (IaC)

1.  **Struktura Projektu:** Przygotowano repozytorium IaC zawierające pliki `docker-compose.yml`, szablony zmiennych środowiskowych oraz konfigurację pulpitu Homepage.
2.  **Konfiguracja Zmiennych Środowiskowych (`.env`):**
    *   Utworzono plik `.env` na bazie `.env.example`.
    *   Wygenerowano silne, losowe hasła dla baz danych PostgreSQL oraz MariaDB (m.in. dla Authentik, Docmost, Paperless, FreeScout oraz SimpleLogin).
3.  **Rozszerzenie Stosu o FreeScout:**
    *   Dodano usługi `freescout`, `freescout-db` (MariaDB 10.11) oraz `freescout-redis` do pliku `docker-compose.yml`.
    *   Zaktualizowano plik `services.yaml` w module Homepage, dodając kafel do panelu pod adresem `https://support.techarmor.pl`.
    *   Zaktualizowano plan wdrożeniowy (`company_ecosystem_plan.md`).

---

## 3. Napotkane Problemy i Kryzys Przestrzeni Dyskowej

Podczas pierwszych prób wdrożenia za pomocą `docker compose up -d` napotkano krytyczny problem braku wolnego miejsca na dysku (`no space left on device`).

1.  **Analiza partycji:** Wykryto, że główna partycja systemowa (`/dev/nvme0n1p10`, montowana pod `/var/home`) o pojemności 70 GB została zapełniona niemal w 98% przez lokalne dane kontenerów i pamięć podręczną (`~/.local/share/containers`).
2.  **Operacje czyszczenia:**
    *   Usunięto zbędne instalatory i pliki archiwów z katalogu domowego (`Anytype`, pakiety `.rpm`, `.flatpak`, `.rar`).
    *   Wykonano czyszczenie kontenerów i wolumenów przy użyciu poleceń `podman system prune -af --volumes`.
3.  **Rozwiązanie problemu rejestru obrazów FreeScout:**
    *   Oryginalny obraz `freescouthelpdesk/freescout` zwracał błąd dostępu (`denied`).
    *   Zmieniono definicję obrazu w `docker-compose.yml` na stabilną i powszechnie wspieraną alternatywę: `tiredofit/freescout:latest`.
4.  **Migracja katalogu kontenerów (Kluczowe rozwiązanie):**
    *   Zatrzymano procesy wymagające dostępu do dysku.
    *   Przeniesiono katalog danych kontenerów z ograniczonej partycji `/var/home/th0/.local/share/containers` na przestronną partycję systemową `/run/media/th0/endeavouros` (posiadającą ponad 200 GB wolnego miejsca).
    *   Utworzono dowiązanie symboliczne (`ln -s`), co pozwoliło systemowi kontenerów na bezproblemową pracę na nowym dysku.

---

## 4. Status Wdrożenia i Uruchomienie Kontenerów

Po rozwiązaniu problemów z miejscem na dysku, polecenie `docker compose up -d` zostało wykonane pomyślnie. Pobrane i uruchomione zostały następujące kontenery:

*   `docker-nginx-proxy-manager-1` (Nginx Proxy Manager)
*   `docker-homepage-1` (Homepage Dashboard)
*   `docker-uptime-kuma-1` (Uptime Kuma)
*   `docker-authentik-server-1` & `docker-authentik-worker-1` (Authentik SSO)
*   `docker-nextcloud-1` (Nextcloud)
*   `docker-collabora-1` (Collabora Online)
*   `docker-forgejo-1` (Forgejo)
*   `docker-paperless-webserver-1` (Paperless-ngx)
*   `docker-calibre-web-1` (Calibre-Web)
*   `docker-freescout-1` (FreeScout)
*   Wszystkie wymagane instancje baz danych (`postgres:15-alpine`, `mariadb:10.11`) oraz klastry pamięci podręcznej (`redis:7-alpine`).

---

## 5. Bieżące Zadania Operacyjne i Następne Kroki

1.  **Diagnostyka usług w pętli restartów:**
    *   Zidentyfikowano chwilowe problemy z uruchomieniem kontenerów `docmost` oraz `simplelogin-app`.
    *   *Plan działania:* Analiza logów (`docker logs docker-docmost-1` oraz `docker logs docker-simplelogin-app-1`) pod kątem poprawności zmiennych środowiskowych połączenia z bazą danych.
2.  **Konfiguracja Authentik:**
    *   Ustalenie dostępu do panelu administratora i wygenerowanie/ustawienie tokenu oraz haseł bootstrapowych.
    *   Planowana integracja logowania SSO dla poszczególnych aplikacji w ekosystemie.
3.  **Konfiguracja Nginx Proxy Manager:**
    *   Dodanie hostów proxy dla każdej subdomeny w panelu administracyjnym NPM (`port 81`).
    *   Wygenerowanie certyfikatów SSL Let's Encrypt dla pełnego szyfrowania ruchu HTTPS w domenie `techarmor.pl`.
