aknouce94 commited on
Commit
f33d9d8
·
verified ·
1 Parent(s): c605052

# HTS Investigation Suite - Docker Compose Production

Browse files

# HIGH TECH SECURITY - Déploiement containerisé complet

version: '3.8'

services:
# API Backend Python
hts-api:
build:
context: .
dockerfile: Dockerfile.api
container_name: hts-investigation-api
restart: unless-stopped
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://hts_user:HTS_Investigation_2025!@postgres:5432/hts_investigation
- REDIS_URL=redis://:HTS_Redis_2025!@redis:6379/0
- SECRET_KEY=HTS_INVESTIGATION_SECRET_2025_ULTRA_SECURE
- ENVIRONMENT=production
- COMPANY_NAME=HIGH TECH SECURITY
- COMPANY_ADDRESS=203-205 The Vale, London W3 7QS, United Kingdom
- COMPANY_NUMBER=7849187
- POLICY_NUMBER=550.232.804
- CONTACT_UK=+44 7591 665201
- CONTACT_ES=+34 673 075445
- CONTACT_US=+1 302 579 0159
- CONTACT_EMAIL=contact@hts-investigation.com
depends_on:
- postgres
- redis
volumes:
- ./data/uploads:/app/uploads
- ./data/models:/app/models
- ./logs:/app/logs
networks:
- hts-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s

# Frontend React
hts-frontend:
build:
context: .
dockerfile: Dockerfile.frontend
container_name: hts-investigation-frontend
restart: unless-stopped
ports:
- "3000:80"
environment:
- REACT_APP_API_URL=http://localhost:8000
- REACT_APP_COMPANY_NAME=HIGH TECH SECURITY
- REACT_APP_VERSION=2.1.0
depends_on:
- hts-api
networks:
- hts-network

# Base de données PostgreSQL
postgres:
image: postgres:15-alpine
container_name: hts-postgres
restart: unless-stopped
environment:
- POSTGRES_DB=hts_investigation
- POSTGRES_USER=hts_user
- POSTGRES_PASSWORD=HTS_Investigation_2025!
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-db.sql:/docker-entrypoint-initdb.d/init-db.sql
networks:
- hts-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U hts_user -d hts_investigation"]
interval: 10s
timeout: 5s
retries: 5

# Redis Cache
redis:
image: redis:7-alpine
container_name: hts-redis
restart: unless-stopped
command: redis-server --requirepass HTS_Redis_2025! --maxmemory 256mb --maxmemory-policy allkeys-lru
volumes:
- redis_data:/data
networks:
- hts-network
healthcheck:
test: ["CMD", "redis-cli", "--no-auth-warning", "-a", "HTS_Redis_2025!", "ping"]
interval: 10s
timeout: 5s
retries: 3

# Nginx Reverse Proxy
nginx:
image: nginx:alpine
container_name: hts-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./data/ssl:/etc/nginx/ssl
- ./data/web:/var/www/html
depends_on:
- hts-api
- hts-frontend
networks:
- hts-network

# Monitoring Prometheus
prometheus:
image: prom/prometheus:latest
container_name: hts-prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
- '--storage.tsdb.retention.time=15d'
- '--web.enable-lifecycle'
networks:
- hts-network

# Grafana Dashboard
grafana:
image: grafana/grafana:latest
container_name: hts-grafana
restart: unless-stopped
ports:
- "3001:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=HTS_Grafana_2025!
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_DOMAIN=localhost
- GF_SMTP_ENABLED=false
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/dashboards:/etc/grafana/provisioning/dashboards
- ./grafana/datasources:/etc/grafana/provisioning/datasources
depends_on:
- prometheus
networks:
- hts-network

# Worker Background Tasks
hts-worker:
build:
context: .
dockerfile: Dockerfile.api
container_name: hts-investigation-worker
restart: unless-stopped
command: python worker.py
environment:
- DATABASE_URL=postgresql://hts_user:HTS_Investigation_2025!@postgres:5432/hts_investigation
- REDIS_URL=redis://:HTS_Redis_2025!@redis:6379/0
- SECRET_KEY=HTS_INVESTIGATION_SECRET_2025_ULTRA_SECURE
- ENVIRONMENT=production
depends_on:
- postgres
- redis
volumes:
- ./data/uploads:/app/uploads
- ./data/models:/app/models
- ./logs:/app/logs
networks:
- hts-network

# Elasticsearch pour logs (optionnel)
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
container_name: hts-elasticsearch
restart: unless-stopped
environment:
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
networks:
- hts-network

# Kibana pour visualisation logs
kibana:
image: docker.elastic.co/kibana/kibana:8.11.0
container_name: hts-kibana
restart: unless-stopped
ports:
- "5601:5601"
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
depends_on:
- elasticsearch
networks:
- hts-network

