From f63fbfb3f729e918ff353ac0a6423090e5871f33 Mon Sep 17 00:00:00 2001 From: Prakasa Date: Wed, 27 Aug 2025 08:30:43 +0700 Subject: [PATCH 1/3] style: ignore unused files from remote --- .env => .env.example | 0 .gitignore | 2 ++ db/.gitignore | 1 + db/streamflow.db | Bin 40960 -> 40960 bytes logs/app.log | 42 ++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 15 +++++++++++++++ package.json | 3 +++ 7 files changed, 63 insertions(+) rename .env => .env.example (100%) create mode 100644 .gitignore create mode 100644 db/.gitignore diff --git a/.env b/.env.example similarity index 100% rename from .env rename to .env.example diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..709f76c3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +public/uploads/ \ No newline at end of file diff --git a/db/.gitignore b/db/.gitignore new file mode 100644 index 00000000..37ca1c2b --- /dev/null +++ b/db/.gitignore @@ -0,0 +1 @@ +sessions.db \ No newline at end of file diff --git a/db/streamflow.db b/db/streamflow.db index 38789c0752ac5d282a35b1261f8f903271a3847c..190531a9b074a2066f9cb57e667a2876ec51afdc 100644 GIT binary patch delta 283 zcmZoTz|?SnX@WE(>qHr6M%Il9OZeFs`I8y=lQ#zX85r06DEqykx{21zMtNtTHgrYQwQiP?$8iH4R2CMrfrDuxCssTp2Q zk@`_yzCjUD7Aa97=_#d^1^xvdW=@gG7KuTo!G3;@xoP^PiHYG6rWFQ;p+-qjW<~}^ zrn&|ex*A623I>K&h9*`+}r=?Y{3 diff --git a/logs/app.log b/logs/app.log index e69de29b..e6a1d7b9 100644 --- a/logs/app.log +++ b/logs/app.log @@ -0,0 +1,42 @@ +2025-08-27T01:13:56.438Z [LOG] Logger initialized. Output will be written to console and logs/app.log +2025-08-27T01:13:58.037Z [LOG] Using bundled FFmpeg at: /Users/prakasa/Projects/streamflow/node_modules/@ffmpeg-installer/darwin-arm64/ffmpeg +2025-08-27T01:13:58.039Z [LOG] Stream scheduler initialized +2025-08-27T01:13:58.041Z [LOG] Checking for scheduled streams (2025-08-27T01:13:58.041Z to 2025-08-27T01:14:58.041Z) +2025-08-27T01:13:58.070Z [LOG] StreamFlow running at: +2025-08-27T01:13:58.070Z [LOG] http://192.168.1.5:7575 +2025-08-27T01:13:58.071Z [LOG] http://192.168.64.1:7575 +2025-08-27T01:13:58.074Z [LOG] Stream scheduler initialized +2025-08-27T01:13:58.075Z [LOG] Checking for scheduled streams (2025-08-27T01:13:58.074Z to 2025-08-27T01:14:58.074Z) +2025-08-27T01:13:58.077Z [LOG] [StreamingService] Syncing stream statuses... +2025-08-27T01:13:58.079Z [LOG] [StreamingService] Stream status sync completed. Active streams: 0 +2025-08-27T01:14:22.379Z [LOG] User created successfully with ID: 50e0ad21-96a3-4a8d-a8e3-450bdfb9a85d +2025-08-27T01:14:58.051Z [LOG] Checking for scheduled streams (2025-08-27T01:14:58.046Z to 2025-08-27T01:15:58.046Z) +2025-08-27T01:14:58.075Z [LOG] Checking for scheduled streams (2025-08-27T01:14:58.074Z to 2025-08-27T01:15:58.074Z) +2025-08-27T01:15:56.968Z [LOG] Upload request received: { + fieldname: 'video', + originalname: 'rain_loop.mp4', + encoding: '7bit', + mimetype: 'video/mp4', + destination: '/Users/prakasa/Projects/streamflow/public/uploads/videos', + filename: 'video-1756257356831-752913069.mp4', + path: '/Users/prakasa/Projects/streamflow/public/uploads/videos/video-1756257356831-752913069.mp4', + size: 17806672 +} +2025-08-27T01:15:56.984Z [ERROR] Error extracting metadata: Error: Cannot find ffprobe + at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/ffprobe.js:145:31 + at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:194:9 + at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:183:15 + at suppressedCallback (node:fs:267:5) + at FSReqCallback.oncomplete (node:fs:192:23) +2025-08-27T01:15:56.985Z [ERROR] Upload error details: Error: Cannot find ffprobe + at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/ffprobe.js:145:31 + at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:194:9 + at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:183:15 + at suppressedCallback (node:fs:267:5) + at FSReqCallback.oncomplete (node:fs:192:23) +2025-08-27T01:15:58.046Z [LOG] Checking for scheduled streams (2025-08-27T01:15:58.045Z to 2025-08-27T01:16:58.045Z) +2025-08-27T01:15:58.074Z [LOG] Checking for scheduled streams (2025-08-27T01:15:58.074Z to 2025-08-27T01:16:58.074Z) +2025-08-27T01:16:58.051Z [LOG] Checking for scheduled streams (2025-08-27T01:16:58.047Z to 2025-08-27T01:17:58.047Z) +2025-08-27T01:16:58.073Z [LOG] Checking for scheduled streams (2025-08-27T01:16:58.073Z to 2025-08-27T01:17:58.073Z) +2025-08-27T01:17:58.047Z [LOG] Checking for scheduled streams (2025-08-27T01:17:58.046Z to 2025-08-27T01:18:58.046Z) +2025-08-27T01:17:58.073Z [LOG] Checking for scheduled streams (2025-08-27T01:17:58.073Z to 2025-08-27T01:18:58.073Z) diff --git a/package-lock.json b/package-lock.json index 7f5023d1..ab1b438a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@ffmpeg-installer/ffmpeg": "^1.1.0", "axios": "^1.8.1", "bcrypt": "^5.1.1", + "connect-sqlite3": "^0.9.15", "csrf": "^3.1.0", "dotenv": "^16.5.0", "ejs": "^3.1.9", @@ -33,6 +34,9 @@ }, "devDependencies": { "nodemon": "^3.0.1" + }, + "engines": { + "node": ">=18.19.0 <21.0.0" } }, "node_modules/@babel/runtime": { @@ -1070,6 +1074,17 @@ "typedarray": "^0.0.6" } }, + "node_modules/connect-sqlite3": { + "version": "0.9.16", + "resolved": "https://registry.npmjs.org/connect-sqlite3/-/connect-sqlite3-0.9.16.tgz", + "integrity": "sha512-2gqo0QmcBBL8p8+eqpBETn7RgM/PaoKvpQGl8PfjEgwlr0VuMYNMxRJRrRCo3KR3fxMYeSsCw2tGNG0JKN9Nvg==", + "dependencies": { + "sqlite3": "^5.0.2" + }, + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", diff --git a/package.json b/package.json index f19badfa..55b6ae72 100644 --- a/package.json +++ b/package.json @@ -35,5 +35,8 @@ }, "devDependencies": { "nodemon": "^3.0.1" + }, + "engines": { + "node": ">=18.19.0 <21.0.0" } } From 227c6cca5bb6fe48b82293a6ca08f239401e72c4 Mon Sep 17 00:00:00 2001 From: Prakasa Date: Wed, 27 Aug 2025 08:38:04 +0700 Subject: [PATCH 2/3] style: simplify dev mode --- .gitignore | 5 ++++- README.md | 12 ++++++------ logs/app.log | 42 ------------------------------------------ scripts/init.sh | 5 +++++ 4 files changed, 15 insertions(+), 49 deletions(-) delete mode 100644 logs/app.log create mode 100755 scripts/init.sh diff --git a/.gitignore b/.gitignore index 709f76c3..07f63349 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ node_modules -public/uploads/ \ No newline at end of file +public/uploads/ + +# ignore real env from repo +.env \ No newline at end of file diff --git a/README.md b/README.md index 23b5333e..3f7e20a3 100644 --- a/README.md +++ b/README.md @@ -81,19 +81,19 @@ Masuk ke direktori project: cd streamflow ``` -Install dependencies: +Setup environment: ```bash -npm install +./scripts/init.sh ``` -Generate session secret: +Konfigurasi port (opsional): ```bash -npm run generate-secret +nano .env ``` -Konfigurasi port (opsional): +Run application: ```bash -nano .env +npm run dev ``` ### 3. Konfigurasi Firewall diff --git a/logs/app.log b/logs/app.log deleted file mode 100644 index e6a1d7b9..00000000 --- a/logs/app.log +++ /dev/null @@ -1,42 +0,0 @@ -2025-08-27T01:13:56.438Z [LOG] Logger initialized. Output will be written to console and logs/app.log -2025-08-27T01:13:58.037Z [LOG] Using bundled FFmpeg at: /Users/prakasa/Projects/streamflow/node_modules/@ffmpeg-installer/darwin-arm64/ffmpeg -2025-08-27T01:13:58.039Z [LOG] Stream scheduler initialized -2025-08-27T01:13:58.041Z [LOG] Checking for scheduled streams (2025-08-27T01:13:58.041Z to 2025-08-27T01:14:58.041Z) -2025-08-27T01:13:58.070Z [LOG] StreamFlow running at: -2025-08-27T01:13:58.070Z [LOG] http://192.168.1.5:7575 -2025-08-27T01:13:58.071Z [LOG] http://192.168.64.1:7575 -2025-08-27T01:13:58.074Z [LOG] Stream scheduler initialized -2025-08-27T01:13:58.075Z [LOG] Checking for scheduled streams (2025-08-27T01:13:58.074Z to 2025-08-27T01:14:58.074Z) -2025-08-27T01:13:58.077Z [LOG] [StreamingService] Syncing stream statuses... -2025-08-27T01:13:58.079Z [LOG] [StreamingService] Stream status sync completed. Active streams: 0 -2025-08-27T01:14:22.379Z [LOG] User created successfully with ID: 50e0ad21-96a3-4a8d-a8e3-450bdfb9a85d -2025-08-27T01:14:58.051Z [LOG] Checking for scheduled streams (2025-08-27T01:14:58.046Z to 2025-08-27T01:15:58.046Z) -2025-08-27T01:14:58.075Z [LOG] Checking for scheduled streams (2025-08-27T01:14:58.074Z to 2025-08-27T01:15:58.074Z) -2025-08-27T01:15:56.968Z [LOG] Upload request received: { - fieldname: 'video', - originalname: 'rain_loop.mp4', - encoding: '7bit', - mimetype: 'video/mp4', - destination: '/Users/prakasa/Projects/streamflow/public/uploads/videos', - filename: 'video-1756257356831-752913069.mp4', - path: '/Users/prakasa/Projects/streamflow/public/uploads/videos/video-1756257356831-752913069.mp4', - size: 17806672 -} -2025-08-27T01:15:56.984Z [ERROR] Error extracting metadata: Error: Cannot find ffprobe - at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/ffprobe.js:145:31 - at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:194:9 - at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:183:15 - at suppressedCallback (node:fs:267:5) - at FSReqCallback.oncomplete (node:fs:192:23) -2025-08-27T01:15:56.985Z [ERROR] Upload error details: Error: Cannot find ffprobe - at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/ffprobe.js:145:31 - at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:194:9 - at /Users/prakasa/Projects/streamflow/node_modules/fluent-ffmpeg/lib/capabilities.js:183:15 - at suppressedCallback (node:fs:267:5) - at FSReqCallback.oncomplete (node:fs:192:23) -2025-08-27T01:15:58.046Z [LOG] Checking for scheduled streams (2025-08-27T01:15:58.045Z to 2025-08-27T01:16:58.045Z) -2025-08-27T01:15:58.074Z [LOG] Checking for scheduled streams (2025-08-27T01:15:58.074Z to 2025-08-27T01:16:58.074Z) -2025-08-27T01:16:58.051Z [LOG] Checking for scheduled streams (2025-08-27T01:16:58.047Z to 2025-08-27T01:17:58.047Z) -2025-08-27T01:16:58.073Z [LOG] Checking for scheduled streams (2025-08-27T01:16:58.073Z to 2025-08-27T01:17:58.073Z) -2025-08-27T01:17:58.047Z [LOG] Checking for scheduled streams (2025-08-27T01:17:58.046Z to 2025-08-27T01:18:58.046Z) -2025-08-27T01:17:58.073Z [LOG] Checking for scheduled streams (2025-08-27T01:17:58.073Z to 2025-08-27T01:18:58.073Z) diff --git a/scripts/init.sh b/scripts/init.sh new file mode 100755 index 00000000..aa4a489a --- /dev/null +++ b/scripts/init.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +npm i +cp .env.example .env +npm run generate-secret \ No newline at end of file From 5bcfa8b76c0cd349bdaeb97914aac55cd4535cd9 Mon Sep 17 00:00:00 2001 From: Prakasa Date: Wed, 27 Aug 2025 08:38:46 +0700 Subject: [PATCH 3/3] fix: ignore logs from remote --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 07f63349..f4b5ab7b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ node_modules public/uploads/ +logs/ # ignore real env from repo .env \ No newline at end of file