forked from 4ducky/4ducky
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>
40 lines
1.2 KiB
TOML
40 lines
1.2 KiB
TOML
[package]
|
|
name = "fourducky"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
description = "4ducky.com image board - Rust port of the original PHP/Picturelicious site"
|
|
publish = false
|
|
|
|
[dependencies]
|
|
ab_glyph = "0.2"
|
|
anyhow = "1"
|
|
argon2 = "0.5"
|
|
askama = "0.14"
|
|
axum = { version = "0.8", features = ["multipart", "macros"] }
|
|
chrono = "0.4"
|
|
clap = { version = "4", features = ["derive"] }
|
|
futures-util = "0.3"
|
|
hex = "0.4"
|
|
image = { version = "0.25", default-features = false, features = ["jpeg", "png", "gif"] }
|
|
imageproc = { version = "0.25", default-features = false }
|
|
percent-encoding = "2"
|
|
rand = "0.9"
|
|
regex = "1"
|
|
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
sha2 = "0.10"
|
|
sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "sqlite", "macros", "migrate"] }
|
|
subtle = "2"
|
|
tokio = { version = "1", features = ["full"] }
|
|
toml = "0.8"
|
|
tower = "0.5"
|
|
tower-http = { version = "0.6", features = ["fs", "set-header", "limit", "trace"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
url = "2"
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
strip = true
|