# Backup automatique
backup:
image: postgres:15-alpine
container_name: hts-backup
restart: unless-stopped
environment:
- PGPASSWORD=HTS_Investigation_2025!
volumes:
- ./backups:/backups
- ./backup-script.sh:/backup-script.sh
command: sh -c "chmod +x /backup-script.sh && crond -f"
depends_on:
- postgres
networks:
- hts-network

volumes:
postgres_data:
driver: local
redis_data:
driver: local
prometheus_data:
driver: local
grafana_data:
driver: local
elasticsearch_data:
driver: local

networks:
hts-network:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.20.0.0/16

Files changed (1) hide show
  1. index.html +17 -20
index.html CHANGED
@@ -61,21 +61,21 @@
61
  <i data-feather="shield" class="text-white w-6 h-6"></i>
62
  </div>
63
  <div>
64
- <h1 class="text-2xl font-bold text-gray-900">CyberSleuth Prodigy</h1>
65
- <p class="text-sm text-gray-600">HTS Investigation Suite v2.1</p>
66
- </div>
67
  </div>
68
 
69
  <div class="hidden md:flex items-center space-x-6">
70
  <div class="text-right">
71
- <div class="text-sm text-gray-600">203-205 The Vale, London W3 7QS</div>
72
- <div class="text-xs text-gray-500">UK: +44 7591 665201 | Company: 7849187</div>
73
- </div>
74
- <div class="flex items-center space-x-2 bg-green-50 px-3 py-2 rounded-lg">
75
- <i data-feather="lock" class="w-4 h-4 text-green-600"></i>
76
- <span class="text-sm font-medium text-green-700">Secured Connection</span>
77
- </div>
78
- </div>
79
  </div>
80
  </div>
81
  </header>
@@ -85,12 +85,12 @@
85
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
86
  <div class="flex space-x-1 overflow-x-auto py-2 hide-scrollbar">
87
  <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-blue-400 text-blue-400 transition-colors">
88
- <i data-feather="activity" class="w-4 h-4"></i>
89
  <span>Dashboard</span>
90
  </a>
91
  <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
92
- <i data-feather="cpu" class="w-4 h-4"></i>
93
- <span>DarkBERT AI</span>
94
  </a>
95
  <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
96
  <i data-feather="search" class="w-4 h-4"></i>
@@ -100,11 +100,7 @@
100
  <i data-feather="eye" class="w-4 h-4"></i>
101
  <span>Monitoring</span>
102
  </a>
103
- <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
104
- <i data-feather="settings" class="w-4 h-4"></i>
105
- <span>Configuration</span>
106
- </a>
107
- </div>
108
  </div>
109
  </nav>
110
 
@@ -270,8 +266,9 @@
270
  </div>
271
  </main>
272
 
 
273
  <script>
274
- feather.replace();
275
  VANTA.GLOBE({
276
  el: "#vanta-bg",
277
  mouseControls: true,
 
61
  <i data-feather="shield" class="text-white w-6 h-6"></i>
62
  </div>
63
  <div>
64
+ <h1 class="text-2xl font-bold text-gray-900">HIGH TECH SECURITY</h1>
65
+ <p class="text-sm text-gray-600">HTS Investigation Suite v2.1</p>
66
+ </div>
67
  </div>
68
 
69
  <div class="hidden md:flex items-center space-x-6">
70
  <div class="text-right">
71
+ <div class="text-gray-600">203-205 The Vale, London W3 7QS</div>
72
+ <div class="text-gray-600">UK: +44 7591 665201 | Company: 7849187</div>
73
+ </div>
74
+ <div class="flex items-center space-x-2">
75
+ <i data-feather="lock" class="w-5 h-5 text-green-500"></i>
76
+ <span class="text-sm text-green-600 font-medium">Sécurisé</span>
77
+ </div>
78
+ </div>
79
  </div>
80
  </div>
81
  </header>
 
85
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
86
  <div class="flex space-x-1 overflow-x-auto py-2 hide-scrollbar">
87
  <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-blue-400 text-blue-400 transition-colors">
88
+ <i data-feather="trending-up" class="w-4 h-4"></i>
89
  <span>Dashboard</span>
90
  </a>
91
  <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
92
+ <i data-feather="brain" class="w-4 h-4"></i>
93
+ <span>Analyse DB IA</span>
94
  </a>
95
  <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
96
  <i data-feather="search" class="w-4 h-4"></i>
 
100
  <i data-feather="eye" class="w-4 h-4"></i>
101
  <span>Monitoring</span>
102
  </a>
103
+ </div>
 
 
 
 
104
  </div>
105
  </nav>
106
 
 
266
  </div>
267
  </main>
268
 
269
+ <script src="https://cdn.jsdelivr.net/npm/animejs@3.2.1/lib/anime.min.js"></script>
270
  <script>
271
+ feather.replace();
272
  VANTA.GLOBE({
273
  el: "#vanta-bg",
274
  mouseControls: true,