aknouce94 commited on
Commit
b304bbf
·
verified ·
1 Parent(s): 3cbb053

# HTS Investigation Suite - Dockerfile Frontend React

Browse files

# HIGH TECH SECURITY - Production Frontend Container

# Stage 1: Build React App
FROM node:18-alpine AS builder

# Métadonnées
LABEL maintainer="HIGH TECH SECURITY <contact@hts-investigation.com>"
LABEL version="2.1.0"
LABEL description="HTS Investigation Suite Frontend"

# Variables d'environnement de build
ENV NODE_ENV=production
ENV REACT_APP_API_URL=http://localhost:8000
ENV REACT_APP_COMPANY_NAME="HIGH TECH SECURITY"
ENV REACT_APP_COMPANY_ADDRESS="203-205 The Vale, London W3 7QS, United Kingdom"
ENV REACT_APP_COMPANY_NUMBER="7849187"
ENV REACT_APP_POLICY_NUMBER="550.232.804"
ENV REACT_APP_VERSION="2.1.0"

WORKDIR /app

# Installation dépendances
COPY package*.json ./
RUN npm ci --only=production

# Copie du code source
COPY . .

# Build optimisé pour production
RUN npm run build

# Stage 2: Production Nginx
FROM nginx:alpine

# Installation utilitaires
RUN apk add --no-cache curl

# Configuration Nginx optimisée
COPY nginx-frontend.conf /etc/nginx/conf.d/default.conf

# Copie des fichiers buildés
COPY --from=builder /app/build /usr/share/nginx/html

