techarmor-iaac/ecosystem_operations_log.md

5.6 KiB

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.