diff --git a/apps/server/src/integrations/export/export.service.ts b/apps/server/src/integrations/export/export.service.ts index b4bc73fa..bd9e3598 100644 --- a/apps/server/src/integrations/export/export.service.ts +++ b/apps/server/src/integrations/export/export.service.ts @@ -30,7 +30,11 @@ import { Node } from '@tiptap/pm/model'; import { EditorState } from '@tiptap/pm/state'; import slugify from '@sindresorhus/slugify'; // eslint-disable-next-line @typescript-eslint/no-require-imports -const packageJson = require('../../../package.json'); +const packageJson: { version: string } = (() => { + try { return require('../../../package.json'); } catch { /* dist mode */ } + try { return require('../../../../package.json'); } catch { /* deeper */ } + return { version: 'dev' }; +})(); import { EnvironmentService } from '../environment/environment.service'; import { DomainService } from '../environment/domain.service'; import { diff --git a/apps/server/src/integrations/security/version.service.ts b/apps/server/src/integrations/security/version.service.ts index 2ceee86e..1431ffe6 100644 --- a/apps/server/src/integrations/security/version.service.ts +++ b/apps/server/src/integrations/security/version.service.ts @@ -1,6 +1,10 @@ import { Injectable } from '@nestjs/common'; // eslint-disable-next-line @typescript-eslint/no-require-imports -const packageJson = require('./../../../package.json'); +const packageJson: { version: string } = (() => { + try { return require('./../../../package.json'); } catch { /* dist */ } + try { return require('./../../../../package.json'); } catch { /* deeper */ } + return { version: 'dev' }; +})(); @Injectable() export class VersionService { diff --git a/apps/server/src/integrations/telemetry/telemetry.service.ts b/apps/server/src/integrations/telemetry/telemetry.service.ts index 99473e9d..ffc470b7 100644 --- a/apps/server/src/integrations/telemetry/telemetry.service.ts +++ b/apps/server/src/integrations/telemetry/telemetry.service.ts @@ -6,7 +6,11 @@ import { KyselyDB } from '@docmost/db/types/kysely.types'; import { createHmac } from 'node:crypto'; import { WorkspaceRepo } from '@docmost/db/repos/workspace/workspace.repo'; // eslint-disable-next-line @typescript-eslint/no-require-imports -const packageJson = require('./../../../package.json'); +const packageJson: { version: string } = (() => { + try { return require('./../../../package.json'); } catch { /* dist */ } + try { return require('./../../../../package.json'); } catch { /* deeper */ } + return { version: 'dev' }; +})(); @Injectable() export class TelemetryService { diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 00000000..6d8c1123 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,31 @@ +services: + db-dev: + image: postgres:16-alpine + container_name: docadenice-dev-db + environment: + POSTGRES_DB: docadenice_dev + POSTGRES_USER: docadenice + POSTGRES_PASSWORD: dev_password_local_only + ports: + - "127.0.0.1:5433:5432" + volumes: + - dev_db_data:/var/lib/postgresql/data + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -U docadenice -d docadenice_dev"] + interval: 5s + timeout: 3s + retries: 10 + + redis-dev: + image: redis:7-alpine + container_name: docadenice-dev-redis + ports: + - "127.0.0.1:6380:6379" + volumes: + - dev_redis_data:/data + restart: unless-stopped + +volumes: + dev_db_data: + dev_redis_data: