mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-22 06:28:10 +02:00
feat: Replace external storage with local file storage + auto cleanup
Media is now stored directly on the server disk (no external service). Files are served via Express static middleware at /uploads/*. Cleanup rules: - Videos deleted immediately after successful publish to Facebook/Instagram - Videos older than 7 days purged daily by cron job - Images older than 30 days purged daily by cron job Changes: - server/services/minio.ts: replaced S3 client with local fs read/write - server/index.ts: added static serving for /uploads/media, /logos, /stories - server/services/media-purge.ts: new rules (images 30d, videos 7d) - server/services/scheduler.ts: delete local videos after successful publish - docker-compose.yml: add media_uploads, logos_uploads, stories_uploads volumes - settings UI: removed credentials card, shows local storage info - package.json: removed googleapis (unneeded) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
ba94e7cc7d
commit
7733acbc22
9 files changed
+145
-378
No files matched your search
@@ -66,6 +66,17 @@ app.use('/api/auth/login', authLimiter);
|
||||
const AUDIO_UPLOAD_DIR = process.env.AUDIO_UPLOAD_DIR || '/app/uploads/audio';
|
||||
app.use('/uploads/audio', express.static(AUDIO_UPLOAD_DIR));
|
||||
|
||||
// Serve locally stored media files (images, videos, logos, stories)
|
||||
const MEDIA_UPLOAD_DIR = path.join(process.cwd(), 'uploads', 'media');
|
||||
const LOGOS_UPLOAD_DIR = path.join(process.cwd(), 'uploads', 'logos');
|
||||
const STORIES_UPLOAD_DIR = path.join(process.cwd(), 'uploads', 'stories');
|
||||
try { fs.mkdirSync(MEDIA_UPLOAD_DIR, { recursive: true }); } catch { /* ignore */ }
|
||||
try { fs.mkdirSync(LOGOS_UPLOAD_DIR, { recursive: true }); } catch { /* ignore */ }
|
||||
try { fs.mkdirSync(STORIES_UPLOAD_DIR, { recursive: true }); } catch { /* ignore */ }
|
||||
app.use('/uploads/media', express.static(MEDIA_UPLOAD_DIR));
|
||||
app.use('/uploads/logos', express.static(LOGOS_UPLOAD_DIR));
|
||||
app.use('/uploads/stories', express.static(STORIES_UPLOAD_DIR));
|
||||
|
||||
// Serve temp uploads for Remotion
|
||||
const TEMP_UPLOAD_DIR = process.env.TEMP_UPLOAD_DIR || path.join(process.cwd(), 'uploads', 'temp');
|
||||
try { fs.mkdirSync(TEMP_UPLOAD_DIR, { recursive: true }); } catch { /* ignore */ }
|
||||
|
||||
Reference in new issue
Block a user