This commit is contained in:
Marco Pedone 2025-08-07 19:31:51 +02:00
parent adf5749ec8
commit 73e7c947d8
5 changed files with 84 additions and 73 deletions

View file

@ -6,7 +6,12 @@ FROM base AS deps
RUN apk add --no-cache libc6-compat openssl
WORKDIR /app
COPY package*.json package-lock.json* ./
RUN npm ci
ENV NODE_ENV=production
RUN echo "base variables: $NODE_ENV is set to $NODE_ENV"
RUN npm ci --omit=dev
RUN echo "Dependencies installed successfully"
# Builder stage
# This stage is used to build the application
@ -14,6 +19,8 @@ FROM base AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
ENV NODE_ENV=production
ARG BASE_URL
ENV NEXT_PUBLIC_BASE_URL=$BASE_URL
@ -66,6 +73,10 @@ ENV SKIP_REDIS="true"
RUN SKIP_ENV_VALIDATION=1 npm run build
RUN echo "variables: $BASE_URL, $INTERNAL_BASE_URL, $POSTGRES_USER, $POSTGRES_PASSWORD, $POSTGRES_DB, $PGHOST, $PGPORT, $JWT_SECRET, $BACKENDSERVER_URL, $SENDGRID_API_KEY, $STRIPE_SECRET_KEY, $NEXT_PUBLIC_STRIPE_PUBLIC_KEY, $STRIPE_LIMITED_KEY, $STRIPE_WEBHOOK_SECRET, $FIC_CLIENT_ID, $FIC_ACCESS_TOKEN, $FIC_COMPANY_ID, $ARUBA_USER, $ARUBA_PASS, $EXP_API_USER, $EXP_API_PASS, $KEYDB_URL, $TILES_URL are set successfully"
RUN echo "Build completed successfully"
# Runner stage
# This stage is used to run the built application
FROM base AS runner

View file

