wydanie server

Wdróż Spectrum dla zespołu

Wydanie Server działa w kontenerze i korzysta z bazy PostgreSQL firmy. Poniższe kroki prowadzą od przygotowania obrazu do pierwszego importu, konfiguracji dostępu i aktualizacji. Obraz obsługuje wymagania OpenShift, w tym uruchomienie bez uprawnień root, z dowolnym UID w grupie 0.

1. Przygotuj obraz kontenera

Nazwa i rejestr są w mailu z kluczem oraz w manifest.json wydania: <rejestr>/viewer-pro-server:<wersja>. Gdy klaster nie ma dostępu do rejestru zewnętrznego, załaduj obraz z pliku viewer-pro-server-<wersja>.tar do rejestru wewnętrznego:

podman load -i viewer-pro-server-1.4.2.tar
podman tag viewer-pro-server:1.4.2 default-route-openshift-image-registry.apps.firma.local/viewer-pro/viewer-pro-server:1.4.2
podman push default-route-openshift-image-registry.apps.firma.local/viewer-pro/viewer-pro-server:1.4.2

2. Przygotuj bazę PostgreSQL

Przygotuj serwer PostgreSQL w wersji 12 lub nowszej, jedną bazę i rolę z prawem tworzenia tabel w schemacie public. Spectrum tworzy strukturę bazy przy pierwszym uruchomieniu i aktualizuje ją podczas uruchamiania kolejnych wersji.

CREATE ROLE viewer_pro LOGIN PASSWORD '...';
CREATE DATABASE viewer_pro OWNER viewer_pro;

Na migawkę dużego środowiska przyjmij orientacyjnie 200 MB przed deduplikacją oraz około 120 MB na każdy z dwóch slotów katalogu kanonicznego. Katalog korzysta z odtwarzalnych tabel UNLOGGED. Opcjonalny plik postgres.yaml uruchamia PostgreSQL w podzie i służy wyłącznie do testów.

3. Zapisz dane dostępowe i klucz licencji

Utwórz zasób Secret z adresem bazy, kluczem szyfrującym magazyn sekretów i kluczem licencji. Plik secret.example.yaml jest szablonem — po uzupełnieniu danymi dostępowymi przechowuj go poza repozytorium.

oc new-project viewer-pro
oc create secret generic viewer-pro \
  --from-literal=WC_PG_URL='postgres://viewer_pro:HASLO@pg.firma.local:5432/viewer_pro?sslmode=require' \
  --from-literal=WEBCON_SECRET_KEY="$(openssl rand -base64 32)" \
  --from-literal=WEBCON_LICENSE='WCR1....'

4. Zastosuj pliki wdrożeniowe

Paczka viewer-pro-openshift-<wersja>.zip zawiera deployment.yaml, service.yaml, route.yaml, secret.example.yaml i kustomization.yaml. Wpisz adres obrazu i nazwę hosta trasy, a następnie uruchom:

cd deploy/openshift
# kustomization.yaml: images[0].newName / newTag; route.yaml: spec.host
oc apply -k .
oc rollout status deploy/viewer-pro
oc get route viewer-pro -o jsonpath='{.spec.host}{"\n"}'

Uruchom jedną replikę. W jej procesie działają harmonogram pobierania konfiguracji i odświeżanie licencji. Blokada w bazie (schedule.lease_until) chroni przed równoczesnym wykonaniem tego samego pobrania, ale standardowe wdrożenie zakłada jeden proces programu.

elementwartość
port kontenera8080 (zmienna PORT, OpenShift może nadać inny)
readiness / livenessGET /healthz → 200 z wersją programu
użytkowniknie-root, dowolny UID w grupie 0 (chgrp 0, chmod g=u na katalogach zapisu)
zasobyrequests 250m / 512Mi, limits 1 CPU / 2Gi — wartości początkowe; dostosuj je do wielkości konfiguracji i obciążenia
trasaTLS edge albo reencrypt; program obsługuje X-Forwarded-* i ustawia nagłówki bezpieczeństwa (CSP z nonce, HSTS)
logowanielogi JSON na stdout; ograniczenie częstotliwości prób logowania (rate limit)

