pm2 restart --update-env leaked PORT=9050 onto Next sites and left nginx 502 when a build dropped standalone output.
Co-authored-by: Cursor <cursoragent@cursor.com>
Super Admin was only showing "exited with code 1" because the ERR trap never copied the last compiler or module-not-found line from the deploy log.
Co-authored-by: Cursor <cursoragent@cursor.com>
Business settings can store ZarinPal merchant credentials, and the payment registry can initiate and verify ZarinPal alongside Mellat.
Co-authored-by: Cursor <cursoragent@cursor.com>
Copy static/public into the standalone bundle, point PM2 at server.js, and drop full node_modules after a successful start.
Co-authored-by: Cursor <cursoragent@cursor.com>
Deploy agent waits for build completion, writes status, and checks out origin/HEAD (main or master) so empty-main repos like mashinify can deploy.
Co-authored-by: Cursor <cursoragent@cursor.com>
Persist deploy_slug on domains, call the websites agent /provision endpoint, and drop the hard-coded host map so Deploy appears from the UI.
Co-authored-by: Cursor <cursoragent@cursor.com>