Files
kibiandClaude Opus 5.5 d0f2d526df Port 4ducky to Rust (Axum + SQLite)
Same design, layout, URLs and features as the PHP version: browse grid,
image view with AJAX comments, BBCode, likes, uploads (file, URL and
bookmarklet), quicktagger, profile, block list, inbox, invites, Hall of
Ducks, Truhe, abuse reports and the admin tools.

- Parameterized SQL, escaped templates (askama), argon2 passwords,
  server-side sessions, CSRF tokens on every write, strict script CSP
- SSRF-safe remote image fetching, magic-byte upload checks
- Self-hosted captcha replaces reCAPTCHA v1; analytics/social widgets removed
- Vanilla JS replaces jQuery and its plugins with the same DOM behaviour
- Reverse proxy support (frontend_path, trust_proxy, secure_cookies)
- Admin CLI: admin, settings, invites

See README.md for running it and the full list of changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 02:15:05 +02:00

28 lines
1.8 KiB
HTML

</div></div>
<!--
<div id="footer">&copy; 4ducky.com - a Dolan Duck Production | <a href="/impressum">Contact us</a> | <a href="/abuseform">Abuse / Request Deletion</a></div> -->
{%- if let Some(u) = l.user %}
<div id="sidebar">
<div id="top">{% if u.admin %}<a href="/manage"><img height="28" width="28" src="{% if l.white %}/media/manage-fb.png{% else %}/media/manage.png{% endif %}" alt="manage"/></a>{% endif %} <a href="#" id="loadcom"><img height="28" width="28" src="{% if l.white %}/media/refresh_fb.png{% else %}/media/refresh.png{% endif %}" alt="refresh"/></a> <a href="#" id="x"><img height="28" width="28" src="{% if l.white %}/media/xfb.png{% else %}/media/xd.png{% endif %}" alt="close"/></a></div>
<div id="rightpanel">
<noscript><div class="noscr">Please enable Javascript.</div></noscript>
<div align="center"><img alt="load" src="{% if l.white %}/media/load.gif{% else %}/media/load_b.gif{% endif %}" /></div>
</div>
<div id="bottom">
<div id="commentbar"><a href="/truhe"><div id="commentimg"><img width="28" height="28" src="/media/truhe.png" alt="Spenden"></div><div id="commenttext"><strong>4ducky.com </strong>Statistiken</div></a></div>
<script type="text/javascript" src="/random/1/128x128/"></script>
<div id="commentbar"><a target="_blank" href="http://goodius.com"><div id="commentimg"><img width="28" height="28" src="/media/forum.png" alt="Forum"></div><div id="commenttext"><strong>Goodius.com</strong> <br />für alle Hipster</div></a></div>
<div id="commentbar"><a href="http://www.facebook.com/goodius" target="_blank"><div id="commentimg"><img width="28" height="28" src="/media/fbicon.png" alt="Facebook"></div><div id="commenttext"><strong>Duckies: </strong><br /> auf Judenbuch</div></a></div>
</div>
</div>
{%- endif %}
<div><a href="#" id="footer-back-to-top"></a></div>
</body>
</html>