From af13395f2fcf36ddf96a63b1c82633ec4b16bb01 Mon Sep 17 00:00:00 2001 From: Maieul BOYER Date: Tue, 30 Dec 2025 16:01:56 +0100 Subject: [PATCH] feat(db): removed requirement to have EnvVar for database location By default the database directory is `/volumes/database`, but can be changed by setting `DATABASE_DIR` env var --- docker-compose.yml | 4 ---- src/@shared/src/database/index.ts | 20 +++++++++----------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7a6dbf8..4bd2c1c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -60,7 +60,6 @@ services: - ./src/auth/config:/config environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - - DATABASE_DIR=/volumes/database logging: driver: gelf options: @@ -84,7 +83,6 @@ services: - static-volume:/volumes/static environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - - DATABASE_DIR=/volumes/database logging: driver: gelf options: @@ -108,7 +106,6 @@ services: - static-volume:/volumes/static environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - - DATABASE_DIR=/volumes/database - PROVIDER_FILE=/extra/providers.toml - SESSION_MANAGER=${SESSION_MANAGER} logging: @@ -131,7 +128,6 @@ services: - static-volume:/volumes/static environment: - JWT_SECRET=KRUGKIDROVUWG2ZAMJZG653OEBTG66BANJ2W24DTEBXXMZLSEB2GQZJANRQXU6JA - - DATABASE_DIR=/volumes/database logging: driver: gelf options: diff --git a/src/@shared/src/database/index.ts b/src/@shared/src/database/index.ts index 48e869a..1cc1628 100644 --- a/src/@shared/src/database/index.ts +++ b/src/@shared/src/database/index.ts @@ -1,12 +1,10 @@ import fp from 'fastify-plugin'; import { FastifyInstance, FastifyPluginAsync } from 'fastify'; -import { isNullish } from '@shared/utils'; import { Database as DbImpl } from './mixin/_base'; import { IUserDb, UserImpl } from './mixin/user'; import { IBlockedDb, BlockedImpl } from './mixin/blocked'; - Object.assign(DbImpl.prototype, UserImpl); Object.assign(DbImpl.prototype, BlockedImpl); @@ -23,18 +21,18 @@ let dbAdded = false; export const useDatabase = fp(async function( f: FastifyInstance, - _options: object) { + _options: object, +) { void _options; - if (dbAdded) { return; } + if (dbAdded) { + return; + } dbAdded = true; - const path = process.env.DATABASE_DIR; - if (isNullish(path)) { - f.log.fatal('env `DATABASE_DIR` not defined'); - throw 'env `DATABASE_DIR` not defined'; - } + const path = process.env.DATABASE_DIR ?? '/volumes/database'; const db: Database = new DbImpl(`${path}/database.db`) as Database; - if (!f.hasDecorator('db')) { f.decorate('db', db); } + if (!f.hasDecorator('db')) { + f.decorate('db', db); + } }); export default useDatabase; -