5. Docker / Podman bez orkiestratora

docker run -d --name viewer-pro \
  -p 8080:8080 \
  -e WC_PG_URL='postgres://viewer_pro:HASLO@pg.firma.local:5432/viewer_pro' \
  -e WEBCON_SECRET_KEY="$(openssl rand -base64 32)" \
  -e WEBCON_LICENSE='WCR1....' \
  --restart unless-stopped \
  <rejestr>/viewer-pro-server:1.4.2

curl -s http://localhost:8080/healthz

Skonfiguruj przed kontenerem reverse proxy z obsługą TLS, np. nginx, Traefik lub Caddy. To proxy obsługuje szyfrowane połączenie HTTPS.

6. Skonfiguruj dostęp zespołu

  1. Przy pierwszym starcie na pustej bazie program zakłada konto admin z hasłem tymczasowym wypisanym w logu (oc logs deploy/viewer-pro | grep -i haslo). Zaloguj się i zmień hasło w Uprawnienia → Użytkownicy.
  2. Role i nadania: załóż role (np. „Analitycy”, „Wdrożeniowcy”), nadaj im zakresy (wszystkie środowiska / workspace / środowisko / aplikacja - na odczyt), dodaj konta do ról. Konto bez roli po zalogowaniu widzi pustą listę; „Efektywny dostęp” pokazuje, co dana osoba zobaczy.
  3. Logowanie. Opisane tutaj wydanie obsługuje konta lokalne oraz role. Dla organizacji korzystających z Microsoft Entra ID dostępne jest również wydanie z integracją SSO. Dobór obrazu i konfigurację logowania potwierdź przed wdrożeniem; sama brama przed aplikacją nie zastępuje jej kontroli uprawnień.

7. Wczytaj konfigurację i ustaw harmonogram

Paczki .bpe możesz przesłać w zakładce Import. Program przetworzy je kolejno na serwerze. Alternatywnie skopiuj pliki do kontenera i uruchom import przez oc exec:

oc cp ./eksport/DEV viewer-pro-xxxx:/tmp/dev
oc exec deploy/viewer-pro -- viewer-pro ingest import "/tmp/dev/*.bpe" --workspace "Klient A" --env DEV

Źródła MS SQL skonfiguruj w zakładce Źródła SQL, a harmonogram w Workspace. Program może pobierać konfigurację co określoną liczbę minut (every_minutes) lub o wskazanej godzinie (at_time). Jeśli konfiguracja się nie zmieniła, nie tworzy kolejnej migawki. Wynik „sprawdzone, bez zmian” zapisuje w dzienniku pobrań.

Limity dostępu. Plan dla firmy określa liczbę aktywnych użytkowników, a plan partnerski — liczbę przestrzeni klientów. Po wykorzystaniu limitu program zablokuje dodanie kolejnego konta lub przestrzeni i wyświetli komunikat. Dotychczasowe dane pozostaną dostępne. Definicje aktywnego użytkownika i przestrzeni klienta znajdziesz w tabeli planów, a zasady zmiany planu w instrukcji licencji.

8. Wykonaj aktualizację

pg_dump -Fc viewer_pro > viewer_pro-przed-1.5.0.dump
oc set image deploy/viewer-pro viewer-pro=<rejestr>/viewer-pro-server:1.5.0
oc rollout status deploy/viewer-pro

Przed zmianą obrazu wykonaj kopię bazy. Nowa wersja aktualizuje jej strukturę przy uruchomieniu, zachowując treść migawek. Powrót do starszego obrazu wymaga przywrócenia kopii sprzed aktualizacji. Sprawdź również, czy nowa wersja mieści się w opłaconym okresie aktualizacji — wersje z tego okresu pozostają dostępne bezterminowo.

9. Sprawdź wymagane połączenia

Pełna lista tego, co opuszcza sieć: bezpieczeństwo.