feat: complete memorial website features

- Add user contribution system (memories, timeline entries)
- Add AI content moderation with Ollama (bad word detection + qwen3:4b)
- Add family photo/video upload with admin approval
- Add candle lighting feature
- Add timeline and recipe sections
- Add QR code page and OG image
- Add site authentication (password-protected access)
- Add proxy middleware for auth routing
- Add admin dashboard for content management
- Remove email fields, make name optional (default: Anonym)
- Add CI/CD pipeline for Gitea Actions
- Add Docker deployment configuration
- Optimize Ollama RAM usage (42GB → 2.9GB)
- Fix API routes accessibility through proxy middleware

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
denshooter
2026-02-18 12:20:33 +01:00
parent 43e9d49620
commit a34d406375
54 changed files with 5989 additions and 248 deletions
+15 -6
View File
@@ -5,15 +5,24 @@ export const runtime = 'nodejs'
export async function GET(req: NextRequest) {
const type = req.nextUrl.searchParams.get('type')
const status = req.nextUrl.searchParams.get('status')
const db = getDb()
const query = type
? 'SELECT * FROM media WHERE type = ? ORDER BY sort_order, created_at'
: 'SELECT * FROM media ORDER BY sort_order, created_at'
let query = 'SELECT * FROM media WHERE 1=1'
const queryParams: string[] = []
const media = type
? db.prepare(query).all(type)
: db.prepare(query).all()
if (type) {
query += ' AND type = ?'
queryParams.push(type)
}
if (status) {
query += ' AND status = ?'
queryParams.push(status)
}
query += ' ORDER BY sort_order, created_at'
const media = db.prepare(query).all(...queryParams)
return NextResponse.json(media)
}