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&v=2&port=4000&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 && 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.