diff --git a/.env.marcopedone b/.env.marcopedone new file mode 100644 index 0000000..66301a0 --- /dev/null +++ b/.env.marcopedone @@ -0,0 +1,43 @@ +BASE_URL="https://info.marcopedone.it" +NEXT_PUBLIC_BASE_URL = "https://info.marcopedone.it" +INTERNAL_BASE_URL = "http://web:3000" +#Api key for the mail service +SENDGRID_API_KEY='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' + +#Database connection +POSTGRES_USER="postgres" +POSTGRES_PASSWORD="rootpost" +POSTGRES_DB="postgres" +PGHOST="db" +PGPORT="5432" + +#JWT keys +JWT_SECRET="2247b03c268bbd2f3c29d5dbc67b2acc29e41e54a9cb8946c7c7afc0bf244d7d18f7f63d4d583a7c9b89649ab9d4350cb2f79d8c392fcb240d3729cadd5b01e4" + +#Stripe keys +STRIPE_SECRET_KEY = "sk_test_51P4IY3ILe4KoQRqXJJLyn33Dvb4z3ajTrMsGD4y8g4DWXMbPQcoqOAcvedemB83xn0FIdVAMGX1hk8gXYog1BXl700cRUngUET" +NEXT_PUBLIC_STRIPE_PUBLIC_KEY = "pk_test_51P4IY3ILe4KoQRqXXUVDyiVEy9oiKdzDIB9xgDY054xVRyVZ5dfWoJlo1F5dXlQ6sEATwgylPp708PQEf2uhagUx00qcL0rRgq" +STRIPE_WEBHOOK_SECRET = "whsec_MI03A5Owgqx0HmW8A5zf5KZvX7zSEwZk" + +#Fatture in Cloud keys +FIC_CLIENT_ID = "ggZlcim78qkRYrl5n2d8DpNoKGiqwRHa" +FIC_ACCESS_TOKEN = "a/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZWYiOiJ2Z2VOWFhST0JyZUliN3dNMFFpM0NpdXFhb1VHTzBlciJ9.ewEBe0Qq4ATNyx03rTTynWHhhxYvjuCB-ra8XBJV_B0" +FIC_COMPANY_ID = "120838" + +#ARUBA EMAIL +ARUBA_USER = "web@infoalloggi.it" +ARUBA_PASS = "we2023Info.1" + +#EXPOSED API AUTH +EXP_API_USER = "infoalloggi-admin" +EXP_API_PASS = "cyYk24u9fRn5DsqjFWpTV8GKBNwhQvEtbMmHxJeU73ZSaXrdCLAPg6NtDkC43ZQa9dVKHbxMv7fWpy65gFmAsEReXwuPYTL82jJnSUhrzcqGkqvsHPyxmEAFzYVSntGeQTr25dJb3UNCMuRpgwaDW69Zhc7Kj8LfB4ZCHR9kYfWVsGrx7tygqdvc82SFXj54Nhnpm6PEBLbKUuaMTQJeA3wDgPSCXwDVmhned6J8ZQ3qzNsr5bBuLtHxvFTAKGy74W2fY9pckjMRUEJYRkVPZwbvBtTKy2F8ULAseunzWj7G5d6Q3ExfmNCXqg4MDahH9cSruXyWxLNAsGQTPSFhD9HYVzB3Meg2rk5Cvacfq8mdZ6tUE4KRpwbn7jJAev7WRbVgPdncMLKxwm8yT9pQZ4DNUkaYj6ztXfhsBHqF5ErCu32Gcjb3H6KxvWsu9p5fkPrh7ZARXMLDdS82enFU4CqwztTayEmGNVgYJB" + +MINIO_ROOT_USER= "admin" +MINIO_ROOT_PASSWORD= "adminadmin" + +CONCURRENT_IMAGES=2 + +SKIP_REDIS="false" + +SKEBBY_USER="arcasms2018" +SKEBBY_PASS="0104ce28-9680-4746-9995-8b927ba9c22b" \ No newline at end of file diff --git a/apps/infoalloggi/Dockerfile b/apps/infoalloggi/Dockerfile index ab8fbfc..2e96266 100644 --- a/apps/infoalloggi/Dockerfile +++ b/apps/infoalloggi/Dockerfile @@ -21,10 +21,20 @@ COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 +ENV SKIP_REDIS="true" + +# Only essential build-time variables ARG BASE_URL ENV NEXT_PUBLIC_BASE_URL=$BASE_URL + +ARG NEXT_PUBLIC_STRIPE_PUBLIC_KEY +ENV NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY + ARG INTERNAL_BASE_URL ENV INTERNAL_BASE_URL=$INTERNAL_BASE_URL + +# Database connection for build (if needed for static generation) ARG POSTGRES_USER ARG POSTGRES_PASSWORD ARG POSTGRES_DB @@ -35,43 +45,25 @@ ENV POSTGRES_DB=$POSTGRES_DB ENV PGPORT=$PGPORT ENV POSTGRES_USER=$POSTGRES_USER ENV POSTGRES_PASSWORD=$POSTGRES_PASSWORD -ARG JWT_SECRET -ENV JWT_SECRET=$JWT_SECRET -ARG BACKENDSERVER_URL -ENV BACKENDSERVER_URL=$BACKENDSERVER_URL -ARG SENDGRID_API_KEY -ENV SENDGRID_API_KEY=$SENDGRID_API_KEY -ARG STRIPE_SECRET_KEY -ENV STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY -ARG NEXT_PUBLIC_STRIPE_PUBLIC_KEY -ENV NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY -ARG STRIPE_WEBHOOK_SECRET -ENV STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET -ARG FIC_CLIENT_ID -ENV FIC_CLIENT_ID=$FIC_CLIENT_ID -ARG FIC_ACCESS_TOKEN -ENV FIC_ACCESS_TOKEN=$FIC_ACCESS_TOKEN -ARG FIC_COMPANY_ID -ENV FIC_COMPANY_ID=$FIC_COMPANY_ID -ARG ARUBA_USER -ENV ARUBA_USER=$ARUBA_USER -ARG ARUBA_PASS -ENV ARUBA_PASS=$ARUBA_PASS -ARG EXP_API_USER -ENV EXP_API_USER=$EXP_API_USER -ARG EXP_API_PASS -ENV EXP_API_PASS=$EXP_API_PASS -ARG KEYDB_URL -ENV KEYDB_URL=$KEYDB_URL -ARG TILES_URL -ENV TILES_URL=$TILES_URL -ENV NEXT_TELEMETRY_DISABLED=1 -ENV SKIP_REDIS="true" -ARG SKEBBY_USER -ENV SKEBBY_USER=$SKEBBY_USER -ARG SKEBBY_PASS -ENV SKEBBY_PASS=$SKEBBY_PASS +# Mock/empty values for validation bypass during build +ENV JWT_SECRET="build-time-mock" +ENV BACKENDSERVER_URL="http://localhost:1323" +ENV SENDGRID_API_KEY="mock" +ENV STRIPE_SECRET_KEY="mock" +ENV STRIPE_WEBHOOK_SECRET="mock" +ENV FIC_CLIENT_ID="mock" +ENV FIC_ACCESS_TOKEN="mock" +ENV FIC_COMPANY_ID="mock" +ENV ARUBA_USER="mock" +ENV ARUBA_PASS="mock" +ENV EXP_API_USER="mock" +ENV EXP_API_PASS="mock" +ENV KEYDB_URL="localhost:6380" +ENV TILES_URL="localhost:6379" +ENV SKEBBY_USER="mock" +ENV SKEBBY_PASS="mock" + RUN SKIP_ENV_VALIDATION=1 npm run build @@ -82,7 +74,12 @@ RUN echo "Build completed successfully" # This stage is used to run the built application FROM base AS runner WORKDIR /app + ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 +ENV SKIP_REDIS="false" + +# Essential runtime variables ARG BASE_URL ENV NEXT_PUBLIC_BASE_URL=$BASE_URL ARG INTERNAL_BASE_URL @@ -127,9 +124,6 @@ ARG KEYDB_URL ENV KEYDB_URL=$KEYDB_URL ARG TILES_URL ENV TILES_URL=$TILES_URL -ENV NEXT_TELEMETRY_DISABLED=1 -ENV SKIP_REDIS="false" - ARG SKEBBY_USER ENV SKEBBY_USER=$SKEBBY_USER ARG SKEBBY_PASS diff --git a/build_and_push_ghcr.sh b/build_and_push_ghcr.sh index 7088339..c06a5b3 100644 --- a/build_and_push_ghcr.sh +++ b/build_and_push_ghcr.sh @@ -17,12 +17,13 @@ set -euo pipefail # - backend -> ./apps/backend # - web -> ./apps/infoalloggi -TAG=${1:-${TAG:-latest}} -IMAGE_REGISTRY=${IMAGE_REGISTRY:-ghcr.io} -OWNER=${OWNER:-marcopedone} -SERVICES=${SERVICES:-"backend web db"} -USERNAME=${USERNAME:-marcopedone} -TOKEN=${TOKEN:-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} +: "${TAG:?TAG is required}" +: "${IMAGE_REGISTRY:?IMAGE_REGISTRY is required}" +: "${OWNER:?OWNER is required}" +: "${SERVICES:?SERVICES is required}" +: "${USERNAME:?USERNAME is required}" +: "${TOKEN:?TOKEN is required}" +: "${ENV_FILE:?ENV_FILE is required}" set -x @@ -56,7 +57,7 @@ for svc in ${SERVICES}; do IMAGE="${IMAGE_REGISTRY}/${OWNER}/infoalloggi-${svc}:${TAG}" echo "Building ${svc} -> ${IMAGE} (context: ${ctx})" - docker build -t "${IMAGE}" -f "$ctx/$dockerfile" "$ctx" + docker build --build-arg ENV_FILE="${ENV_FILE}" -t "${IMAGE}" -f "$ctx/$dockerfile" "$ctx" echo "Pushing ${IMAGE}" docker push "${IMAGE}" diff --git a/deploy_marcopedone.sh b/deploy_marcopedone.sh new file mode 100644 index 0000000..b47af77 --- /dev/null +++ b/deploy_marcopedone.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Preset for staging environment +export TAG="latest" +export IMAGE_REGISTRY="ghcr.io" +export OWNER="marcopedone" +export SERVICES="web backend db" +export USERNAME="marcopedone" +export TOKEN="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" +export ENV_FILE=".env.marcopedone" + +./build_and_push_ghcr.sh \ No newline at end of file