PageSourceSearch

https://www.dataforeman.app/

html dataforeman.app collected 2026-10-09 22:45:26 UTC 34,805 bytes, 669 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4	<meta name="generator" content="Hugo 0.92.2" />
4<script src="/livereload.js?mindelay=10&amp;v=2&amp;port=4000&amp;path=livereload" data-no-instant defer></script>
4
5    <meta charset="UTF-8">
6    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7    <meta http-equiv="X-UA-Compatible" content="IE=edge">
8    
9    
10    <title>DataForeman - Industrial Data Historian</title>
11    <meta name="description" content="Modern, containerized industrial telemetry collection and visualization platform with time-series storage and real-time analytics.">
12    <meta name="keywords" content="industrial historian, time-series database, OPC UA, EtherNet/IP, SCADA, industrial IoT, telemetry, React, Material UI, TimescaleDB">
13    <meta name="author" content="DataForeman Team">
14    
15    
16    <meta property="og:title" content="DataForeman - Industrial Data Historian">
17    <meta property="og:description" content="Modern, containerized industrial telemetry collection and visualization platform with time-series storage and real-time analytics.">
18    <meta property="og:type" content="website">
19    <meta property="og:url" content="http://localhost:4000/">
20    <meta property="og:site_name" content="DataForeman - Industrial Data Historian">
21    
22    
23    <meta name="twitter:card" content="summary_large_image">
24    <meta name="twitter:title" content="DataForeman - Industrial Data Historian">
25    <meta name="twitter:description" content="Modern, containerized industrial telemetry collection and visualization platform with time-series storage and real-time analytics.">
26    
27    
28    <link rel="icon" type="image/x-icon" href="/favicon.ico">
29    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
30    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
31    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
32    
33    
34    <link rel="canonical" href="http://localhost:4000/">
35    
36    
37    <link rel="preconnect" href="https://fonts.googleapis.com">
38    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
39    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
40    
41    
42    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
43    
44    
45    <link rel="stylesheet" href="/css/main.css">
46    
47    
48    
49    
49<script async defer data-website-id="37d3ade5-04b1-477d-80cb-84a8f8cd220a" src="https://stats.dataforeman.app/script.js"></script>
49
50    
51    
52    
53    
53<script type="application/ld+json">
54    {
55        "@context": "https://schema.org",
56        "@type": "Organization",
57        "name": "DataForeman - Industrial Data Historian",
58        "url": "http:\/\/localhost:4000\/",
59        "description": "Modern, containerized industrial data collection and visualization platform with real-time analytics.",
60        
61        "sameAs": [
62            "https:\/\/github.com\/orionK-max\/DataForeman"
63        ],
64        
65        "mainEntityOfPage": {
66            "@type": "WebPage",
67            "@id": "http:\/\/localhost:4000\/"
68        }
69    }
70    </script>
70
71</head>
72<body>
73    
74    <a href="#main-content" class="skip-link">Skip to main content</a>
75    
76    
77    <header class="site-header" role="banner">
78    <div class="container">
79        <div class="header-content">
80            
81            <div class="site-branding">
82                <a href="/" class="site-logo">
83                    <img src="/images/logo-light.png" alt="DataForeman Logo" width="100" height="100" style="object-fit: cover;">
84                    <span class="site-title">DataForeman</span>
85                </a>
86            </div>
87            
88            
89            <nav class="main-navigation" role="navigation" aria-label="Main Navigation">
90                <ul class="nav-menu">
91                    
92                    <li class="nav-item has-dropdown">
93                        <a href="#" class="nav-link">
94                            Product
95                        </a>
96                        
97                        <ul class="dropdown-menu">
98                            
99                            <li><a href="/features/" class="dropdown-link">Features</a></li>
100                            
101                            <li><a href="/download/" class="dropdown-link">Download</a></li>
102                            
103                        </ul>
104                        
105                    </li>
106                    
107                    <li class="nav-item has-dropdown">
108                        <a href="#" class="nav-link">
109                            Resources
110                        </a>
111                        
112                        <ul class="dropdown-menu">
113                            
114                            <li><a href="/documentation/" class="dropdown-link">Documentation</a></li>
115                            
116                            <li><a href="/extensions/" class="dropdown-link">Extensions</a></li>
117                            
118                            <li><a href="/tools/l5x-viewer.html" class="dropdown-link">L5X Viewer</a></li>
119                            
120                            <li><a href="/support/" class="dropdown-link">Support</a></li>
121                            
122                        </ul>
123                        
124                    </li>
125                    
126                    <li class="nav-item">
127                        <a href="/about/" class="nav-link">
128                            About
129                        </a>
130                        
131                    </li>
132                    
133                    <li class="nav-item">
134                        <a href="/blog/" class="nav-link">
135                            Blog
136                        </a>
137                        
138                    </li>
139                    
140                    <li class="nav-item">
141                        <a href="/contact/" class="nav-link">
142                            Contact
143                        </a>
144                        
145                    </li>
146                    
147                </ul>
148            </nav>
149            
150            
151            <div class="header-actions">
152                <a href="https://github.com/orionK-max/DataForeman" class="github-link" target="_blank" rel="noopener" aria-label="View DataForeman on GitHub">
153                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
154                        <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
155                    </svg>
156                    <span class="sr-only">GitHub</span>
157                </a>
158                
159                <a href="/download/" class="btn btn-primary btn-sm">
160                    Download
161                </a>
162                
163                <a href="https://demo.dataforeman.app" class="btn btn-demo btn-sm" target="_blank" rel="noopener">
164                    Live Demo
165                </a>
166                
167                <a href="/tools/l5x-viewer.html" class="btn btn-l5x btn-sm">
168                    L5X Viewer
169                </a>
170            </div>
171            
172            
173            <button class="mobile-menu-toggle" aria-label="Toggle mobile menu" aria-expanded="false">
174                <span class="hamburger-line"></span>
175                <span class="hamburger-line"></span>
176                <span class="hamburger-line"></span>
177            </button>
178        </div>
179        
180        
181        <nav class="mobile-navigation" role="navigation" aria-label="Mobile Navigation">
182            <ul class="mobile-nav-menu">
183                
184                
185                <li class="mobile-nav-item">
186                    <a href="#" class="mobile-nav-link">
187                        Product
188                    </a>
189                </li>
190                
191                
192                
193                <li class="mobile-nav-item">
194                    <a href="#" class="mobile-nav-link">
195                        Resources
196                    </a>
197                </li>
198                
199                
200                
201                <li class="mobile-nav-item">
202                    <a href="/about/" class="mobile-nav-link">
203                        About
204                    </a>
205                </li>
206                
207                
208                
209                <li class="mobile-nav-item">
210                    <a href="/blog/" class="mobile-nav-link">
211                        Blog
212                    </a>
213                </li>
214                
215                
216                
217                <li class="mobile-nav-item">
218                    <a href="/contact/" class="mobile-nav-link">
219                        Contact
220                    </a>
221                </li>
222                
223                
224                <li class="mobile-nav-item">
225                    <a href="https://github.com/orionK-max/DataForeman" class="mobile-nav-link" target="_blank" rel="noopener">
226                        GitHub
227                    </a>
228                </li>
229            </ul>
230        </nav>
231    </div>
232</header>
233    
234    
235    
236    
237    
238    <main id="main-content" role="main">
239        
240<div class="homepage">
241    
242    
243    <div style="background: linear-gradient(90deg, #19407A 0%, #235094 100%); color: white; padding: 0.85rem 1.5rem;">
244        <div class="container" style="display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.5rem 1rem; text-align: center;">
245            <span style="background: #F27C24; color: white; padding: 0.2rem 0.7rem; border-radius: 20px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.03em; white-space: nowrap;">NEW</span>
246            <span style="font-size: 0.95rem;">
247                <strong>DataForeman v0.8.0</strong> is here
248                 — States & Events overlays for Chart Composer, Faster real-time charts - live delta updates, no more 50k point cap, New Installable Connectivity Drivers framework for third-party device support, and more
249            </span>
250            <a href="https://github.com/orionK-max/DataForeman/releases/tag/v0.8.0" target="_blank" rel="noopener" style="color: white; font-weight: 700; text-decoration: underline; white-space: nowrap;">See what's new →</a>
251            <a href="/download/" style="color: white; font-weight: 700; text-decoration: underline; white-space: nowrap;">Update now</a>
252        </div>
253    </div>
254    
255    
256    
257    <section class="hero">
258        <div class="container">
259            <div class="hero-content">
260                <h1 class="hero-title">Modern Industrial Data Collection, Simplified</h1>
261                <p class="hero-subtitle">Transform your manufacturing data with our containerized, real-time historian platform. Connect any protocol, automate with Flow Studio, visualize everything, scale effortlessly.</p>
262                <div class="hero-demo-action">
263                    <a href="https://demo.dataforeman.app" class="btn btn-demo-hero" target="_blank" rel="noopener">
264                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" style="margin-right: 8px;">
265                            <path d="M8 5v14l11-7z"/>
266                        </svg>
267                        View Online Demo
268                    </a>
269                </div>
270                <div class="hero-actions">
271                    <a href="/download/" class="btn btn-primary">Download for Free</a>
272                    <a href="/documentation/" class="btn btn-secondary">Read Documentation</a>
273                </div>
274            </div>
275            <div class="hero-visual">
276                <div class="hero-dashboard">
277                    
278                    <div class="dashboard-mockup">
279                        <div class="mockup-header">
280                            <div class="mockup-controls">
281                                <span class="control red"></span>
282                                <span class="control yellow"></span>
283                                <span class="control green"></span>
284                            </div>
285                            <div class="mockup-title" id="hero-mockup-title">Chart Composer</div>
286                        </div>
287                        <div class="mockup-content">
288                            <img src="/images/Screenshot-dark.png" alt="DataForeman Dashboard Screenshot" class="dashboard-screenshot" id="hero-dashboard-img">
289                        </div>
290                    </div>
291                </div>
292            </div>
293        </div>
294    </section>
295
296    
297    <section style="background: linear-gradient(135deg, #f8f9fa 0%, #eef2f7 100%); padding: var(--spacing-10) 0; border-top: 1px solid #e8ecf0;">
298        <div class="container">
299            <div style="display: flex; align-items: center; gap: 3rem; max-width: 1100px; margin: 0 auto; flex-wrap: wrap;">
300                <div style="flex: 1; min-width: 280px;">
301                    <div style="margin-bottom: 1rem;">
302                        <span style="background: #F27C24; color: white; padding: 0.3rem 0.9rem; border-radius: 20px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;">Featured Extension</span>
303                    </div>
304                    <h2 style="font-size: 2rem; font-weight: 700; color: #19407A; margin: 0.75rem 0 0.5rem 0; line-height: 1.2;">Forecast Extension</h2>
305                    <p style="font-size: 1.15rem; color: #555; margin: 0 0 1.25rem 0; line-height: 1.6;">AI-powered time-series forecasting built right into your historian. Predict future values for any tag using <strong>Amazon Chronos-2</strong> — running locally, no cloud required.</p>
306                    <ul style="list-style: none; padding: 0; margin: 0 0 1.75rem 0; color: #444; font-size: 0.95rem; line-height: 2;">
307                        <li>✅ Integrates with Flow Studio</li>
308                        <li>✅ Two model sizes — accuracy vs. speed</li>
309                        <li>✅ Data stays on your network</li>
310                    </ul>
311                    <div style="display: flex; gap: 1rem; flex-wrap: wrap;">
312                        <a href="/extensions/" class="btn btn-primary" style="padding: 0.7rem 1.4rem;">Get Extension</a>
313                        <a href="/documentation/forecast-extension/" class="btn btn-secondary" style="padding: 0.7rem 1.4rem;">Documentation</a>
314                    </div>
315                </div>
316                <div style="flex: 0 0 auto; background: linear-gradient(135deg, #19407A 0%, #0f2d5a 100%); border-radius: 20px; padding: 2.5rem 2rem; color: white; text-align: center; min-width: 220px; box-shadow: 0 8px 32px rgba(25, 64, 122, 0.25);">
317                    <div style="margin-bottom: 1rem;">
318                        <svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
319                            <rect width="64" height="64" rx="16" fill="rgba(255,255,255,0.08)"/>
320                            
321                            <line x1="12" y1="50" x2="52" y2="50" stroke="rgba(255,255,255,0.35)" stroke-width="1.5" stroke-linecap="round"/>
322                            <line x1="12" y1="50" x2="12" y2="14" stroke="rgba(255,255,255,0.35)" stroke-width="1.5" stroke-linecap="round"/>
323                            
324                            <polyline points="12,42 20,36 28,38 36,28" stroke="rgba(255,255,255,0.6)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="none"/>
325                            
326                            <polyline points="36,28 44,20 52,14" stroke="#F27C24" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="3 3" fill="none"/>
327                            
328                            <polygon points="36,28 44,24 52,17 52,11 44,16 36,28" fill="rgba(242,124,36,0.15)"/>
329                            
330                            <circle cx="36" cy="28" r="3" fill="#F27C24"/>
330
331                        </svg>
332                    </div>
333                    <div style="font-weight: 700; font-size: 1rem; margin-bottom: 0.25rem;">Amazon Chronos-2</div>
334                    <div style="opacity: 0.75; font-size: 0.85rem; margin-bottom: 1.5rem;">Foundation model · 120M params</div>
335                    <div style="background: rgba(255,255,255,0.1); border-radius: 10px; padding: 1rem; font-size: 0.82rem; text-align: left; line-height: 2; color: rgba(255,255,255,0.9);">
336                        <div>― Horizon up to <strong style="color:white;">1024 steps</strong></div>
337                        <div>― Context up to <strong style="color:white;">8192 pts</strong></div>
338                        <div>― CPU only, no GPU needed</div>
339                        <div>― 100% local inference</div>
340                    </div>
341                </div>
342            </div>
343        </div>
344    </section>
345
346    
347    <section class="features">
348        <div class="container">
349            <h2 class="section-title">Why Choose DataForeman?</h2>
350            <div class="features-grid" style="max-width: 1200px; margin: 0 auto;">
351                
352                <div class="feature-card">
353                    <div class="feature-icon">
354                        <span class="material-icons">hub</span>
355                    </div>
356                    <div class="feature-metric">Extensible</div>
357                    <h3 class="feature-title">Multi-Protocol Support</h3>
358                    <p class="feature-description">Connect to major industrial protocols with extensible architecture for future expansion</p>
359                </div>
360                
361                <div class="feature-card">
362                    <div class="feature-icon">
363                        <span class="material-icons">dashboard</span>
364                    </div>
365                    <div class="feature-metric">Real-time Charts</div>
366                    <h3 class="feature-title">Modern Web Interface</h3>
367                    <p class="feature-description">Advanced web technology with dark/light themes and responsive design</p>
368                </div>
369                
370                <div class="feature-card">
371                    <div class="feature-icon">
372                        <span class="material-icons">speed</span>
373                    </div>
374                    <div class="feature-metric">High Throughput</div>
375                    <h3 class="feature-title">High-Performance Storage</h3>
376                    <p class="feature-description">Optimized time-series database with automatic retention and compression policies</p>
377                </div>
378                
379                <div class="feature-card">
380                    <div class="feature-icon">
381                        <span class="material-icons">security</span>
382                    </div>
383                    <div class="feature-metric">SOC 2 Ready</div>
384                    <h3 class="feature-title">Enterprise Security</h3>
385                    <p class="feature-description">Comprehensive permission system with modern authentication and audit logging</p>
386                </div>
387                
388            </div>
389        </div>
390    </section>
391
392    
393    <section class="quick-start">
394        <div class="container">
395            <h2 class="section-title">Install DataForeman in Minutes</h2>
396            <div class="quick-start-content" style="display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; max-width: 1000px; margin: 0 auto;">
397                <div class="install-column" style="margin-top: 2rem;">
398                    <h3 style="text-align: left; margin-bottom: 2rem; color: #F27C24;">Linux Installer</h3>
399                    <div class="step">
400                        <div class="step-number">1</div>
401                        <div class="step-content">
402                            <h3>Create directory</h3>
403                            <code>mkdir dataforeman &amp;&amp; cd dataforeman</code>
404                        </div>
405                    </div>
406                    <div class="step">
407                        <div class="step-number">2</div>
408                        <div class="step-content">
409                            <h3>Download files</h3>
410                            <code>curl -o docker-compose.yml ...</code>
411                        </div>
412                    </div>
413                    <div class="step">
414                        <div class="step-number">3</div>
415                        <div class="step-content">
416                            <h3>Run start script</h3>
417                            <code>sudo bash start.sh</code>
418                        </div>
419                    </div>
420                    <div class="step">
421                        <div class="step-number">4</div>
422                        <div class="step-content">
423                            <h3>Access Interface</h3>
424                            <code>http://localhost:8080</code>
425                        </div>
426                    </div>
427                </div>
428                <div class="install-column" style="margin-top: 2rem;">
429                    <h3 style="text-align: left; margin-bottom: 2rem; color: #F27C24;">Windows Installer</h3>
430                    <div class="step">
431                        <div class="step-number">1</div>
432                        <div class="step-content">
433                            <h3>Download installer</h3>
434                            <a href="https://github.com/orionK-max/DataForeman/releases" target="_blank" rel="noopener" style="text-decoration: none;">
435                                <code style="cursor: pointer;">GitHub releases</code>
436                            </a>
437                        </div>
438                    </div>
439                    <div class="step">
440                        <div class="step-number">2</div>
441                        <div class="step-content">
442                            <h3>Run setup</h3>
443                        </div>
444                    </div>
445                    <div class="step">
446                        <div class="step-number">3</div>
447                        <div class="step-content">
448                            <h3 style="line-height: 1.2; margin: 0;">Launch DataForeman<br>from Start Menu</h3>
449                        </div>
450                    </div>
451                    <div class="step">
452                        <div class="step-number">4</div>
453                        <div class="step-content">
454                            <h3>Access Interface</h3>
455                            <code>http://localhost:8080</code>
456                        </div>
457                    </div>
458                </div>
459            </div>
460            <div class="quick-start-actions" style="margin-top: 3rem; text-align: center;">
461                <a href="/getting-started/" class="btn btn-primary">
461Full Installation Guide</a>
462                <a href="/download/" class="btn btn-outline">Download Options</a>
463            </div>
464        </div>
465    </section>
466
467    
468    
469    <section class="whats-next" style="background-color: #f8f9fa; padding: var(--spacing-10) 0;">
470        <div class="container">
471            <div style="background-color: white; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); border-radius: 12px; padding: var(--spacing-8); max-width: 800px; margin: 0 auto;">
472                <h2 class="section-title" style="margin-bottom: calc(var(--spacing-4) / 2); color: #19407A;">Vote for the Next Feature!</h2>
473                <p class="feature-intro-text" style="margin-bottom: var(--spacing-6); color: #6c757d;">Click to vote on GitHub and help prioritize development</p>
474                <div style="margin-bottom: var(--spacing-6); display: flex; justify-content: center;">
475                    <div style="color: #19407A; font-size: 1.2rem; text-align: left;">
476                        <span style="color: #28a745; font-size: 1.8rem; font-weight: bold; margin-right: 0.3em;">✓</span> <span style="text-decoration: none;">MQTT driver</span> <a href="/documentation/mqtt/" style="color: #F27C24; font-weight: 600; text-decoration: none; font-size: 0.9rem;">→ Learn More</a><br>
477                        <span style="color: #28a745; font-size: 1.8rem; font-weight: bold; margin-right: 0.3em;">✓</span> <span style="text-decoration: none;">Flow Studio - Visual data processing</span> <a href="/documentation/flows/" style="color: #F27C24; font-weight: 600; text-decoration: none; font-size: 0.9rem;">→ Learn More</a><br>
478                        <span style="font-size: 1.5rem;">☐</span> More widgets (bar, gauge, pie, XY, etc.) <span style="color: #F27C24; font-weight: 600;"></span><br>
479                        <span style="font-size: 1.5rem;">☐</span> Modbus TCP <span style="color: #F27C24; font-weight: 600;"></span><br>
480                        <br>
481                    </div>
482                </div>
483                <div style="text-align: center;">
484                    <a href="https://github.com/orionK-max/DataForeman/discussions/2" target="_blank" rel="noopener" class="btn btn-demo-hero">
485                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" style="margin-right: 8px;">
486                            <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
487                        </svg>
488                        Vote on GitHub
489                    </a>
490                </div>
491            </div>
492        </div>
493    </section>
494
495    
496    <section class="community">
497        <div class="container">
498            <h2 class="section-title">Join the Community</h2>
499            <div class="community-grid">
500                <div class="community-card">
501                    <div class="community-icon">
502                        <span class="material-icons">code</span>
503                    </div>
504                    <h3>Open Source</h3>
505                    <p>DataForeman is MIT licensed and completely open source. Contribute on GitHub.</p>
506                    <a href="https://github.com/orionK-max/DataForeman" class="community-link">View on GitHub →</a>
507                </div>
508                <div class="community-card">
509                    <div class="community-icon">
510                        <span class="material-icons">forum</span>
511                    </div>
512                    <h3>Discussions</h3>
513                    <p>Get help, share ideas, and connect with other DataForeman users.</p>
514                    <a href="https://github.com/orionK-max/DataForeman/discussions" class="community-link">Join Discussion →</a>
515                </div>
516                <div class="community-card">
517                    <div class="community-icon">
518                        <span class="material-icons">support</span>
519                    </div>
520                    <h3>Support</h3>
521                    <p>Professional support and consulting services available for enterprises.</p>
522                    <a href="/support/" class="community-link">Learn More →</a>
523                </div>
524            </div>
525        </div>
526    </section>
527
528    
529    <section class="homepage-content">
530        <div class="container">
531            <div class="content">
532                
533            </div>
534        </div>
535    </section>
536</div>
537
538<script>
539
540(function() {
541    const images = [
542        { src: '/images/Screenshot-dark.png', title: 'Chart Composer', alt: 'DataForeman Dashboard Screenshot' },
543        { src: '/images/docs/flows/flow.png', title: 'Flow Studio', alt: 'Flow Studio Visual Programming' }
544    ];
545    let currentIndex = 0;
546    const imgElement = document.getElementById('hero-dashboard-img');
547    const titleElement = document.getElementById('hero-mockup-title');
548    
549    function rotateImage() {
550        currentIndex = (currentIndex + 1) % images.length;
551        const fadeOut = imgElement.style.opacity === '' ? 1 : parseFloat(imgElement.style.opacity);
552        
553        imgElement.style.transition = 'opacity 0.5s';
554        imgElement.style.opacity = '0';
555        
556        setTimeout(function() {
557            imgElement.src = images[currentIndex].src;
558            imgElement.alt = images[currentIndex].alt;
559            titleElement.textContent = images[currentIndex].title;
560            imgElement.style.opacity = '1';
561        }, 500);
562    }
563    
564    
565    setTimeout(function() {
566        rotateImage();
567        setInterval(rotateImage, 6000);
568    }, 4000);
569})();
570</script>
570
571
572    </main>
573    
574    
575    <footer class="site-footer" role="contentinfo">
576    <div class="container">
577        <div class="footer-content">
578            
579            <div class="footer-brand">
580                <div class="footer-logo">
581                    <img src="/images/logo-light.png" alt="DataForeman Logo" width="32" height="34">
582                    <span class="footer-title">DataForeman - Industrial Data Historian</span>
583                </div>
584                <p class="footer-description">
585                    Modern, containerized industrial data collection and visualization platform with real-time …
586                </p>
587                <div class="footer-social">
588                    <a href="https://github.com/orionK-max/DataForeman" class="social-link" target="_blank" rel="noopener" aria-label="GitHub">
589                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
590                            <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
591                        </svg>
592                    </a>
593                    <a href="https://www.linkedin.com/in/maxim-krylov-51364831" class="social-link" target="_blank" rel="noopener" aria-label="LinkedIn">
594                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
595                            <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
596                        </svg>
597                    </a>
598                </div>
599            </div>
600            
601            
602            <div class="footer-links">
603                <div class="footer-column">
604                    <h3 class="footer-heading">Product</h3>
605                    <ul class="footer-menu">
606                        <li><a href="/features/">Features</a></li>
607                        <li><a href="/download/">Download</a></li>
608                        <li><a href="/documentation/">Documentation</a></li>
609                    </ul>
610                </div>
611                
612                <div class="footer-column">
613                    <h3 class="footer-heading">Support</h3>
614                    <ul class="footer-menu">
615                        <li><a href="/support/">Help Center</a></li>
616                        <li><a href="https://github.com/orionK-max/DataForeman/discussions">Community</a></li>
617                        <li><a href="https://github.com/orionK-max/DataForeman/issues">Report Bug</a></li>
618                        <li><a href="/contact/">Contact</a></li>
619                    </ul>
620                </div>
621                
622                <div class="footer-column">
623                    <h3 class="footer-heading">Company</h3>
624                    <ul class="footer-menu">
625                        <li><a href="/about/">About</a></li>
626                        <li><a href="/blog/">Blog</a></li>
627                        <li><a href="https://github.com/orionK-max/DataForeman">Open Source</a></li>
628                        <li><a href="/contact/">Contact</a></li>
629                    </ul>
630                </div>
631                
632                <div class="footer-column">
633                    <h3 class="footer-heading">Resources</h3>
634                    <ul class="footer-menu">
635                        <li><a href="https://github.com/orionK-max/DataForeman/releases">Releases</a></li>
636                        <li><a href="/documentation/contributing/">Contributing</a></li>
637                        <li><a href="https://github.com/orionK-max/DataForeman/blob/main/LICENSE">License</a></li>
638                    </ul>
639                </div>
640            </div>
641        </div>
642        
643        
644        <div class="footer-bottom">
645            <div class="footer-bottom-content">
646                <p class="copyright">
647                    © 2026 DataForeman. Released under the <a href="https://github.com/orionK-max/DataForeman/blob/main/LICENSE" target="_blank" rel="noopener">MIT License</a>.
648                </p>
649                <div class="footer-bottom-links">
650                    <a href="/privacy/">Privacy Policy</a>
651                    <a href="/terms/">Terms of Service</a>
652                    <a href="/security/">Security</a>
653                </div>
654            </div>
655        </div>
656    </div>
657</footer>
658    
659    
660    <button id="scroll-to-top" class="scroll-to-top" aria-label="Scroll to top">
661        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
662            <polyline points="18 15 12 9 6 15"></polyline>
663        </svg>
664    </button>
665    
666    
667    
667<script src="/js/main.js"></script>
667
668</body>
669</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.