Commit Graph
13 Commits
Author SHA1 Message Date
anthonyandClaude Sonnet 5 771297cdf1 fix: rename pm2 worker and invoke tsx directly instead of npm
pm2 fork mode require()s the resolved script rather than spawning a
shell, and on o2switch `npm` resolves to CloudLinux's bash npm_wrapper,
so pm2 crashed instantly (SyntaxError) and restart-looped forever.
Point pm2 at tsx's real ESM entry (node_modules/tsx/dist/cli.mjs)
instead. Also renames the pm2 process to video-downloader-worker.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 16:21:25 +02:00
anthonyandClaude Sonnet 5 fd0bc092bd fix: fix o2switch deployment build and yt-dlp Python compatibility
Turbopack requires native SWC bindings unavailable on o2switch's old
glibc, so force webpack for production builds. NODE_ENV=production on
o2switch's shell also caused npm to skip devDependencies needed at
build time (Tailwind, PostCSS), so deploy now installs with
--include=dev.

yt-dlp's standalone PyInstaller binary self-extracts to noexec /tmp
and fails to mmap its bundled shared libs there, and o2switch's system
python3 (3.6) is too old for the plain zipapp. Revert to the zipapp
and invoke it explicitly through a configurable PYTHON_BIN, set to
o2switch's newer Python 3.11 in .env.prod.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 16:13:12 +02:00
anthony ecdfc95ff3 feat: add Passenger-compatible server.js startup file for o2switch
Passenger runs a literal JS entry file, not the next start CLI or an
npm script, so a custom server was needed for cPanel's Node.js App
startup file field.
2026-08-11 15:24:30 +02:00
anthonyandClaude Sonnet 5 d2e491c762 feat: add npm run deploy script for o2switch deployment
Consolidates the manual deploy steps (env copy, install, prisma
generate/migrate deploy, build, pm2 startOrRestart+save) documented
in the README into a single scripts/deploy.sh run over SSH.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 14:55:05 +02:00
anthonyandClaude Sonnet 5 2b5f68752f feat: supervise worker with pm2 instead of cron PID-check
Passenger only manages the Next.js app process; the worker now gets
the same crash-recovery/auto-restart via pm2, replacing the cron-driven
PID-file restart hack. Updates README deployment steps accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 14:49:49 +02:00
anthonyandClaude Sonnet 5 837dc954c2 fix: replace ts-node with tsx for worker scripts
TypeScript 7's CommonJS export no longer populates ts.sys, which
ts-node's config loader depends on, breaking `npm run worker` with
a TypeError. tsx (esbuild-based) doesn't rely on that API and
natively resolves tsconfig.json path aliases, so tsconfig-paths is
also no longer needed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 14:22:46 +02:00
anthonyandClaude Sonnet 5 9e2423ed76 fix: remove unused ts-jest dependency causing npm install failure
ts-jest peer-conflicts with typescript@7 and jest already uses @swc/jest as its transform, making ts-jest dead weight.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 09:28:10 +02:00
anthony 3994d32d35 feat: add ThemeToggle component with next-themes 2026-08-11 08:58:58 +02:00
anthony 29ae2d3650 feat: install Tailwind CSS v4 with PostCSS 2026-08-11 08:49:43 +02:00
anthony 0a75aba78b feat: install next-intl and set up i18n routing config 2026-08-10 15:32:11 +02:00
anthony ee063aa460 Code Review Graph + Docs + Config 2026-08-10 15:15:19 +02:00
anthony 3feb336bb0 feat: add IP-based rate limiter (swc/jest replaces ts-jest for TS7 compat) 2026-08-10 14:28:13 +02:00
anthony df3b6dc8c9 chore: scaffold project 2026-08-10 14:14:34 +02:00