# futureporn ## projekt requirements * [x] NO BUNDLER (esbuild/vite/webpack/parcel/swc/etc.). IF YOU REACH FOR A BUNDLER, YOU'RE OVERCOMPLICATING IT! * [x] NO JWT. IF YOU REACH FOR JWT, YOU'RE OVERCOMPLICATING IT! * [x] Uploads backend * [x] Uploads frontend * [x] backend task processor * [x] Vods * [x] HLS * [ ] Deploy * [ ] Write * [ ] Publish * [ ] Streams * [x] VTubers * [ ] Tags * [ ] Toys * [ ] Monetized affiliate links ## Tiers & Privs * user - view, torrent, download * supporterTier1 - view, torrent, download, adfree, upload * supporterTier6 - view, torrent, download, adfree, upload, csv, sql ## troubleshooting ### keyv We use tsup to convert ESM to CJS for graphile-worker. We're staying on version ^4 because that's the one that supports CJS. https://github.com/jaredwray/keyv/issues/1224 ### sharp sharp is often a pain in the ass to install. ``` [dev:serve] /home/cj/Documents/futureporn-monorepo/services/our/node_modules/.pnpm/sharp@0.32.6/node_modules/sharp/lib/sharp.js:37 [dev:serve] throw new Error(help.join('\n')); [dev:serve] ^ [dev:serve] [dev:serve] Error: [dev:serve] Something went wrong installing the "sharp" module [dev:serve] [dev:serve] Cannot find module '../build/Release/sharp-linux-x64.node' [dev:serve] Require stack: [dev:serve] - /home/cj/Documents/futureporn-monorepo/services/our/node_modules/.pnpm/sharp@0.32.6/node_modules/sharp/lib/sharp.js [dev:serve] - /home/cj/Documents/futureporn-monorepo/services/our/node_modules/.pnpm/sharp@0.32.6/node_modules/sharp/lib/constructor.js [dev:serve] - /home/cj/Documents/futureporn-monorepo/services/our/node_modules/.pnpm/sharp@0.32.6/node_modules/sharp/lib/index.js [dev:serve] [dev:serve] Possible solutions: [dev:serve] - Install with verbose logging and look for errors: "npm install --ignore-scripts=false --foreground-scripts --verbose sharp" [dev:serve] - Install for the current linux-x64 runtime: "npm install --platform=linux --arch=x64 sharp" [dev:serve] - Consult the installation documentation: https://sharp.pixelplumbing.com/install [dev:serve] at Object. (/home/cj/Documents/futureporn-monorepo/services/our/node_modules/.pnpm/sharp@0.32.6/node_modules/sharp/lib/sharp.js:37:9) [dev:serve] at Module._compile (node:internal/modules/cjs/loader:1469:14) [dev:serve] at Object.transformer (/home/cj/Documents/node_modules/.pnpm/tsx@4.15.7/node_modules/tsx/dist/register-BujtrvNV.cjs:2:1265) [dev:serve] at Module.load (node:internal/modules/cjs/loader:1288:32) [dev:serve] at Module._load (node:internal/modules/cjs/loader:1104:12) [dev:serve] at Module.require (node:internal/modules/cjs/loader:1311:19) [dev:serve] at require (node:internal/modules/helpers:179:18) [dev:serve] at Object. (/home/cj/Documents/futureporn-monorepo/services/our/node_modules/.pnpm/sharp@0.32.6/node_modules/sharp/lib/constructor.js:11:1) [dev:serve] at Module._compile (node:internal/modules/cjs/loader:1469:14) [dev:serve] at Object.transformer (/home/cj/Documents/node_modules/.pnpm/tsx@4.15.7/node_modules/tsx/dist/register-BujtrvNV.cjs:2:1265) [dev:serve] ``` If you have trouble installing sharp, try ignoring the system's installed libvips. SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install --ignore-scripts=false --foreground-scripts --verbose --platform=linux --arch=x64 sharp SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install --ignore-scripts=false --foreground-scripts --verbose sharp Actually, better advice is to probably **remove libvips from the system**. This way, a compatible libvips is always pulled during `npm install`. Annoyingly, it might be necessary to re-install sharp after every new npm package, even if said package is unrelated to sharp.