Producție: jobul de email scrie și unde runner-ul nu are drept de scriere
smtp:config:production a picat cu Permission denied pe /mnt/hyperice-prod/backend/.env.smtp-tmp — runner-ul nu deține directorul stivei de producție. Fișierul viu a rămas neatins (scriem în temporar, apoi mv), deci JWT_SECRET nu a fost în pericol.
Scrierea stă acum în deploy/smtp-write.sh și rulează pe două căi, cu același cod:
- direct pe runner, unde are voie (develop) — calea deja dovedită;
- dacă aceea eșuează, printr-un container efemer cu directorul montat (producție). Docker rulează ca root pe gazdă, deci intrăm fără
chmodpe host și fără ssh, folosind chiar imaginea pe care backendul rulează deja. Parola merge ca variabilă de mediu, niciodată ca argument.
Probat pe copii: 3 rulări la rând lasă exact un bloc, păstrează celelalte setări și modul 600; pe director nescriibil eșuează curat fără să atingă fișierul; fără JWT_SECRET în sursă refuză.
După merge: Run pipeline manual pe main → deploy:production → apasă smtp:config:production → apoi seed:production.