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
@@ -0,0 +1,35 @@
-- CreateEnum
CREATE TYPE "AnexaType" AS ENUM ('ANEXA_3', 'ANEXA_4', 'ANEXA_4B', 'ANEXA_6');
-- CreateTable
CREATE TABLE "anexa_templates" (
"id" TEXT NOT NULL,
"type" "AnexaType" NOT NULL,
"name" TEXT NOT NULL,
"contentJson" JSONB NOT NULL,
"updatedById" TEXT NOT NULL,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "anexa_templates_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "anexa_template_versions" (
"id" TEXT NOT NULL,
"templateId" TEXT NOT NULL,
"contentJson" JSONB NOT NULL,
"savedById" TEXT NOT NULL,
"savedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"label" TEXT,
CONSTRAINT "anexa_template_versions_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "anexa_templates_type_key" ON "anexa_templates"("type");
-- CreateIndex
CREATE INDEX "anexa_template_versions_templateId_idx" ON "anexa_template_versions"("templateId");
-- AddForeignKey
ALTER TABLE "anexa_template_versions" ADD CONSTRAINT "anexa_template_versions_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES "anexa_templates"("id") ON DELETE CASCADE ON UPDATE CASCADE;