Only 09128081392 / 123456 remains as admin; remove seeded internal messages and add a reset-admin script for production databases.
Co-authored-by: Cursor <cursoragent@cursor.com>
prisma generate needs over three minutes on the production host, which made
every deploy hang on that build step. The client is now generated on the dev
machine into prisma-client.tar.gz (tracked, 8.5MB) and the image just untars
it. Dropping the unused linux-musl engine target halves that payload.
Co-authored-by: Cursor <cursoragent@cursor.com>
Deploy is back to the flow that worked: build dist locally, push, then on the
server only `git pull` + `docker compose up -d --build`. The Dockerfile now
also takes prisma/ and package.json from git and runs `prisma generate`, so
schema and migration changes ship without rebuilding the 120MB node_modules
bundle. Removes the prebuilt compose path, which could never work on a server
without npm.
Co-authored-by: Cursor <cursoragent@cursor.com>
Ship 4-digit OTP with rate-limit attempts, Tehran-safe expiry/rass math, larger JSON body limit for check images, and safer order pricing/status guards. Include rebuilt dist for prebuilt deploy.
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>