Subir archivos a "/"

This commit is contained in:
2026-02-07 21:19:03 +00:00
parent 1f9aac7993
commit aa2800b203
4 changed files with 70 additions and 23 deletions

View File

@@ -3,21 +3,18 @@ FROM node:22-alpine
WORKDIR /app WORKDIR /app
# 👇 rompe cache (cambia este número si sigue cacheando) # Copy manifests first for better caching
ARG CACHE_BUST=1
# Copiamos manifests primero
COPY package*.json ./ COPY package*.json ./
# 👇 DEBUG: que lo veamos en logs sí o sí # Install prod deps (works even if package-lock is missing or minimal)
RUN echo "CACHE_BUST=$CACHE_BUST" \
&& ls -la \
&& echo "---- package-lock exists? ----" \
&& (test -f package-lock.json && echo "OK: package-lock.json found" || (echo "ERROR: package-lock.json NOT found" && exit 1))
RUN --mount=type=cache,target=/root/.npm npm install --omit=dev RUN --mount=type=cache,target=/root/.npm npm install --omit=dev
# Copy the rest
COPY . . COPY . .
ENV NODE_ENV=production ENV NODE_ENV=production
EXPOSE 3000 EXPOSE 3000
CMD ["npm","run","start"]
# Prisma client is generated on install, but ensure at runtime if needed:
# (Coolify/containers usually run as root in alpine; OK)
CMD ["sh","-c","node -e "console.log('API starting')" && node src/server.js"]

34
package-lock.json generated
View File

@@ -1,8 +1,26 @@
rm -f package-lock.json {
rm -rf node_modules "name": "integrarepara-api",
npm install "version": "1.0.0",
ls -lh package-lock.json "lockfileVersion": 3,
node -p "require('./package-lock.json').lockfileVersion" "requires": true,
git add package-lock.json "packages": {
git commit -m "Regenerar package-lock.json" "": {
git push "name": "integrarepara-api",
"version": "1.0.0",
"dependencies": {
"@prisma/client": "^5.22.0",
"bcryptjs": "^2.4.3",
"cors": "^2.8.5",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"helmet": "^7.1.0",
"jsonwebtoken": "^9.0.2",
"morgan": "^1.10.0",
"zod": "^3.23.8"
},
"devDependencies": {
"prisma": "^5.22.0"
}
}
}
}

View File

@@ -1,17 +1,26 @@
{ {
"name": "integrarepara-api", "name": "integrarepara-api",
"version": "1.0.0", "version": "1.0.0",
"private": true,
"type": "module", "type": "module",
"main": "server.js", "main": "src/server.js",
"scripts": { "scripts": {
"start": "node server.js" "start": "node src/server.js",
"dev": "node --watch src/server.js",
"prisma:generate": "prisma generate",
"prisma:migrate": "prisma migrate deploy"
}, },
"dependencies": { "dependencies": {
"@prisma/client": "^5.22.0",
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"cors": "^2.8.5", "cors": "^2.8.5",
"dotenv": "^16.4.5",
"express": "^4.19.2", "express": "^4.19.2",
"helmet": "^7.1.0",
"jsonwebtoken": "^9.0.2", "jsonwebtoken": "^9.0.2",
"pg": "^8.11.5" "morgan": "^1.10.0",
"zod": "^3.23.8"
},
"devDependencies": {
"prisma": "^5.22.0"
} }
} }

23
schema.prisma Normal file
View File

@@ -0,0 +1,23 @@
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
phone String @unique
passwordHash String
isVerified Boolean @default(false)
verificationCodeHash String?
verificationCodeExpiresAt DateTime?
lastLoginAt DateTime?
}