Přeskočit na obsah

VerifyWise Deployment

Praktický průvodce nasazením VerifyWise AI governance platformy v kontextu českých firem a EU regulací.


Přehled

AspektDetail
PlatformaVerifyWise
VerzeLatest (doporučeno)
LicenceBSL 1.1 (source-available)
DeploymentDocker, Kubernetes, On-premise
Čas nasazení1-2 dny (základní), 1-2 týdny (enterprise)

Prerekvizity

Technické požadavky

KomponentaMinimumDoporučeno
CPU2 cores4+ cores
RAM4 GB8+ GB
Disk20 GB50+ GB SSD
OSLinux (Ubuntu 20.04+), macOS, Windows (WSL2)Ubuntu 22.04 LTS
Docker20.10+Latest
Docker Compose2.0+Latest

Síťové požadavky

PortSlužba
3000Frontend (web UI)
8080Backend API
5432PostgreSQL (interní)
6379Redis (interní)

Personální požadavky

RoleZodpovědnostOdhadovaný čas
DevOps/SysAdminInstalace, konfigurace4-8 hodin
SecuritySSL, přístupová práva2-4 hodiny
AI/Compliance OwnerKonfigurace policies4-8 hodin

Instalace

Varianta A: Docker Compose (doporučeno pro SME)

1. Klonování repozitáře

Terminál
# Klonování
git clone https://github.com/bluewave-labs/verifywise.git
cd verifywise
# Kontrola verze
git describe --tags

2. Konfigurace prostředí

Terminál
# Kopie šablony
cp .env.example .env
# Editace konfigurace
nano .env

Doporučená konfigurace pro CZ:

# Základní nastavení
NODE_ENV=production
APP_URL=https://ai-governance.vase-firma.cz
# Databáze
POSTGRES_USER=verifywise
POSTGRES_PASSWORD=<silne-heslo-32-znaku>
POSTGRES_DB=verifywise
# Redis
REDIS_PASSWORD=<silne-heslo-24-znaku>
# Autentizace
JWT_SECRET=<jwt-secret-64-znaku>
JWT_EXPIRY=24h
# SMTP (pro notifikace)
SMTP_HOST=smtp.vase-firma.cz
SMTP_PORT=587
SMTP_USER=ai-governance@vase-firma.cz
SMTP_PASSWORD=<smtp-heslo>
SMTP_FROM=AI Governance <ai-governance@vase-firma.cz>
# Lokalizace
TZ=Europe/Prague
LANG=cs_CZ.UTF-8

3. Spuštění

Terminál
# Build a start
docker-compose up -d
# Kontrola stavu
docker-compose ps
# Logy
docker-compose logs -f

4. Inicializace

Terminál
# Vytvoření admin účtu
docker-compose exec backend npm run seed:admin
# Výstup:
# Admin created: admin@vase-firma.cz
# Temporary password: <zobrazen>

Varianta B: Kubernetes (doporučeno pro Enterprise)

1. Helm instalace

Terminál
# Přidání repozitáře
helm repo add verifywise https://charts.verifywise.ai
helm repo update
# Vytvoření namespace
kubectl create namespace ai-governance
# Instalace
helm install verifywise verifywise/verifywise \
--namespace ai-governance \
--values values-cz.yaml

2. Příklad values-cz.yaml

# values-cz.yaml - Konfigurace pro české prostředí
global:
timezone: "Europe/Prague"
locale: "cs_CZ.UTF-8"
frontend:
replicas: 2
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
backend:
replicas: 2
resources:
requests:
memory: "512Mi"
cpu: "200m"
limits:
memory: "1Gi"
cpu: "1000m"
postgresql:
enabled: true
primary:
persistence:
size: 20Gi
storageClass: "standard"
auth:
existingSecret: "verifywise-db-secret"
redis:
enabled: true
auth:
existingSecret: "verifywise-redis-secret"
ingress:
enabled: true
className: "nginx"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
hosts:
- host: ai-governance.vase-firma.cz
paths:
- path: /
pathType: Prefix
tls:
- secretName: verifywise-tls
hosts:
- ai-governance.vase-firma.cz
# EU AI Act specifické nastavení
aiact:
enabled: true
riskCategories:
- prohibited
- high-risk
- limited-risk
- minimal-risk
defaultFramework: "eu-ai-act"

