chore: add Coolify deployment scaffolding (Dockerfiles, prod compose, git hygiene)

- apps/api/Dockerfile: build NestJS, run prisma migrate deploy on start
- apps/web/Dockerfile + nginx.conf: build Vite, serve static, proxy /api -> api
- docker-compose.coolify.yml: full prod stack (postgres, redis, minio, keycloak, api, web)
- .dockerignore / .gitignore / .gitattributes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Danil Suhomlinov
2026-06-08 17:42:45 +03:00
commit 33800292aa
186 changed files with 30437 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
{
"errors": {
"not_found": "Resource with id={id} not found",
"conflict_idnp": "IDNP {idnp} already exists in the system",
"idnp_invalid": "Invalid IDNP (13 digits, wrong check digit)",
"recomandare_sot": "Cannot select the employee's spouse as an internal recommendation",
"unauthorized": "Unauthorized",
"forbidden": "Insufficient permissions"
},
"validation": {
"required": "Required field",
"email": "Invalid email address",
"phone": "Invalid phone number"
}
}
+15
View File
@@ -0,0 +1,15 @@
{
"errors": {
"not_found": "Resursa cu id={id} nu a fost găsită",
"conflict_idnp": "IDNP {idnp} există deja în sistem",
"idnp_invalid": "IDNP invalid (13 cifre, cifra de control incorectă)",
"recomandare_sot": "Nu se poate selecta soțul/soția angajatului ca recomandare internă",
"unauthorized": "Acces neautorizat",
"forbidden": "Nu aveți permisiuni suficiente"
},
"validation": {
"required": "Câmp obligatoriu",
"email": "Adresă email invalidă",
"phone": "Număr de telefon invalid"
}
}
+15
View File
@@ -0,0 +1,15 @@
{
"errors": {
"not_found": "Ресурс с id={id} не найден",
"conflict_idnp": "IDNP {idnp} уже существует в системе",
"idnp_invalid": "Некорректный IDNP (13 цифр, неверная контрольная цифра)",
"recomandare_sot": "Нельзя выбрать супруга сотрудника в качестве внутренней рекомендации",
"unauthorized": "Не авторизован",
"forbidden": "Недостаточно прав"
},
"validation": {
"required": "Обязательное поле",
"email": "Некорректный email",
"phone": "Некорректный номер телефона"
}
}