From a1fa7b42ce707d892a7bea4f36f6db80bb6c95b8 Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Wed, 6 May 2026 11:10:35 +0200 Subject: [PATCH] Despliegue local --- build.develop.sh | 2 ++ build.local.sh | 2 ++ deployment/local/{ => docker}/Dockerfile.local | 16 ++++++++-------- .../local/{ => docker}/docker-compose.yaml | 0 deployment/local/start.sh | 6 ++++++ package-lock.json | 8 ++++---- package.json | 5 ++++- run.local.sh | 2 ++ src/config/postgres-config.ts | 10 +++++----- stop.local.sh | 2 ++ 10 files changed, 35 insertions(+), 18 deletions(-) create mode 100755 build.develop.sh create mode 100755 build.local.sh rename deployment/local/{ => docker}/Dockerfile.local (51%) rename deployment/local/{ => docker}/docker-compose.yaml (100%) create mode 100644 deployment/local/start.sh create mode 100755 run.local.sh create mode 100755 stop.local.sh diff --git a/build.develop.sh b/build.develop.sh new file mode 100755 index 0000000..0c8aac5 --- /dev/null +++ b/build.develop.sh @@ -0,0 +1,2 @@ +#/bin/bash +docker compose -f deployment/develop/docker/docker-compose.yaml --project-directory ./ build diff --git a/build.local.sh b/build.local.sh new file mode 100755 index 0000000..5588e48 --- /dev/null +++ b/build.local.sh @@ -0,0 +1,2 @@ +#/bin/bash +docker compose -f deployment/local/docker/docker-compose.yaml --project-directory ./ build diff --git a/deployment/local/Dockerfile.local b/deployment/local/docker/Dockerfile.local similarity index 51% rename from deployment/local/Dockerfile.local rename to deployment/local/docker/Dockerfile.local index d561ff3..a017205 100644 --- a/deployment/local/Dockerfile.local +++ b/deployment/local/docker/Dockerfile.local @@ -1,22 +1,22 @@ FROM node:22-alpine WORKDIR /home/node/app +RUN chown -R node:node /home/node/app +USER node -COPY ./package.json ./package-lock.json ./ -COPY ./src ./src +COPY --chown=node:node ./package.json ./package-lock.json ./ +COPY --chown=node:node ./src ./src # copia el codigo en general -COPY tsconfig.json ./ -COPY .env* ./ -COPY ./deployment/local/start.sh ./ +COPY --chown=node:node tsconfig.json ./ +COPY --chown=node:node .env* ./ +COPY --chown=node:node ./deployment/local/start.sh ./ # Copiar el archivo de migrations? porque ahora no creo que se esté lanzando nada -COPY ./deployment/database/migrations ./deployment/database/migrations +COPY --chown=node:node ./deployment/database/migrations ./deployment/database/migrations RUN npm config set registry https://git.savefamilygps.net/api/packages/SaveFamily/npm/ &&\ echo "registry=https://registry.npmjs.org/" >> .npmrc &&\ - npm install &&\ - ls && npm run build:esbuild &&\ chmod +x start.sh EXPOSE ${PORT} ENTRYPOINT [ "./start.sh" ] diff --git a/deployment/local/docker-compose.yaml b/deployment/local/docker/docker-compose.yaml similarity index 100% rename from deployment/local/docker-compose.yaml rename to deployment/local/docker/docker-compose.yaml diff --git a/deployment/local/start.sh b/deployment/local/start.sh new file mode 100644 index 0000000..aae243c --- /dev/null +++ b/deployment/local/start.sh @@ -0,0 +1,6 @@ +#!/bin/sh +echo "Lanzando migraciones e iniciando servidor" +npm install +npm run migrate +npm run build:esbuild +npm run start diff --git a/package-lock.json b/package-lock.json index 097b215..27e4352 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "tsx": "^4.21.0" }, "devDependencies": { - "@sf-alvar/db-migrate": "^1.0.10", + "@sf-alvar/db-migrate": "^1.0.12", "@types/ejs": "^3.1.5", "@types/express": "^5.0.6", "@types/node": "^25.6.0", @@ -485,9 +485,9 @@ } }, "node_modules/@sf-alvar/db-migrate": { - "version": "1.0.10", - "resolved": "https://git.savefamilygps.net/api/packages/SaveFamily/npm/%40sf-alvar%2Fdb-migrate/-/1.0.10/db-migrate-1.0.10.tgz", - "integrity": "sha512-tD8Ziytn0Yh88vCIL+vOKTwwSh3hDp+1ZX02eaPUQtmbec/Iz1Beq2izHU+vre1dHMGUPI9Tu79HsDbx159nfQ==", + "version": "1.0.12", + "resolved": "https://git.savefamilygps.net/api/packages/SaveFamily/npm/%40sf-alvar%2Fdb-migrate/-/1.0.12/db-migrate-1.0.12.tgz", + "integrity": "sha512-llxt2JE1lWPSYgVmME8G9kGkV3yY1zWHxGY4nf1IjkUhQd1zcnnRPq9B3oS4M1W8GXx9IyM/dQhjkrqHEAJy+A==", "dev": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 2815a6f..38d08c6 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,9 @@ "scripts": { "dev": "tsx src/index.ts", "build": "tsc", + "build:esbuild": "esbuild --bundle src/index.ts --outdir=dist --platform=node --format=esm --packages=external && cp -r src/views dist/ ", + "start": "node dist/index.js", + "migrate": "db-migrate -e .env -m ./deployment/database/migrations/ -t 99.0.0", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { @@ -20,7 +23,7 @@ "author": "", "license": "ISC", "devDependencies": { - "@sf-alvar/db-migrate": "^1.0.10", + "@sf-alvar/db-migrate": "^1.0.12", "@types/ejs": "^3.1.5", "@types/express": "^5.0.6", "@types/node": "^25.6.0", diff --git a/run.local.sh b/run.local.sh new file mode 100755 index 0000000..8a821f1 --- /dev/null +++ b/run.local.sh @@ -0,0 +1,2 @@ +#/bin/bash +docker compose -f ./deployment/local/docker/docker-compose.yaml --project-directory ./ up --watch diff --git a/src/config/postgres-config.ts b/src/config/postgres-config.ts index b71db16..1a65a36 100644 --- a/src/config/postgres-config.ts +++ b/src/config/postgres-config.ts @@ -4,9 +4,9 @@ import dotenv from 'dotenv'; dotenv.config(); export const pool = new pg.Pool({ - host: process.env.DB_HOST, - port: Number(process.env.DB_PORT), - user: process.env.DB_USER, - password: process.env.DB_PASSWORD, - database: process.env.DB_NAME + host: process.env.POSTGRES_HOST, + port: Number(process.env.POSTGRES_PORT), + user: process.env.POSTGRES_USER, + password: process.env.POSTGRES_PASSWORD, + database: process.env.POSTGRES_DB }); diff --git a/stop.local.sh b/stop.local.sh new file mode 100755 index 0000000..29acd37 --- /dev/null +++ b/stop.local.sh @@ -0,0 +1,2 @@ +#/bin/bash +docker compose -f deployment/local/docker/docker-compose.yaml --project-directory ./ down -v