Commit Graph

9 Commits

Author SHA1 Message Date
treamz
626a28f750 Security audit fixes synced from VPS prod: SSRF/IDOR/WS-auth/session/rate-limits/crash-guards + session journal 2026-07-24 23:34:29 +03:00
treamz
87f8c55da0 Sync prod working changes: new tools (regex/favicon), queue/session/storage/ws libs, video/compress/pdf/redirects updates 2026-07-24 16:45:55 +03:00
treamz
8bec976d3c Video compress: add output format selector (MP4/AVI/MKV)
- Compress panel now has format buttons before quality
- Backend uses selected format for compress output
- Format sent in API body for compress mode
- User can compress + convert format in one step
2026-03-22 12:10:01 +03:00
treamz
1657c5f0a0 Video: admin gets 1GB upload limit (users stay at 200MB)
- Two multer instances: uploadUser (200MB) and uploadAdmin (1GB)
- uploadMiddleware checks session role before picking handler
- Error message shows correct limit per role
2026-03-22 12:03:12 +03:00
treamz
3353253cef Fix video progress: parse each chunk, -progress pipe:2, out_time support
- Parse time= from each stderr chunk (not accumulated buffer)
- Add -progress pipe:2 flag for frequent progress output
- Support both time= and out_time= formats
- Progress only increases (no jumps back)
2026-03-22 00:22:48 +03:00
treamz
6aca7e9e47 Video: async conversion with live progress polling
- /convert now returns immediately, ffmpeg runs in background
- Client polls /progress every second for live progress %
- Progress endpoint returns downloadUrl/outputSize when done
- UI shows real-time percentage during conversion
2026-03-22 00:20:04 +03:00
treamz
b079263534 Fix video: use mpeg4 software encoder (v4l2m2m hw fails on this RPi) 2026-03-22 00:15:05 +03:00
treamz
1837f42a91 AdminJS admin panel + dynamic content API
- AdminJS at /admin with auth (admin role only)
- Manage: users, categories, tools, content blocks, settings
- DB tables: settings, categories, tools, content_blocks
- Users table: added role (user/admin) and is_blocked fields
- API: /api/settings, /api/tools, /api/content/:section
- Sidebar: admin link visible only for admin users
- Removed /logs from public routes (now in AdminJS)
- Video converter: fixed ffmpeg codecs for RPi5 (h264_v4l2m2m)
- Dependencies: sequelize, @adminjs/sequelize, mariadb
2026-03-21 23:46:41 +03:00
treamz
44c85f6e44 Add video converter: convert, compress, extract audio, GIF
- New tool: /video with 4 modes (convert formats, compress, extract audio, GIF)
- Backend: ffmpeg-based processing with progress tracking
- Supports MP4, WebM, MOV, AVI, MKV input, up to 200MB
- Frontend: drag-drop upload, mode tabs, progress bar, download
- Added to sidebar, dashboard (Images category), WA_CATEGORIES
- Total tools: 14
2026-03-21 23:28:11 +03:00