# 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`.