Ship prebuilt dist and production node_modules so the server only pulls and extracts, without npm or scp.
Co-authored-by: Cursor <cursoragent@cursor.com>
Nest deleteOutDir plus stale tsbuildinfo left an empty dist; force clean tsc emit and commit the rebuilt output.
Co-authored-by: Cursor <cursoragent@cursor.com>
Build on the developer machine without Docker, commit dist/, and run on the server with Dockerfile.dist plus compose env_file.
Co-authored-by: Cursor <cursoragent@cursor.com>
Build and gzip the API image on a machine with good network, then docker load on the server without remote npm builds.
Co-authored-by: Cursor <cursoragent@cursor.com>
Avoid slow npm installs over Docker bind mounts; download Node from npmmirror and build on the server filesystem.
Co-authored-by: Cursor <cursoragent@cursor.com>
Install and build on the server host with npmmirror, then package a slim image without network during docker build.
Co-authored-by: Cursor <cursoragent@cursor.com>
npm ci ignores registry config when lockfile points at registry.npmjs.org; rewrite resolved URLs to mirror.iranserver.com before install.
Co-authored-by: Cursor <cursoragent@cursor.com>
ARG after FROM was empty without an explicit default, so npm ci hit the slow/blocked official registry.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop apk openssl (node alpine already has it) and use npmmirror by default so Iranian servers can build without Alpine TLS failures.
Co-authored-by: Cursor <cursoragent@cursor.com>
Provide backend for admin and user apps with Postgres, migrations, seed data, and docker-compose for LiteSpeed reverse-proxy deployment.
Co-authored-by: Cursor <cursoragent@cursor.com>