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>
This commit is contained in:
2026-10-17 02:15:05 +02:00
co-authored by Claude Opus 5.5
parent 664d8c6117
commit d0f2d526df
56 changed files with 11133 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
{% include "header.html" %}
<div align="center">
<fieldset>
<legend>About</legend>
<img id="ownerboy" height="20%" width="20%" style="float: right;" src="/media/andrew.jpeg" alt="Admin"/>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="112" valign="top">Owner:</td>
<td width="388"><strong>
<p>&nbsp;</p>
</strong></td>
</tr>
<tr>
<td>Email:</td>
<td><a href="mailto:support@4ducky.com">support@4ducky.com</a></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Rules </td>
<td>1.) No underaged people / no cp / no illustration with naked kids</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>2.) No gore / dead people / dead animals</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Saw something like this?</td>
<td><a href="/abuseform">Please request deletion</a></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</fieldset>
</div>
{% include "footer.html" %}