234 lines
10 KiB
HTML
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 <webserv/server/Server.hpp>
|
|
#include <webserv/config/ConfigManager.hpp>
|
|
|
|
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"><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>© 2025 WebServ. Open source project.</p>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
<script src="js/script.js"></script>
|
|
</body>
|
|
</html>
|