Add detailed operations log and update ecosystem configuration

This commit is contained in:
Grzegorz Wolaniuk 2026-08-27 11:33:01 +02:00
parent 5454f0df02
commit cb770f1778
2 changed files with 104 additions and 0 deletions

14
.gitignore vendored Normal file
View file

@ -0,0 +1,14 @@
# Secrets and environment files
.env
*.tfvars
*.tfstate
*.tfstate.backup
# Terraform cache
.terraform/
.terraform.lock.hcl
# OS & IDE
.DS_Store
.vscode/
.idea/

View file

@ -0,0 +1,90 @@
# 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`.