webserv/www/index.html
2025-10-01 18:03:00 +02:00

234 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WebServ - High Performance C++ Web Server</title>
<link rel="stylesheet" href="css/style.css">
<link rel="icon" href="favicon.ico" type="image/x-icon">
</head>
<body>
<nav class="navbar">
<div class="nav-container">
<div class="nav-logo">
<h2>WebServ</h2>
</div>
<div class="nav-menu">
<a href="#home" class="nav-link">Home</a>
<a href="#features" class="nav-link">Features</a>
<a href="#documentation" class="nav-link">Documentation</a>
<a href="#demo" class="nav-link">Demo</a>
<a href="#contact" class="nav-link">Contact</a>
</div>
<div class="hamburger">
<span class="bar"></span>
<span class="bar"></span>
<span class="bar"></span>
</div>
</div>
</nav>
<main>
<!-- Hero Section -->
<section id="home" class="hero">
<div class="hero-container">
<div class="hero-content">
<h1 class="hero-title">WebServ</h1>
<p class="hero-subtitle">A High-Performance C++20 Web Server</p>
<p class="hero-description">
Built from scratch with modern C++, featuring epoll-based event handling,
HTTP/1.1 compliance, and robust configuration management.
</p>
<div class="hero-buttons">
<a href="#demo" class="btn btn-primary">Try Demo</a>
<a href="https://github.com/WHaffmans/webserv" class="btn btn-secondary">View on GitHub</a>
</div>
</div>
<div class="hero-image">
<div class="code-preview">
<div class="code-header">
<div class="code-dots">
<span class="dot red"></span>
<span class="dot yellow"></span>
<span class="dot green"></span>
</div>
<span class="code-title">main.cpp</span>
</div>
<div class="code-content">
<pre><code class="cpp">
#include &lt;webserv/server/Server.hpp&gt;
#include &lt;webserv/config/ConfigManager.hpp&gt;
int main(int argc, char** argv) {
try {
ConfigManager& config =
ConfigManager::getInstance();
config.init(argv[1]);
Server server(config);
server.start();
} catch (const std::exception& e) {
Log::error(e.what());
return 1;
}
return 0;
}
</code></pre>
</div>
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section id="features" class="features">
<div class="container">
<h2 class="section-title">Key Features</h2>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon"></div>
<h3>High Performance</h3>
<p>Epoll-based event handling for thousands of concurrent connections with minimal resource usage.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🔧</div>
<h3>Modern C++20</h3>
<p>Built with modern C++20 features including ranges, concepts, and smart pointers for memory safety.</p>
</div>
<div class="feature-card">
<div class="feature-icon">📋</div>
<h3>HTTP/1.1 Compliant</h3>
<p>Full HTTP/1.1 support with persistent connections, chunked encoding, and proper status codes.</p>
</div>
<div class="feature-card">
<div class="feature-icon">⚙️</div>
<h3>Flexible Configuration</h3>
<p>Nginx-style configuration with virtual hosts, location blocks, and directory-specific settings.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🛡️</div>
<h3>Robust Error Handling</h3>
<p>Comprehensive error handling with custom error pages and graceful failure recovery.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🔍</div>
<h3>Advanced Logging</h3>
<p>Multi-level logging system with file and console output for debugging and monitoring.</p>
</div>
</div>
</div>
</section>
<!-- Documentation Section -->
<section id="documentation" class="documentation">
<div class="container">
<h2 class="section-title">Documentation</h2>
<div class="docs-grid">
<div class="docs-card">
<h3>Getting Started</h3>
<p>Quick setup guide to get WebServ running on your system.</p>
<a href="docs/getting-started.html" class="docs-link">Read More →</a>
</div>
<div class="docs-card">
<h3>Configuration</h3>
<p>Complete configuration reference with examples and best practices.</p>
<a href="docs/configuration.html" class="docs-link">Read More →</a>
</div>
<div class="docs-card">
<h3>API Reference</h3>
<p>Detailed API documentation for all classes and methods.</p>
<a href="docs/api.html" class="docs-link">Read More →</a>
</div>
</div>
</div>
</section>
<!-- Demo Section -->
<section id="demo" class="demo">
<div class="container">
<h2 class="section-title">Live Demo</h2>
<div class="demo-container">
<div class="demo-controls">
<h3>Test WebServ Features</h3>
<div class="demo-buttons">
<button class="demo-btn" onclick="testStatic()">Static Files</button>
<button class="demo-btn" onclick="testDirectory()">Directory Listing</button>
<button class="demo-btn" onclick="testError()">Error Handling</button>
<button class="demo-btn" onclick="testHeaders()">HTTP Headers</button>
</div>
</div>
<div class="demo-output">
<h4>Output:</h4>
<pre id="demo-result">Click a button above to test WebServ features!</pre>
</div>
</div>
</div>
</section>
<!-- Stats Section -->
<section class="stats">
<div class="container">
<div class="stats-grid">
<div class="stat-item">
<div class="stat-number">10,000+</div>
<div class="stat-label">Concurrent Connections</div>
</div>
<div class="stat-item">
<div class="stat-number">&lt;1ms</div>
<div class="stat-label">Response Time</div>
</div>
<div class="stat-item">
<div class="stat-number">99.9%</div>
<div class="stat-label">Uptime</div>
</div>
<div class="stat-item">
<div class="stat-number">C++20</div>
<div class="stat-label">Modern Standard</div>
</div>
</div>
</div>
</section>
</main>
<!-- Footer -->
<footer id="contact" class="footer">
<div class="container">
<div class="footer-content">
<div class="footer-section">
<h3>WebServ</h3>
<p>A modern, high-performance web server built with C++20.</p>
</div>
<div class="footer-section">
<h4>Quick Links</h4>
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#features">Features</a></li>
<li><a href="#documentation">Documentation</a></li>
<li><a href="https://github.com/WHaffmans/webserv">GitHub</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Resources</h4>
<ul>
<li><a href="docs/api.html">API Reference</a></li>
<li><a href="docs/configuration.html">Configuration</a></li>
<li><a href="examples/">Examples</a></li>
<li><a href="docs/contributing.html">Contributing</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Contact</h4>
<p>Built by WHaffmans</p>
<p>Part of 42 School curriculum</p>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2025 WebServ. Open source project.</p>
</div>
</div>
</footer>
<script src="js/script.js"></script>
</body>
</html>