Skip to content

Docker Setup Guide

Terminal window
# Clone and deploy everything
git clone <repository-url>
cd govop
make setup-epc-complete

What this does:

  • Generates SSL certificates - Bank-grade security automatically
  • Starts all services - VoP API, database, web interface
  • Loads test data - 131+ test cases ready to use
  • Validates setup - Confirms everything works

Access your service:

Internet → NGINX → VoP API → PostgreSQL
↓ ↓ ↓ ↓
SSL Reverse Secure Encrypted
Proxy API Database
  • VoP API Service - Main verification service
  • PostgreSQL - Encrypted database storage
  • Redis - High-speed caching
  • NGINX - SSL termination and load balancing
  • TLS 1.3+ encryption for all communications
  • Client certificate authentication (mTLS)
  • Encrypted database connections
  • Secure certificate management
Terminal window
curl -k https://localhost:8443/health

Expected: {"status": "healthy"}

Terminal window
curl -X POST https://localhost:8443/api/v1/verify \
--cert certs/client/client.crt \
--key certs/client/client.key \
-H "Content-Type: application/json" \
-d '{
"iban": "DE89370400440532013000",
"name": "John Smith"
}'

Expected: {"result": "MATCH", "confidence": "HIGH"}

Visit: https://localhost:8443/test

  • Enter test IBAN and name
  • Click “Verify”
  • See instant results
Terminal window
# For development with hot reload
make dev-epc-https
  • Features: Code hot reload, debug logging, relaxed security
  • Use for: Local development and testing
Terminal window
# For production deployment
make start-production
  • Features: Full security, monitoring, performance optimization
  • Use for: Live production environments
Terminal window
# Start services
make start-epc-https
# Stop services
make stop-epc
# Restart services
make restart-epc
# Check status
make epc-status
Terminal window
# Generate new certificates
make generate-docker-certs
# View certificate details
openssl x509 -in certs/server/server.crt -text -noout
Terminal window
# View all logs
make logs-epc
# View specific service logs
docker-compose logs vop-service
docker-compose logs postgres
docker-compose logs nginx
# Check resource usage
docker stats
services:
vop-service: # Main API service
ports: ["8443:8443"]
postgres: # Database with SSL
ports: ["5432:5432"]
redis: # Cache with TLS
ports: ["6379:6379"]
nginx: # Reverse proxy
ports: ["443:443", "80:80"]
certs/
├── ca/ # Certificate Authority
├── server/ # Server certificates
├── client/ # Client certificates
├── postgres/ # Database SSL
└── redis/ # Cache TLS
Terminal window
# Check what's running
docker ps
# Check logs for errors
make logs-epc
# Clean and restart
make clean-epc
make setup-epc-complete
Terminal window
# Regenerate all certificates
make generate-docker-certs
# Verify certificate is valid
curl -k https://localhost:8443/health
Terminal window
# Check database connection
make db-stats
# Reset database (WARNING: deletes all data)
make reset-db
Terminal window
# Test internal connectivity
docker exec govop_vop-service_1 curl -k https://localhost:8443/health
# Check network configuration
docker network ls
  • Response time: < 500ms average
  • Throughput: 1,000-10,000 requests/day
  • Resource usage: 2-4 GB RAM, 2-4 CPU cores
  • Uptime: 99.5% with monitoring
# Scale VoP service to 3 instances
services:
vop-service:
deploy:
replicas: 3
Terminal window
# Complete backup
make backup-complete
# Database only
make backup-database
# Certificates only
make backup-certificates
Terminal window
# Restore from backup
make restore-complete
# Reset to clean state
make clean-epc
make setup-ecp-complete