From 0e4f0d1ca719e6f58ec77e7f21292ed90b947163 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Thu, 21 Mar 2024 17:57:15 +0100 Subject: [PATCH] chore: disable sentry for local development --- Dockerfile | 4 ++-- Dockerfile.dev | 4 +++- docker-compose.dev.yml | 1 + docker-compose.prod.yml | 3 ++- next.config.mjs | 39 ++++++++++++++++++------------------ package.json | 2 +- packages/worker/build.js | 26 +++++++++++++++--------- packages/worker/src/index.ts | 2 +- sentry.client.config.ts | 2 +- sentry.edge.config.ts | 2 +- sentry.server.config.ts | 2 +- 11 files changed, 49 insertions(+), 38 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1ed20fd0..55cae8bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,12 +7,12 @@ FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS node_base FROM node_base AS builder_base ARG SENTRY_AUTH_TOKEN -ARG SENTRY_DISABLE_AUTO_UPLOAD ARG TIPI_VERSION +ARG LOCAL ENV SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN} -ENV SENTRY_DISABLE_AUTO_UPLOAD=${SENTRY_DISABLE_AUTO_UPLOAD} ENV TIPI_VERSION=${TIPI_VERSION} +ENV LOCAL=${LOCAL} RUN npm install pnpm -g RUN apk add --no-cache curl python3 make g++ git diff --git a/Dockerfile.dev b/Dockerfile.dev index ee23157d..3f4eacb8 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -30,10 +30,12 @@ COPY ./pnpm-lock.yaml ./ RUN pnpm fetch --ignore-scripts COPY ./package*.json ./ -COPY ./packages ./packages +COPY ./packages/worker/package.json ./packages/worker/package.json +COPY ./packages/shared/package.json ./packages/shared/package.json RUN pnpm install -r --prefer-offline +COPY ./packages ./packages COPY ./tsconfig.json ./tsconfig.json COPY ./next.config.mjs ./next.config.mjs COPY ./public ./public diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index d106f0c1..010105b4 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -95,6 +95,7 @@ services: WORKER_APP_DIR: /app/packages/worker DASHBOARD_APP_DIR: /app NEXT_PUBLIC_TIPI_VERSION: development + LOCAL: true env_file: - .env labels: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 53b30e19..93d2894a 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -63,8 +63,8 @@ services: context: . dockerfile: Dockerfile args: - SENTRY_DISABLE_AUTO_UPLOAD: true TIPI_VERSION: development + LOCAL: true container_name: runtipi healthcheck: test: ['CMD', 'curl', '-f', 'http://localhost:5000/worker-api/healthcheck'] @@ -97,6 +97,7 @@ services: NODE_ENV: production TIPI_VERSION: development NEXT_PUBLIC_TIPI_VERSION: development + LOCAL: true networks: - tipi_main_network ports: diff --git a/next.config.mjs b/next.config.mjs index e78a7de7..3d58d900 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -18,22 +18,23 @@ const nextConfig = { }, }; -export default withSentryConfig( - nextConfig, - { - // https://github.com/getsentry/sentry-webpack-plugin#options - silent: false, - org: 'runtipi', - project: 'runtipi-dashboard', - dryRun: process.env.SENTRY_DISABLE_AUTO_UPLOAD === 'true', - release: process.env.TIPI_VERSION, - }, - { - // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - widenClientFileUpload: true, - transpileClientSDK: false, - tunnelRoute: '/errors', - hideSourceMaps: false, - disableLogger: true, - }, -); +export default !process.env.LOCAL === 'true' + ? withSentryConfig( + nextConfig, + { + // https://github.com/getsentry/sentry-webpack-plugin#options + silent: false, + org: 'runtipi', + project: 'runtipi-dashboard', + release: process.env.TIPI_VERSION, + }, + { + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + widenClientFileUpload: true, + transpileClientSDK: false, + tunnelRoute: '/errors', + hideSourceMaps: false, + disableLogger: true, + }, + ) + : nextConfig; diff --git a/package.json b/package.json index b3108ee0..d35eb111 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "test:client": "jest --colors --selectProjects client --", "test:server": "jest --colors --selectProjects server --", "test:vite": "dotenv -e .env.test -- vitest run --coverage", - "dev": "next dev", + "dev": "next dev --turbo", "db:migrate": "NODE_ENV=development dotenv -e .env.local -- tsx ./src/server/run-migrations-dev.ts", "lint": "next lint", "lint:fix": "next lint --fix", diff --git a/packages/worker/build.js b/packages/worker/build.js index 245e835a..6ca2950d 100644 --- a/packages/worker/build.js +++ b/packages/worker/build.js @@ -1,6 +1,21 @@ const { build } = require('esbuild'); const { sentryEsbuildPlugin } = require('@sentry/esbuild-plugin'); +const plugins = []; + +if (process.env.LOCAL !== 'true') { + plugins.push( + sentryEsbuildPlugin({ + authToken: process.env.SENTRY_AUTH_TOKEN, + release: { + name: process.env.TIPI_VERSION, + }, + org: 'runtipi', + project: 'runtipi-worker', + }), + ); +} + async function bundle() { const start = Date.now(); const options = { @@ -15,16 +30,7 @@ async function bundle() { '.node': 'copy', }, minify: true, - plugins: [ - sentryEsbuildPlugin({ - authToken: process.env.SENTRY_AUTH_TOKEN, - release: { - name: process.env.TIPI_VERSION, - }, - org: 'runtipi', - project: 'runtipi-worker', - }), - ], + plugins, }; await build({ diff --git a/packages/worker/src/index.ts b/packages/worker/src/index.ts index e8e6df28..067df81f 100644 --- a/packages/worker/src/index.ts +++ b/packages/worker/src/index.ts @@ -49,7 +49,7 @@ const main = async () => { logger.info('Copying system files...'); await copySystemFiles(envMap); - if (envMap.get('ALLOW_ERROR_MONITORING') === 'true' && process.env.NODE_ENV === 'production') { + if (envMap.get('ALLOW_ERROR_MONITORING') === 'true' && process.env.NODE_ENV === 'production' && process.env.LOCAL !== 'true') { logger.info(`Anonymous error monitoring is enabled, to disable it add "allowErrorMonitoring": false to your settings.json file. Version: ${process.env.TIPI_VERSION}`); setupSentry(process.env.TIPI_VERSION); } diff --git a/sentry.client.config.ts b/sentry.client.config.ts index ccadf2d5..f013b3c5 100644 --- a/sentry.client.config.ts +++ b/sentry.client.config.ts @@ -20,7 +20,7 @@ const getClientConfig = () => { const { allowErrorMonitoring } = getClientConfig(); -if (allowErrorMonitoring && process.env.NODE_ENV === 'production') { +if (allowErrorMonitoring && process.env.NODE_ENV === 'production' && process.env.LOCAL !== 'true') { Sentry.init({ release: process.env.NEXT_PUBLIC_TIPI_VERSION, environment: process.env.NODE_ENV, diff --git a/sentry.edge.config.ts b/sentry.edge.config.ts index f4f1e4db..763cb03a 100644 --- a/sentry.edge.config.ts +++ b/sentry.edge.config.ts @@ -10,7 +10,7 @@ import { extraErrorDataIntegration } from '@sentry/integrations'; const { version, allowErrorMonitoring, NODE_ENV } = TipiConfig.getConfig(); -if (allowErrorMonitoring && NODE_ENV === 'production') { +if (allowErrorMonitoring && NODE_ENV === 'production' && process.env.LOCAL !== 'true') { Sentry.init({ release: version, environment: NODE_ENV, diff --git a/sentry.server.config.ts b/sentry.server.config.ts index 8c1dcf39..0253cdff 100644 --- a/sentry.server.config.ts +++ b/sentry.server.config.ts @@ -9,7 +9,7 @@ import { extraErrorDataIntegration } from '@sentry/integrations'; const { version, allowErrorMonitoring, NODE_ENV } = TipiConfig.getConfig(); -if (allowErrorMonitoring && NODE_ENV === 'production') { +if (allowErrorMonitoring && NODE_ENV === 'production' && process.env.LOCAL !== 'true') { Sentry.init({ release: version, environment: NODE_ENV,