VerifyWise Deployment
Praktický průvodce nasazením VerifyWise AI governance platformy v kontextu českých firem a EU regulací.
Přehled
| Aspekt | Detail |
|---|---|
| Platforma | VerifyWise |
| Verze | Latest (doporučeno) |
| Licence | BSL 1.1 (source-available) |
| Deployment | Docker, Kubernetes, On-premise |
| Čas nasazení | 1-2 dny (základní), 1-2 týdny (enterprise) |
Prerekvizity
Technické požadavky
| Komponenta | Minimum | Doporučeno |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8+ GB |
| Disk | 20 GB | 50+ GB SSD |
| OS | Linux (Ubuntu 20.04+), macOS, Windows (WSL2) | Ubuntu 22.04 LTS |
| Docker | 20.10+ | Latest |
| Docker Compose | 2.0+ | Latest |
Síťové požadavky
| Port | Služba |
|---|---|
| 3000 | Frontend (web UI) |
| 8080 | Backend API |
| 5432 | PostgreSQL (interní) |
| 6379 | Redis (interní) |
Personální požadavky
| Role | Zodpovědnost | Odhadovaný čas |
|---|---|---|
| DevOps/SysAdmin | Instalace, konfigurace | 4-8 hodin |
| Security | SSL, přístupová práva | 2-4 hodiny |
| AI/Compliance Owner | Konfigurace policies | 4-8 hodin |
Instalace
Varianta A: Docker Compose (doporučeno pro SME)
1. Klonování repozitáře
# Klonovánígit clone https://github.com/bluewave-labs/verifywise.gitcd verifywise
# Kontrola verzegit describe --tags2. Konfigurace prostředí
# Kopie šablonycp .env.example .env
# Editace konfiguracenano .envDoporučená konfigurace pro CZ:
# Základní nastaveníNODE_ENV=productionAPP_URL=https://ai-governance.vase-firma.cz
# DatabázePOSTGRES_USER=verifywisePOSTGRES_PASSWORD=<silne-heslo-32-znaku>POSTGRES_DB=verifywise
# RedisREDIS_PASSWORD=<silne-heslo-24-znaku>
# AutentizaceJWT_SECRET=<jwt-secret-64-znaku>JWT_EXPIRY=24h
# SMTP (pro notifikace)SMTP_HOST=smtp.vase-firma.czSMTP_PORT=587SMTP_USER=ai-governance@vase-firma.czSMTP_PASSWORD=<smtp-heslo>SMTP_FROM=AI Governance <ai-governance@vase-firma.cz>
# LokalizaceTZ=Europe/PragueLANG=cs_CZ.UTF-83. Spuštění
# Build a startdocker-compose up -d
# Kontrola stavudocker-compose ps
# Logydocker-compose logs -f4. Inicializace
# Vytvoření admin účtudocker-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
# Přidání repozitářehelm repo add verifywise https://charts.verifywise.aihelm repo update
# Vytvoření namespacekubectl create namespace ai-governance
# Instalacehelm install verifywise verifywise/verifywise \ --namespace ai-governance \ --values values-cz.yaml2. 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
# Vytvoření secretskubectl 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
# V .env nebo ConfigMapLANGUAGE=csDATE_FORMAT=DD.MM.YYYYCURRENCY=CZK2. EU AI Act nastavení
Po přihlášení do administrace:
3. České regulační orgány
Konfigurace notifikačních kontaktů:
| Orgán | Kontakt | Účel |
|---|---|---|
| NÚKIB | nukib.cz | NIS2, kybernetická bezpečnost |
| ÚOOÚ | uoou.cz | GDPR, ochrana osobních údajů |
| ČTÚ | ctu.cz | Telekomunikace, AI v komunikacích |
| ČNB | cnb.cz | AI ve finančních službách |
4. Integrace s českými systémy
LDAP/Active Directory (pro firemní SSO)
# values.yaml nebo .envauth: 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
| Role | Oprávnění | Typická pozice |
|---|---|---|
| Admin | Plný přístup | CTO, IT Manager |
| Compliance Manager | Správa politik, reporty | DPO, Compliance Officer |
| AI Owner | Správa přiřazených AI systémů | ML Engineer, Product Manager |
| Auditor | Read-only, export | Interní/externí auditor |
| Viewer | Pouze dashboard | Management |
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"# Import přes CLIdocker-compose exec backend npm run import:ai-systems -- --file=/data/ai-systems.csvIntegrace s dalšími nástroji
MLflow (Model Registry)
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
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 compliantManuální záloha
# PostgreSQL dumpdocker-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
# Restore databázedocker-compose exec -T postgres psql -U verifywise verifywise < backup_20260115.sql
# Kompletní restoredocker-compose exec backend npm run restore -- --input=/backups/backup_20260115.tar.gzMonitoring a údržba
Health checks
# Endpoint pro monitoringcurl 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
metrics: enabled: true serviceMonitor: enabled: true interval: 30sAktualizace
# Docker Composecd verifywisegit pulldocker-compose pulldocker-compose up -d
# Kuberneteshelm repo updatehelm upgrade verifywise verifywise/verifywise \ --namespace ai-governance \ --values values-cz.yamlBezpečnostní doporučení
1. SSL/TLS
# Let's Encrypt (doporučeno)certbot certonly --standalone -d ai-governance.vase-firma.cz
# Nginx konfiguraceserver { 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
# UFW (Ubuntu)ufw allow 443/tcpufw allow 80/tcp # Pro Let's Encrypt renewalufw deny 3000/tcp # Frontend přímo nedostupnýufw deny 8080/tcp # Backend přímo nedostupnýufw enable3. Databázové zabezpečení
-- Omezení přístupuALTER 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ém | Příčina | Řešení |
|---|---|---|
| Container nenaběhne | Nedostatek RAM | Zvýšit RAM na 4GB+ |
| Database connection refused | PostgreSQL nenaběhl | docker-compose restart postgres |
| 502 Bad Gateway | Backend nedostupný | Kontrola logů: docker-compose logs backend |
| Slow performance | Nedostatečný disk I/O | Použít SSD, zvýšit IOPS |
| Login nefunguje | JWT secret změněn | Konzistentní JWT_SECRET |
Diagnostika
# Kontrola všech služebdocker-compose ps
# Logy konkrétní službydocker-compose logs -f backend
# Databázové připojenídocker-compose exec backend npm run db:check
# Disk usagedocker system dfPodpora a komunita
Oficiální zdroje
- Dokumentace: docs.verifywise.ai
- GitHub Issues: github.com/bluewave-labs/verifywise/issues
- Discord: discord.com/invite/d3k3E4uEpR
Č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