@ -38,6 +38,10 @@ const nextConfig = {
devIndicators: false,
rewrites: async () => {
return [
{
source: "/api/panel",
destination: env.NODE_ENV === "production" ? "/404" : "/api/panel",
},
{
source: "/go-api/images/get/:slug*",
destination: env.BACKENDSERVER_URL + "/images/get/:slug*",

View file

@ -91,6 +91,7 @@
"tailwind-merge": "3.3",
"tailwind-scrollbar": "^4.0.2",
"tailwindcss": "^4.1.11",
"trpc-ui": "https://gitpkg.vercel.app/jrhe/trpc-ui/packages/trpc-ui?feature/zod-v4-support&scripts.postinstall=%26%26%20npm%20install%20pnpm%20%26%26%20npm%20install%20--ignore-scripts%20%26%26%20npm%20run%20build",
"tw-animate-css": "^1.3.6",
"type-fest": "^4.41.0",
"uuid": "^11.1.0",
@ -139,11 +140,10 @@
"prettier": "^3.6.2",
"prettier-plugin-classnames": "^0.8.2",
"prettier-plugin-tailwindcss": "^0.6.14",
"trpc-ui": "https://gitpkg.vercel.app/jrhe/trpc-ui/packages/trpc-ui?feature/zod-v4-support&scripts.postinstall=%26%26%20npm%20install%20pnpm%20%26%26%20npm%20install%20--ignore-scripts%20%26%26%20npm%20run%20build",
"typescript": "^5.9.2",
"typescript-eslint": "^8.39.0"
},
"ct3aMetadata": {
"initVersion": "7.9.0"
}
}
}

View file

@ -4,9 +4,6 @@ import { env } from "~/env.mjs";
import { appRouter } from "~/server/api/root";
export default async function handler(_: NextApiRequest, res: NextApiResponse) {
if (env.NODE_ENV !== "development") {
return res.status(404).send("Not Found");
}
if (!env.NEXT_PUBLIC_BASE_URL.includes("localhost")) {
return res.status(404).send("Not Found");
}

View file

@ -121,73 +121,72 @@ services:
tiles:
condition: service_healthy
# web:
# platform: "linux/amd64"
# build:
# context: ./apps/infoalloggi
# dockerfile: Dockerfile
# args:
# INTERNAL_BASE_URL: http://web:3000
# POSTGRES_USER: ${POSTGRES_USER}
# POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
# POSTGRES_DB: ${POSTGRES_DB}
# PGHOST: db
# PGPORT: "5432"
# BACKENDSERVER_URL: http://backend:1323
# TILES_URL: tiles:6379
# KEYDB_URL: keydb:6379
# BASE_URL: ${BASE_URL}
# SENDGRID_API_KEY: ${SENDGRID_API_KEY}
# STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
# NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${NEXT_PUBLIC_STRIPE_PUBLIC_KEY}
# STRIPE_LIMITED_KEY: ${STRIPE_LIMITED_KEY}
# STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
# FIC_CLIENT_ID: ${FIC_CLIENT_ID}
# FIC_ACCESS_TOKEN: ${FIC_ACCESS_TOKEN}
# FIC_COMPANY_ID: ${FIC_COMPANY_ID}
# ARUBA_USER: ${ARUBA_USER}
# ARUBA_PASS: ${ARUBA_PASS}
# EXP_API_USER: ${EXP_API_USER}
# EXP_API_PASS: ${EXP_API_PASS}
# JWT_SECRET: ${JWT_SECRET}
# working_dir: /app
# environment:
# INTERNAL_BASE_URL: http://web:3000
# POSTGRES_USER: ${POSTGRES_USER}
# POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
# POSTGRES_DB: ${POSTGRES_DB}
# PGHOST: db
# PGPORT: "5432"
# BACKENDSERVER_URL: http://backend:1323
# KEYDB_URL: keydb:6379
# TILES_URL: tiles:6379
# BASE_URL: ${BASE_URL}
# SENDGRID_API_KEY: ${SENDGRID_API_KEY}
# STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
# NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${NEXT_PUBLIC_STRIPE_PUBLIC_KEY}
# STRIPE_LIMITED_KEY: ${STRIPE_LIMITED_KEY}
# STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
# FIC_CLIENT_ID: ${FIC_CLIENT_ID}
# FIC_ACCESS_TOKEN: ${FIC_ACCESS_TOKEN}
# FIC_COMPANY_ID: ${FIC_COMPANY_ID}
# ARUBA_USER: ${ARUBA_USER}
# ARUBA_PASS: ${ARUBA_PASS}
# EXP_API_USER: ${EXP_API_USER}
# EXP_API_PASS: ${EXP_API_PASS}
# JWT_SECRET: ${JWT_SECRET}
# networks:
# - dokploy-network
# ports:
# - "3000"
# depends_on:
# backend:
# condition: service_healthy
# db:
# condition: service_healthy
# keydb:
# condition: service_healthy
# tiles:
# condition: service_healthy
web:
build:
context: ./apps/infoalloggi
dockerfile: Dockerfile
args:
INTERNAL_BASE_URL: http://web:3000
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
PGHOST: db
PGPORT: "5432"
BACKENDSERVER_URL: http://backend:1323
TILES_URL: tiles:6379
KEYDB_URL: keydb:6379
BASE_URL: ${BASE_URL}
SENDGRID_API_KEY: ${SENDGRID_API_KEY}
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${NEXT_PUBLIC_STRIPE_PUBLIC_KEY}
STRIPE_LIMITED_KEY: ${STRIPE_LIMITED_KEY}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
FIC_CLIENT_ID: ${FIC_CLIENT_ID}
FIC_ACCESS_TOKEN: ${FIC_ACCESS_TOKEN}
FIC_COMPANY_ID: ${FIC_COMPANY_ID}
ARUBA_USER: ${ARUBA_USER}
ARUBA_PASS: ${ARUBA_PASS}
EXP_API_USER: ${EXP_API_USER}
EXP_API_PASS: ${EXP_API_PASS}
JWT_SECRET: ${JWT_SECRET}
working_dir: /app
environment:
INTERNAL_BASE_URL: http://web:3000
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
PGHOST: db
PGPORT: "5432"
BACKENDSERVER_URL: http://backend:1323
KEYDB_URL: keydb:6379
TILES_URL: tiles:6379
BASE_URL: ${BASE_URL}
SENDGRID_API_KEY: ${SENDGRID_API_KEY}
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY}
NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${NEXT_PUBLIC_STRIPE_PUBLIC_KEY}
STRIPE_LIMITED_KEY: ${STRIPE_LIMITED_KEY}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET}
FIC_CLIENT_ID: ${FIC_CLIENT_ID}
FIC_ACCESS_TOKEN: ${FIC_ACCESS_TOKEN}
FIC_COMPANY_ID: ${FIC_COMPANY_ID}
ARUBA_USER: ${ARUBA_USER}
ARUBA_PASS: ${ARUBA_PASS}
EXP_API_USER: ${EXP_API_USER}
EXP_API_PASS: ${EXP_API_PASS}
JWT_SECRET: ${JWT_SECRET}
networks:
- dokploy-network
ports:
- "3000"
depends_on:
backend:
condition: service_healthy
db:
condition: service_healthy
keydb:
condition: service_healthy
tiles:
condition: service_healthy