On-premise nasazení¶
Nasazení pomocí Docker Compose na Rocky Linux / RHEL
Verze dokumentu: 1.0.0
Poslední aktualizace: 2026-02-10
Licenční úroveň: Všechny
1. Přehled architektury¶
graph LR
FW["🛡️ Firewall"] --> Nginx["🌐 Nginx<br/>(TLS Termination)<br/>:443"]
Nginx --> BE["⚙️ API Server<br/>:8080"]
Nginx --> OCSP["📜 OCSP Responder<br/>:8081"]
Nginx --> FE["🖥️ Web Interface<br/>:5173"]
BE --> PG["🗄️ PostgreSQL<br/>:5432"]
BE --> Redis["⚡ Redis<br/>:6379"]
classDef network fill:#F5F5F5,stroke:#9E9E9E,stroke-width:2px,color:#424242
classDef app fill:#EBF5FB,stroke:#2196F3,stroke-width:2px,color:#1565C0
classDef data fill:#E8F5E9,stroke:#4CAF50,stroke-width:2px,color:#2E7D32
class FW,Nginx network
class BE,OCSP,FE app
class PG,Redis data
2. Systémové požadavky¶
| Komponenta | Minimální | Doporučené |
|---|---|---|
| OS | Rocky Linux 9.x / RHEL 9.x | Rocky Linux 9.4+ |
| CPU | 2 jádra | 4+ jader |
| RAM | 4 GB | 8+ GB |
| Úložiště | 50 GB SSD | 100+ GB SSD |
| Docker Engine | 24+ | Nejnovější stabilní verze |
| Docker Compose | 2.20+ | Nejnovější stabilní verze |
3. Instalace¶
Krok 1: Instalace Dockeru¶
# Rocky Linux 9 / RHEL 9
sudo dnf config-manager --add-repo \
https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
Krok 2: Příprava adresářové struktury¶
Krok 3: Načtení kontejnerových obrazů¶
Pro izolované prostředí (air-gapped) načtěte předpřipravené obrazy z offline balíčku:
# Extract offline package
tar xzf mazevault-1.8.0-offline.tar.gz
# Load Docker images
docker load < images/mazevault-backend.tar
docker load < images/mazevault-frontend.tar
docker load < images/mazevault-ocsp.tar
docker load < images/postgres-15-alpine.tar
docker load < images/redis-7-alpine.tar
docker load < images/nginx-alpine.tar
Pro prostředí s připojením k internetu se obrazy stahují automaticky z kontejnerového registru.
Krok 4: Konfigurace prostředí¶
Vytvořte soubor s proměnnými prostředí /opt/mazevault/.env:
# Database
POSTGRES_HOST=client-postgres
POSTGRES_PORT=5432
POSTGRES_USER=mazevault
POSTGRES_PASSWORD=<strong-password>
POSTGRES_DB=mazevault
# Redis
REDIS_HOST=client-redis
REDIS_PORT=6379
REDIS_PASSWORD=<strong-password>
# Application
APP_DOMAIN=vault.example.com
APP_PORT=8080
APP_ENV=production
TLS_ENABLED=true
# License
LICENSE_KEY=<your-license-key>
# Encryption (generate with: openssl rand -hex 32)
MASTER_KEY=<64-char-hex-string>
Hlavní šifrovací klíč
MASTER_KEY je kořenový šifrovací klíč pro všechna tajná data. Zálohujte jej bezpečně — ztráta tohoto klíče znamená ztrátu přístupu ke všem šifrovaným datům. Uložte kopii na fyzicky oddělené, bezpečné místo.
Krok 5: Konfigurace TLS certifikátů¶
Umístěte TLS certifikáty do adresáře /opt/mazevault/certs/:
# Required files:
/opt/mazevault/certs/server.crt # Server certificate (PEM)
/opt/mazevault/certs/server.key # Private key (PEM)
/opt/mazevault/certs/ca.crt # CA chain (PEM)
Podrobné nastavení certifikátů naleznete v sekci Konfigurace TLS.
Krok 6: Nasazení¶
Krok 7: Ověření nasazení¶
# Check all containers are running
docker compose ps
# Check API health
curl -sk https://localhost/api/v1/health | jq .
# Check logs
docker compose logs backend --tail=50
4. Konfigurace Nginx¶
Výchozí konfigurace Nginx zajišťuje TLS terminaci a reverzní proxy:
server {
listen 443 ssl http2;
server_name vault.example.com;
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# Security headers
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
# API Server
location /api/ {
proxy_pass http://backend:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# OCSP Responder
location /ocsp {
proxy_pass http://ocsp-responder:8081;
}
# Web Interface
location / {
proxy_pass http://frontend:5173;
}
}
server {
listen 80;
server_name vault.example.com;
return 301 https://$server_name$request_uri;
}
5. Konfigurace firewallu¶
# Rocky Linux / RHEL with firewalld
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
# Verify
sudo firewall-cmd --list-all
Warning
Nevystavujte porty 5432 (PostgreSQL), 6379 (Redis) ani 8080 (interní API) do sítě. Tyto porty musí být přístupné pouze v rámci Docker sítě.
sudo systemctl enable mazevault
6. Služba systemd (doporučeno)¶
Automatická integrace systemd (od vX.X)
Instalační skript (sudo ./install-mazevault.sh nebo sudo ./install-mazevault-offline.sh) nyní automaticky vytvoří a povolí systemd službu MazeVault. Manuální kroky níže jsou potřeba pouze při vlastních úpravách nebo nestandardním nasazení.
Poznámka: Instalační skript musí být spuštěn pod rootem (sudo).
Pro ruční vytvoření nebo úpravu systemd služby:
sudo cat > /etc/systemd/system/mazevault.service << 'EOF'
[Unit]
Description=MazeVault Enterprise Secrets Manager
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/opt/mazevault
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
TimeoutStartSec=120
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable mazevault
7. Offline balíček pro nasazení¶
Pro izolované prostředí (air-gapped) obsahuje offline balíček následující:
| Komponenta | Formát | Velikost (přibližně) |
|---|---|---|
| Backend obraz | .tar |
~150 MB |
| Frontend obraz | .tar |
~50 MB |
| OCSP obraz | .tar |
~30 MB |
| PostgreSQL obraz | .tar |
~80 MB |
| Redis obraz | .tar |
~30 MB |
| Nginx obraz | .tar |
~20 MB |
| Konfigurace Docker Compose | .yml |
<1 KB |
| Dokumentace | .tar (statické HTML) |
~10 MB |
| Celkem | ~370 MB |
Pro získání offline balíčku kontaktujte svého obchodního zástupce MazeVault.
Související¶
- Systémové požadavky — Požadavky na hardware a software
- Konfigurace TLS — Nastavení certifikátů
- Kontroly stavu — Ověření po nasazení
- Záloha a obnova — Postupy zálohování