# Page d'information HTS
RUN echo '<!DOCTYPE html>
<html>
<head>
<title>HIGH TECH SECURITY - HTS Investigation Suite</title>
<meta charset="UTF-8">
<style>
body { font-family: Arial, sans-serif; margin: 40px; background: #f5f5f5; }
.container { max-width: 800px; margin: 0 auto; background: white; padding: 40px; border-radius: 10px; box-shadow: 0 0 20px rgba(0,0,0,0.1); }
.logo { text-align: center; margin-bottom: 30px; }
.logo h1 { color: #2563eb; margin: 0; font-size: 2.5em; }
.logo p { color: #666; margin: 5px 0; }
.info { background: #f8fafc; padding: 20px; border-radius: 8px; margin: 20px 0; }
.contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-top: 30px; }
.contact-item { background: #e5e7eb; padding: 15px; border-radius: 8px; }
.status { background: #dcfce7; border: 1px solid #bbf7d0; color: #166534; padding: 15px; border-radius: 8px; text-align: center; margin: 20px 0; }
</style>
</head>
<body>
<div class="container">
<div class="logo">
<h1>🛡️ HIGH TECH SECURITY</h1>
<p>HTS Investigation Suite v2.1.0</p>
<p>Solutions Anti-Fraude pour Administrations</p>
</div>

<div class="status">
<strong>✅ Système opérationnel</strong> - Tous les services sont en ligne
</div>

<div class="info">
<h3>À propos</h3>
<p>HTS Investigation Suite est une solution complète d\'investigation et de détection de fraudes développée par HIGH TECH SECURITY pour les administrations publiques.</p>
<p><strong>Fonctionnalités principales :</strong></p>
<ul>
<li>🧠 Analyse IA DarkBERT (BERT/ALBERT/RoBERTa)</li>
<li>🔍 Investigation modules spécialisés</li>
<li>🛡️ Sécurité maximale et chiffrement E2E</li>
<li>📊 Monitoring temps réel</li>
<li>⚖️ Conformité RGPD et ISO 27001</li>
</ul>
</div>

<div class="contact">
<div class="contact-item">
<h4>🏢 Siège Social</h4>
<p><strong>HIGH TECH SECURITY</strong><br>
203-205 The Vale<br>
London W3 7QS<br>
United Kingdom</p>
</div>

<div class="contact-item">
<h4>📞 Contacts</h4>
<p><strong>UK:</strong> +44 7591 665201<br>
<strong>Espagne:</strong> +34 673 075445<br>
<strong>USA:</strong> +1 302 579 0159<br>
<strong>Email:</strong> contact@hts-investigation.com</p>
</div>

<div class="contact-item">
<h4>📋 Informations Légales</h4>
<p><strong>Company Number:</strong> 7849187<br>
<strong>Policy Number:</strong> 550.232.804<br>
<strong>Certifications:</strong> ISO 27001<br>
<strong>Conformité:</strong> RGPD</p>
</div>
</div>

<div class="info" style="text-align: center; margin-top: 30px;">
<p><strong>Accès sécurisé réservé aux administrations autorisées</strong></p>
<p>Support technique 24/7 disponible</p>
</div>
</div>
</body>
</html>' > /usr/share/nginx/html/info.html

# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost/ || exit 1

# Exposition du port
EXPOSE 80

# Démarrage Nginx
CMD ["nginx", "-g", "daemon off;"]

Files changed (3) hide show
  1. darkbert.html +150 -0
  2. index.html +11 -11
  3. investigations.html +88 -0
darkbert.html ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>DarkBERT Analysis | HTS Investigation Suite</title>
7
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
11
+ <style>
12
+ @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Rubik:wght@300;400;500;600;700&display=swap');
13
+ body {
14
+ font-family: 'Rubik', sans-serif;
15
+ }
16
+ .code-font {
17
+ font-family: 'JetBrains Mono', monospace;
18
+ }
19
+ .vanta-canvas {
20
+ position: absolute;
21
+ top: 0;
22
+ left: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ z-index: 0;
26
+ opacity: 0.15;
27
+ }
28
+ </style>
29
+ </head>
30
+ <body class="bg-gray-50">
31
+ <div id="vanta-bg" class="vanta-canvas"></div>
32
+
33
+ <!-- Header -->
34
+ <header class="relative z-10 bg-white shadow-lg border-b border-gray-200">
35
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
36
+ <div class="flex items-center justify-between">
37
+ <div class="flex items-center space-x-4">
38
+ <div class="bg-blue-600 p-2 rounded-lg">
39
+ <i data-feather="shield" class="text-white w-6 h-6"></i>
40
+ </div>
41
+ <div>
42
+ <h1 class="text-2xl font-bold text-gray-900">HIGH TECH SECURITY</h1>
43
+ <p class="text-sm text-gray-600">HTS Investigation Suite v2.1</p>
44
+ </div>
45
+ </div>
46
+
47
+ <div class="hidden md:flex items-center space-x-6">
48
+ <div class="text-right">
49
+ <div class="text-gray-600">203-205 The Vale, London W3 7QS</div>
50
+ <div class="text-gray-600">UK: +44 7591 665201 | Company: 7849187</div>
51
+ </div>
52
+ <div class="flex items-center space-x-2">
53
+ <i data-feather="lock" class="w-5 h-5 text-green-500"></i>
54
+ <span class="text-sm text-green-600 font-medium">Sécurisé</span>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </header>
60
+
61
+ <!-- Navigation -->
62
+ <nav class="relative z-10 bg-gray-800 text-white">
63
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
64
+ <div class="flex space-x-1 overflow-x-auto py-2 hide-scrollbar">
65
+ <a href="/" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
66
+ <i data-feather="trending-up" class="w-4 h-4"></i>
67
+ <span>Dashboard</span>
68
+ </a>
69
+ <a href="/darkbert" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-blue-400 text-blue-400 transition-colors">
70
+ <i data-feather="brain" class="w-4 h-4"></i>
71
+ <span>DarkBERT Analysis</span>
72
+ </a>
73
+ <a href="/investigations" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
74
+ <i data-feather="search" class="w-4 h-4"></i>
75
+ <span>Investigations</span>
76
+ </a>
77
+ <a href="/monitoring" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
78
+ <i data-feather="eye" class="w-4 h-4"></i>
79
+ <span>Monitoring</span>
80
+ </a>
81
+ </div>
82
+ </div>
83
+ </nav>
84
+
85
+ <!-- Main Content -->
86
+ <main class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
87
+ <div class="bg-white rounded-xl shadow-lg p-6 mb-8">
88
+ <h2 class="text-2xl font-bold text-gray-900 mb-6">DarkBERT Secure Analysis</h2>
89
+
90
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
91
+ <div class="space-y-4">
92
+ <div>
93
+ <label class="block text-sm font-medium text-gray-700 mb-2">Client Type</label>
94
+ <select class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500">
95
+ <option value="police">Police Forces</option>
96
+ <option value="fiscal">Tax Administration</option>
97
+ <option value="customs">Customs Services</option>
98
+ <option value="court">Courts</option>
99
+ </select>
100
+ </div>
101
+
102
+ <div>
103
+ <label class="block text-sm font-medium text-gray-700 mb-2">Investigation Title</label>
104
+ <input type="text" placeholder="Ex: Criminal Network Investigation 2025" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500">
105
+ </div>
106
+
107
+ <div>
108
+ <label class="block text-sm font-medium text-gray-700 mb-2">AI Model</label>
109
+ <select class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500">
110
+ <option value="bert">BERT (Fast - 94.2%)</option>
111
+ <option value="albert">ALBERT (Very Fast - 91.8%)</option>
112
+ <option value="roberta">RoBERTa (Accurate - 96.1%)</option>
113
+ </select>
114
+ </div>
115
+ </div>
116
+
117
+ <div>
118
+ <label class="block text-sm font-medium text-gray-700 mb-2">Documents to Analyze (one per line)</label>
119
+ <textarea placeholder="Insert your documents here, one per line..." class="w-full h-40 p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 font-mono text-sm"></textarea>
120
+ <p class="text-xs text-gray-500 mt-1">0 documents | Minimum 3 documents required</p>
121
+ </div>
122
+ </div>
123
+
124
+ <div class="mt-6 flex gap-4">
125
+ <button class="flex-1 bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 px-6 rounded-lg transition-colors flex items-center justify-center gap-2">
126
+ <i data-feather="brain" class="w-5 h-5"></i>
127
+ Run DarkBERT Analysis
128
+ </button>
129
+ </div>
130
+ </div>
131
+ </main>
132
+
133
+ <script>
134
+ feather.replace();
135
+ VANTA.GLOBE({
136
+ el: "#vanta-bg",
137
+ mouseControls: true,
138
+ touchControls: true,
139
+ gyroControls: false,
140
+ minHeight: 200.00,
141
+ minWidth: 200.00,
142
+ scale: 1.00,
143
+ scaleMobile: 1.00,
144
+ color: 0x3b82f6,
145
+ backgroundColor: 0xf8fafc,
146
+ size: 0.8
147
+ });
148
+ </script>
149
+ </body>
150
+ </html>
index.html CHANGED
@@ -84,19 +84,19 @@
84
  <nav class="relative z-10 bg-gray-800 text-white">
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>DarkBERT Analysis</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>
97
  <span>Investigations</span>
98
  </a>
99
- <a href="#" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
100
  <i data-feather="eye" class="w-4 h-4"></i>
101
  <span>Monitoring</span>
102
  </a>
@@ -231,19 +231,19 @@
231
  <div class="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
232
  <h3 class="text-lg font-semibold text-gray-900 mb-4">Start New Analysis</h3>
233
  <p class="text-sm text-gray-600 mb-4">Initiate DarkBERT analysis with documents or text input</p>
234
- <button class="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-lg flex items-center justify-center space-x-2">
235
  <i data-feather="brain" class="w-4 h-4"></i>
236
  <span>Launch DarkBERT Analysis</span>
237
- </button>
238
  </div>
239
 
240
  <div class="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
241
  <h3 class="text-lg font-semibold text-gray-900 mb-4">Recent Investigations</h3>
242
  <div class="space-y-2">
243
- <a href="#" class="block p-2 hover:bg-gray-50 rounded-lg text-sm">Operation Midnight</a>
244
- <a href="#" class="block p-2 hover:bg-gray-50 rounded-lg text-sm">Sigma Protocol</a>
245
- <a href="#" class="block p-2 hover:bg-gray-50 rounded-lg text-sm">Phoenix Network</a>
246
- </div>
247
  </div>
248
 
249
  <div class="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
@@ -265,9 +265,9 @@
265
  </div>
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",
 
84
  <nav class="relative z-10 bg-gray-800 text-white">
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="/darkbert" 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>DarkBERT Analysis</span>
94
  </a>
95
+ <a href="/investigations" 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>
97
  <span>Investigations</span>
98
  </a>
99
+ <a href="/monitoring" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
100
  <i data-feather="eye" class="w-4 h-4"></i>
101
  <span>Monitoring</span>
102
  </a>
 
231
  <div class="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
232
  <h3 class="text-lg font-semibold text-gray-900 mb-4">Start New Analysis</h3>
233
  <p class="text-sm text-gray-600 mb-4">Initiate DarkBERT analysis with documents or text input</p>
234
+ <a href="/darkbert" class="w-full bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-lg flex items-center justify-center space-x-2">
235
  <i data-feather="brain" class="w-4 h-4"></i>
236
  <span>Launch DarkBERT Analysis</span>
237
+ </a>
238
  </div>
239
 
240
  <div class="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
241
  <h3 class="text-lg font-semibold text-gray-900 mb-4">Recent Investigations</h3>
242
  <div class="space-y-2">
243
+ <a href="/investigations/operation-midnight" class="block p-2 hover:bg-gray-50 rounded-lg text-sm">Operation Midnight</a>
244
+ <a href="/investigations/sigma-protocol" class="block p-2 hover:bg-gray-50 rounded-lg text-sm">Sigma Protocol</a>
245
+ <a href="/investigations/phoenix-network" class="block p-2 hover:bg-gray-50 rounded-lg text-sm">Phoenix Network</a>
246
+ </div>
247
  </div>
248
 
249
  <div class="bg-white rounded-xl shadow-lg p-6 border border-gray-200">
 
265
  </div>
266
  </div>
267
  </main>
 
268
  <script src="https://cdn.jsdelivr.net/npm/animejs@3.2.1/lib/anime.min.js"></script>
269
  <script>
270
+ // Initialize Vanta.js globe effect
271
  feather.replace();
272
  VANTA.GLOBE({
273
  el: "#vanta-bg",
investigations.html ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ```html
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Investigations | HTS Investigation Suite</title>
8
+ <link rel="icon" type="image/x-icon" href="/static/favicon.ico">
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script>
12
+ <style>
13
+ @import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Rubik:wght@300;400;500;600;700&display=swap');
14
+ body {
15
+ font-family: 'Rubik', sans-serif;
16
+ }
17
+ .vanta-canvas {
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100%;
22
+ height: 100%;
23
+ z-index: 0;
24
+ opacity: 0.15;
25
+ }
26
+ </style>
27
+ </head>
28
+ <body class="bg-gray-50">
29
+ <div id="vanta-bg" class="vanta-canvas"></div>
30
+
31
+ <!-- Header -->
32
+ <header class="relative z-10 bg-white shadow-lg border-b border-gray-200">
33
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
34
+ <div class="flex items-center justify-between">
35
+ <div class="flex items-center space-x-4">
36
+ <div class="bg-blue-600 p-2 rounded-lg">
37
+ <i data-feather="shield" class="text-white w-6 h-6"></i>
38
+ </div>
39
+ <div>
40
+ <h1 class="text-2xl font-bold text-gray-900">HIGH TECH SECURITY</h1>
41
+ <p class="text-sm text-gray-600">HTS Investigation Suite v2.1</p>
42
+ </div>
43
+ </div>
44
+
45
+ <div class="hidden md:flex items-center space-x-6">
46
+ <div class="text-right">
47
+ <div class="text-gray-600">203-205 The Vale, London W3 7QS</div>
48
+ <div class="text-gray-600">UK: +44 7591 665201 | Company: 7849187</div>
49
+ </div>
50
+ <div class="flex items-center space-x-2">
51
+ <i data-feather="lock" class="w-5 h-5 text-green-500"></i>
52
+ <span class="text-sm text-green-600 font-medium">Sécurisé</span>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </header>
58
+
59
+ <!-- Navigation -->
60
+ <nav class="relative z-10 bg-gray-800 text-white">
61
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
62
+ <div class="flex space-x-1 overflow-x-auto py-2 hide-scrollbar">
63
+ <a href="/" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
64
+ <i data-feather="trending-up" class="w-4 h-4"></i>
65
+ <span>Dashboard</span>
66
+ </a>
67
+ <a href="/darkbert" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
68
+ <i data-feather="brain" class="w-4 h-4"></i>
69
+ <span>DarkBERT Analysis</span>
70
+ </a>
71
+ <a href="/investigations" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-blue-400 text-blue-400 transition-colors">
72
+ <i data-feather="search" class="w-4 h-4"></i>
73
+ <span>Investigations</span>
74
+ </a>
75
+ <a href="/monitoring" class="flex items-center space-x-2 px-4 py-3 border-b-2 border-transparent hover:border-gray-600 transition-colors">
76
+ <i data-feather="eye" class="w-4 h-4"></i>
77
+ <span>Monitoring</span>
78
+ </a>
79
+ </div>
80
+ </div>
81
+ </nav>
82
+
83
+ <!-- Main Content -->
84
+ <main class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
85
+ <div class="bg-white rounded-xl shadow-lg p-6 mb-8">
86
+ <div class="flex items-center justify-between mb-6">
87
+ <h2 class="text-2xl font-bold text-gray-900">Active Investigations</h2>
88
+ <button class="bg-blue-600 hover:bg-blue-700