website/templates/index.html

62 lines
3.3 KiB
HTML

{% extends "base.html" %}
{% block title %}echoIRCd — a from-scratch IRC server in Rust{% endblock %}
{% block content %}
<section class="hero">
<div class="hero-in">
<div class="hero-main">
<p class="eyebrow">IRC daemon · written in Rust</p>
<h1>The from-scratch<br>IRC server.</h1>
<p class="hero-sub">echoIRCd is a modern IRC daemon, built from the ground up in Rust — full
IRCv3, modern TLS, and SASL. No forks. No C. No <code>unsafe</code>. Pair it with
<a href="/services">echo services</a>, a separate package linked over S2S.</p>
<div class="cta">
<a class="btn btn-primary" href="/connect">Connect to the network</a>
<a class="btn btn-ghost" href="/features">See the features</a>
</div>
</div>
<aside class="statuscard" aria-label="live network status">
<div class="sc-head"><span class="sc-title">network status</span>
{% if status.online %}<span class="dot on" title="online"></span>{% else %}<span class="dot off" title="offline"></span>{% endif %}
</div>
<dl class="sc-rows">
<div><dt>state</dt><dd>{% if status.online %}<b class="live">online</b>{% else %}<b class="down">offline</b>{% endif %}</dd></div>
<div><dt>users</dt><dd>{{ status.users }}</dd></div>
<div><dt>channels</dt><dd>{{ status.channels }}</dd></div>
<div><dt>network</dt><dd>echoiRCd</dd></div>
<div><dt>version</dt><dd>echoIRCd {{ status.version }}</dd></div>
<div><dt>tls</dt><dd>1.3 · X25519MLKEM768</dd></div>
</dl>
<div class="sc-foot">live from <code>irc.echoircd.org</code></div>
</aside>
</div>
</section>
<section class="band">
<div class="wrap">
<h2 class="h-center">Why echoIRCd</h2>
<div class="cards">
<div class="fcard"><h3>Safe by construction</h3><p><code>#![forbid(unsafe_code)]</code> across the whole tree, enforced in CI. Original code — not a fork of anything.</p></div>
<div class="fcard"><h3>Full IRCv3</h3><p>server-time, message-tags, account-tag, batch, labeled-response, chathistory, multiline, standard-replies and more.</p></div>
<div class="fcard"><h3>Modern TLS</h3><p>Direct TLS and WebSocket, OpenSSL &amp; rustls backends, TLS&nbsp;1.3 with post-quantum X25519MLKEM768, per-host SNI.</p></div>
<div class="fcard"><h3>SASL, incl. ECDSA</h3><p>PLAIN, EXTERNAL, SCRAM-SHA-256, and ECDSA-NIST256P-CHALLENGE — sign a challenge, no password on the wire.</p></div>
<div class="fcard"><h3>Companion services</h3><p><a href="/services">echo services</a> is a <b>separate</b> package — NickServ, ChanServ and more — that links to the daemon over S2S. It is not built in.</p></div>
<div class="fcard"><h3>Anti-abuse built in</h3><p>A native security engine: connection &amp; nick-flood detection, behavioral/content heuristics, DEFCON, DNSBL/MX screening.</p></div>
</div>
<p class="h-center more"><a href="/features">Everything that's inside &#8594;</a></p>
</div>
</section>
<section class="wrap latest">
<h2>Latest</h2>
<ul class="news">
{% for c in commits %}
<li>
<span class="news-date">{{ c.date }}</span>
<div><a href="{{ c.url }}"><code>{{ c.short }}</code></a> — {{ c.subject }}</div>
</li>
{% endfor %}
</ul>
<p class="h-center more"><a href="/docs/changelog">Full changelog &#8594;</a></p>
</section>
{% endblock %}