3. Secrets

Terminál
# Vytvoření secrets
kubectl create secret generic verifywise-db-secret \
--namespace ai-governance \
--from-literal=postgres-password=<heslo>
kubectl create secret generic verifywise-redis-secret \
--namespace ai-governance \
--from-literal=redis-password=<heslo>
kubectl create secret generic verifywise-app-secret \
--namespace ai-governance \
--from-literal=jwt-secret=<jwt-secret>

Konfigurace pro české prostředí

1. Lokalizace

Terminál
# V .env nebo ConfigMap
LANGUAGE=cs
DATE_FORMAT=DD.MM.YYYY
CURRENCY=CZK

2. EU AI Act nastavení

Po přihlášení do administrace:

3. České regulační orgány

Konfigurace notifikačních kontaktů:

OrgánKontaktÚčel
NÚKIBnukib.czNIS2, kybernetická bezpečnost
ÚOOÚuoou.czGDPR, ochrana osobních údajů
ČTÚctu.czTelekomunikace, AI v komunikacích
ČNBcnb.czAI ve finančních službách

4. Integrace s českými systémy

LDAP/Active Directory (pro firemní SSO)

# values.yaml nebo .env
auth:
ldap:
enabled: true
url: ldap://ad.vase-firma.cz
baseDN: "dc=vase-firma,dc=cz"
bindDN: "cn=verifywise,ou=services,dc=vase-firma,dc=cz"
bindPassword: "${LDAP_PASSWORD}"
userSearchFilter: "(sAMAccountName={{username}})"
groupSearchFilter: "(member={{dn}})"

Azure AD (pro Microsoft 365 prostředí)

auth:
oauth:
azure:
enabled: true
clientId: "${AZURE_CLIENT_ID}"
clientSecret: "${AZURE_CLIENT_SECRET}"
tenantId: "${AZURE_TENANT_ID}"

Počáteční konfigurace

1. Organizační struktura

2. Uživatelé a role

RoleOprávněníTypická pozice
AdminPlný přístupCTO, IT Manager
Compliance ManagerSpráva politik, reportyDPO, Compliance Officer
AI OwnerSpráva přiřazených AI systémůML Engineer, Product Manager
AuditorRead-only, exportInterní/externí auditor
ViewerPouze dashboardManagement

3. Import AI inventáře

Manuální import

Bulk import (CSV)

name,description,type,provider,risk_category,owner_email,department
"Fraud Detection","ML model pro detekci podvodů","ml_model","in-house","high-risk","jan.novak@firma.cz","Risk"
"Customer Chatbot","GPT-4 powered chatbot","genai","OpenAI","limited-risk","petra.svobodova@firma.cz","Support"
"CV Screening","Automatické třídění životopisů","ml_model","vendor-x","high-risk","martin.dvorak@firma.cz","HR"
Terminál
# Import přes CLI
docker-compose exec backend npm run import:ai-systems -- --file=/data/ai-systems.csv

Integrace s dalšími nástroji

MLflow (Model Registry)

values.yaml
integrations:
mlflow:
enabled: true
trackingUri: "http://mlflow.vase-firma.cz:5000"
syncInterval: "1h"

Slack notifikace

integrations:
slack:
enabled: true
webhookUrl: "${SLACK_WEBHOOK_URL}"
channels:
compliance: "#ai-compliance"
incidents: "#ai-incidents"

Jira (pro remediation tracking)

integrations:
jira:
enabled: true
baseUrl: "https://vase-firma.atlassian.net"
username: "${JIRA_USER}"
apiToken: "${JIRA_TOKEN}"
projectKey: "AICOMP"

Zálohování a DR

Automatické zálohy

values.yaml
backup:
enabled: true
schedule: "0 2 * * *" # Denně ve 2:00
retention: 30 # Dní
storage:
type: s3
bucket: "vase-firma-backups"
prefix: "verifywise/"
region: "eu-central-1" # Frankfurt - GDPR compliant

Manuální záloha

Terminál
# PostgreSQL dump
docker-compose exec postgres pg_dump -U verifywise verifywise > backup_$(date +%Y%m%d).sql
# Kompletní backup (včetně uploads)
docker-compose exec backend npm run backup -- --output=/backups/

