0.2.1 • Published yesterdayCLI
@ishaan_gpt/smoothrecord-worker
Licence
—
Version
0.2.1
Deps
8
Size
29 kB
Vulns
1
Weekly
0
Install scriptsThis package runs scripts during installation (preinstall/install/postinstall)
SmoothRecord Worker
Node + Fastify + Playwright + ffmpeg. Records any website as a premium
Awwwards-style smooth-scroll .mp4.
Deploy
Fly.io
cd worker
fly launch --no-deploy # accept defaults, no db
fly secrets set WORKER_TOKEN=$(openssl rand -hex 32)
fly deploy
Railway / Render / any Docker host
docker build -t smoothrecord-worker .
docker run -p 8080:8080 \
-e WORKER_TOKEN=<same-as-lovable-app> \
-e PUBLIC_BASE_URL=https://your-worker.example.com \
smoothrecord-worker
Then on the Lovable app, set:
WORKER_BASE_URL→https://your-worker.example.comWORKER_TOKEN→ same value as above
Env
| var | required | what |
|---|---|---|
WORKER_TOKEN |
Bearer token shared with the caller | |
PORT |
default 8080 |
|
PUBLIC_BASE_URL |
prefix used when returning mp4Url (defaults to the request host) |
|
JOB_TTL_MS |
default 86_400_000 (24h) — how long finished jobs are kept |
Storage is local (/tmp/smoothrecord/jobs/<id>/out.mp4). Swap in R2/S3 upload
in src/storage.js if you want durable hosting; the current build serves
finished files directly from the worker at /files/<id>/out.mp4.
Endpoints
POST /jobs— body{ input, options }. Returns{ jobId }.GET /jobs/:id—{ status, mp4Url?, posterUrl?, durationSec?, error? }.GET /files/:id/out.mp4— the finished file.GET /healthz— liveness.
All except /healthz and /files/* require Authorization: Bearer $WORKER_TOKEN.