website/templates/index.html

66 lines
3.6 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 · IRCv3</p>
<h1>The from-scratch<br>IRC server.</h1>
<p class="hero-sub">A modern IRC daemon built from the ground up in Rust — full IRCv3,
TLS&nbsp;1.3 and SASL. No forks. No C. No <code>unsafe</code>. Pair it with
<a href="/services">echo services</a> over S2S.</p>
<div class="cta">
<a class="btn btn-primary" href="/connect">Connect to the network</a>
<a class="btn btn-ghost" href="/docs">Read the docs</a>
</div>
<div class="statline" aria-label="live network status">
{% if status.online %}<span class="st on">● online</span>{% else %}<span class="st down">● offline</span>{% endif %}
<span>echoIRCd&nbsp;<b>{{ status.version }}</b></span>
<span>:6697&nbsp;tls&nbsp;1.3</span>
<span>users&nbsp;<b>{{ status.users }}</b></span>
<span>chans&nbsp;<b>{{ status.channels }}</b></span>
</div>
</div>
<aside class="codewin" aria-label="example IRC session">
<div class="codewin-bar"><span class="cw-dot"></span>session · irc.echoircd.org:6697</div>
<pre><code><span class="c-cmd">$ openssl s_client -connect irc.echoircd.org:6697 -quiet</span>
<span class="c-srv">:irc.echoircd.org NOTICE * :*** Looking up your host</span>
<span class="c-kw">CAP</span> LS 302
<span class="c-kw">NICK</span> dev
<span class="c-kw">USER</span> dev 0 * :dev
<span class="c-srv">:irc.echoircd.org</span> <span class="c-num">001</span> dev :Welcome to the echoIRCd Network
<span class="c-srv">:irc.echoircd.org</span> <span class="c-num">005</span> dev CHANTYPES=# PREFIX=(ohv)@%+ :are supported
<span class="c-kw">JOIN</span> #echoircd</code></pre>
</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 %}