<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Features - </title>
  <link rel="stylesheet" href="/style.css">
  
</head>
<body>
  <header class="main-header">
    <a href=".."><img id="baby-logo" src="/easyp.png" alt="Easyp Logo"></a>
    <div class="title-container">
      <h1 class="main-title">Easyp Easy HTTPS Server</h1>
      <p class="pea-quote">The easyp pea says: <em>My favourite peas are easy HTTPS</em></p>
      <p>
      <a href="/features" class="header-link">Features</a>
      <a href="/installation" class="header-link">Installation</a>
      <a href="/extensions" class="header-link">Extensions</a>
      <a href="/configuration" class="header-link">Configuration</a>
      <a href="/troubleshooting" class="header-link">Troubleshooting</a>
      <a href="/development" class="header-link">Development</a>
      <a href="/release" class="header-link">Releases</a>
      <a href="https://github.com/gmatht/easyp/issues" class="header-link">Bugs</a>
      </p>
    </div>
    <img id="baby-logo-reflected" src="/easyp.png" alt="Easyp Logo Reflected">
  </header>
  
<article class="article">
    <div class="container">
        <header class="article-header">
            <h1 class="article-title">Features</h1>
            
        </header>
        
        <div class="article-content">
            <h1 id="features">Features</h1>
<p>easyp is a modern HTTPS server with automatic certificate management and extension support.</p>
<h2 id="core-features">Core Features</h2>
<ul>
<li><strong>ACME Integration</strong>: Built-in Let&rsquo;s Encrypt certificate management (no certbot required!)</li>
<li><strong>Automatic Domain Discovery</strong>: Scans <code>/etc/letsencrypt/live/</code> for domains or uses ACME</li>
<li><strong>Dual Protocol Support</strong>: Serves both HTTP (port 80) and HTTPS (port 443)</li>
<li><strong>Static File Serving</strong>: Serves files from <code>/var/www/{domain}/</code> for each domain
<ul>
<li>Falls back to /var/www/html</li>
</ul>
</li>
<li><strong>Let&rsquo;s Encrypt Integration</strong>: Uses fullchain.pem and privkey.pem certificates</li>
<li><strong>HTTP-01 Challenge Support</strong>: Handles ACME domain validation challenges</li>
<li><strong>Automatic Certificate Renewal</strong>: Background task for certificate management</li>
</ul>
<h2 id="extension-system">Extension System</h2>
<ul>
<li><strong>Extension System</strong>: Modular architecture with multiple extension types</li>
<li><strong>Comment System</strong>: Example extensions implementing commenting with moderation capabilities</li>
<li><strong>Admin Panels</strong>: Secure admin interfaces for content management</li>
<li><strong>Privilege Dropping</strong>: Drops to <code>www-data</code> after initialization for security</li>
<li><strong>CGI-like Support</strong>: Executes statically compile and linked CGI-like scripts for dynamic content</li>
</ul>
<h2 id="technical-features">Technical Features</h2>
<ul>
<li><strong>MIME Type Support</strong>: Proper content types for common file formats</li>
<li><strong>Comprehensive Logging</strong>: Detailed request and error logging</li>
<li><strong>Security Hardening</strong>: Built-in security features and privilege management</li>
<li><strong>Performance Optimization</strong>: Optimized builds with LTO and size optimization</li>
</ul>
<h2 id="supported-file-types">Supported File Types</h2>
<ul>
<li>HTML: <code>.html</code></li>
<li>CSS: <code>.css</code></li>
<li>JavaScript: <code>.js</code></li>
<li>JSON: <code>.json</code></li>
<li>WASM: <code>.wasm</code></li>
<li>Images: <code>.png</code>, <code>.jpg</code>, <code>.jpeg</code>, <code>.gif</code>, <code>.svg</code>, <code>.ico</code></li>
<li>Text: <code>.txt</code></li>
<li>Default: <code>application/octet-stream</code></li>
</ul>

	    #EXTEND:comment()
        </div>
        
        
    </div>
</article>

</body>
</html>