Obnova

Terminál
# Restore databáze
docker-compose exec -T postgres psql -U verifywise verifywise < backup_20260115.sql
# Kompletní restore
docker-compose exec backend npm run restore -- --input=/backups/backup_20260115.tar.gz

Monitoring a údržba

Health checks

Terminál
# Endpoint pro monitoring
curl https://ai-governance.vase-firma.cz/api/health
# Očekávaná odpověď:
{
"status": "healthy",
"version": "1.2.3",
"database": "connected",
"redis": "connected",
"uptime": "5d 12h 34m"
}

Prometheus metriky

values.yaml
metrics:
enabled: true
serviceMonitor:
enabled: true
interval: 30s

Aktualizace

Terminál
# Docker Compose
cd verifywise
git pull
docker-compose pull
docker-compose up -d
# Kubernetes
helm repo update
helm upgrade verifywise verifywise/verifywise \
--namespace ai-governance \
--values values-cz.yaml

Bezpečnostní doporučení

1. SSL/TLS

Terminál
# Let's Encrypt (doporučeno)
certbot certonly --standalone -d ai-governance.vase-firma.cz
# Nginx konfigurace
server {
listen 443 ssl http2;
server_name ai-governance.vase-firma.cz;
ssl_certificate /etc/letsencrypt/live/ai-governance.vase-firma.cz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ai-governance.vase-firma.cz/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

2. Firewall

Terminál
# UFW (Ubuntu)
ufw allow 443/tcp
ufw allow 80/tcp # Pro Let's Encrypt renewal
ufw deny 3000/tcp # Frontend přímo nedostupný
ufw deny 8080/tcp # Backend přímo nedostupný
ufw enable

3. Databázové zabezpečení

-- Omezení přístupu
ALTER USER verifywise WITH PASSWORD '<nové-silné-heslo>';
REVOKE ALL ON DATABASE verifywise FROM PUBLIC;
GRANT ALL ON DATABASE verifywise TO verifywise;

Troubleshooting

Časté problémy

ProblémPříčinaŘešení
Container nenaběhneNedostatek RAMZvýšit RAM na 4GB+
Database connection refusedPostgreSQL nenaběhldocker-compose restart postgres
502 Bad GatewayBackend nedostupnýKontrola logů: docker-compose logs backend
Slow performanceNedostatečný disk I/OPoužít SSD, zvýšit IOPS
Login nefungujeJWT secret změněnKonzistentní JWT_SECRET

Diagnostika

Terminál
# Kontrola všech služeb
docker-compose ps
# Logy konkrétní služby
docker-compose logs -f backend
# Databázové připojení
docker-compose exec backend npm run db:check
# Disk usage
docker system df

Podpora a komunita

Oficiální zdroje

České komunity

  • AI & ML Czech Republic (LinkedIn skupina)
  • NÚKIB - pro dotazy k NIS2 a kybernetické bezpečnosti
  • ÚOOÚ - pro dotazy ke GDPR a zpracování osobních údajů

Checklist: Nasazení VerifyWise

Příprava

  • Technické požadavky splněny (CPU, RAM, disk)
  • Docker/Kubernetes připraven
  • SSL certifikát získán
  • DNS záznam vytvořen
  • Síťová pravidla nastavena

Instalace

  • Repository naklonováno
  • Konfigurace (.env) připravena
  • Secrets vytvořeny
  • Kontejnery spuštěny
  • Health check úspěšný

Konfigurace

  • Admin účet vytvořen
  • Organizace nastavena
  • EU AI Act framework aktivován
  • Uživatelé a role definovány
  • AI inventory importován

Integrace

  • SSO/LDAP nakonfigurováno (volitelné)
  • Slack/Teams notifikace (volitelné)
  • MLflow integrace (volitelné)
  • Jira integrace (volitelné)

Zabezpečení

  • SSL/TLS aktivní
  • Firewall pravidla nastavena
  • Zálohy nakonfigurovány
  • Monitoring aktivní

Go-live

  • Smoke test proveden
  • Dokumentace pro uživatele připravena
  • Training pro tým naplánován
  • Incident response plán připraven