From ee676b391634f71dc384cd3f74066975b92f4b5f Mon Sep 17 00:00:00 2001 From: echo Date: Tue, 24 Feb 2026 13:15:47 +0100 Subject: [PATCH] db config --- cms/cms/Dockerfile | 1 + cms/cms/config/database.ts | 89 +++++++++++++++++++------------------- docker-compose.coolify.yml | 1 + 3 files changed, 47 insertions(+), 44 deletions(-) diff --git a/cms/cms/Dockerfile b/cms/cms/Dockerfile index bef8a28..8539e14 100644 --- a/cms/cms/Dockerfile +++ b/cms/cms/Dockerfile @@ -34,6 +34,7 @@ COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist COPY --from=builder --chown=nodejs:nodejs /app/public ./public COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules COPY --from=builder --chown=nodejs:nodejs /app/package*.json ./ +COPY --from=builder --chown=nodejs:nodejs /app/config ./config # Create data directory RUN mkdir -p /app/.tmp && \ diff --git a/cms/cms/config/database.ts b/cms/cms/config/database.ts index 1853ca4..0cf290f 100644 --- a/cms/cms/config/database.ts +++ b/cms/cms/config/database.ts @@ -3,58 +3,59 @@ import path from 'path'; export default ({ env }) => { const client = env('DATABASE_CLIENT', 'sqlite'); - const connections = { - mysql: { - connection: { - host: env('DATABASE_HOST', 'localhost'), - port: env.int('DATABASE_PORT', 3306), - database: env('DATABASE_NAME', 'strapi'), - user: env('DATABASE_USERNAME', 'strapi'), - password: env('DATABASE_PASSWORD', 'strapi'), - ssl: env.bool('DATABASE_SSL', false) && { - key: env('DATABASE_SSL_KEY', undefined), - cert: env('DATABASE_SSL_CERT', undefined), - ca: env('DATABASE_SSL_CA', undefined), - capath: env('DATABASE_SSL_CAPATH', undefined), - cipher: env('DATABASE_SSL_CIPHER', undefined), - rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', true), + if (client === 'postgres') { + const connectionString = env('DATABASE_URL'); + + if (connectionString) { + return { + connection: { + client, + connection: connectionString, + pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) }, }, - }, - pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) }, - }, - postgres: { + }; + } + + return { connection: { - connectionString: env('DATABASE_URL'), - host: env('DATABASE_HOST', 'localhost'), - port: env.int('DATABASE_PORT', 5432), - database: env('DATABASE_NAME', 'strapi'), - user: env('DATABASE_USERNAME', 'strapi'), - password: env('DATABASE_PASSWORD', 'strapi'), - ssl: env.bool('DATABASE_SSL', false) && { - key: env('DATABASE_SSL_KEY', undefined), - cert: env('DATABASE_SSL_CERT', undefined), - ca: env('DATABASE_SSL_CA', undefined), - capath: env('DATABASE_SSL_CAPATH', undefined), - cipher: env('DATABASE_SSL_CIPHER', undefined), - rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', true), + client, + connection: { + host: env('DATABASE_HOST', 'localhost'), + port: env.int('DATABASE_PORT', 5432), + database: env('DATABASE_NAME', 'strapi'), + user: env('DATABASE_USERNAME', 'strapi'), + password: env('DATABASE_PASSWORD', 'strapi'), + ssl: env.bool('DATABASE_SSL', false), }, - schema: env('DATABASE_SCHEMA', 'public'), + pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) }, }, - pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) }, - }, - sqlite: { + }; + } + + if (client === 'mysql') { + return { + connection: { + client, + connection: { + host: env('DATABASE_HOST', 'localhost'), + port: env.int('DATABASE_PORT', 3306), + database: env('DATABASE_NAME', 'strapi'), + user: env('DATABASE_USERNAME', 'strapi'), + password: env('DATABASE_PASSWORD', 'strapi'), + ssl: env.bool('DATABASE_SSL', false), + }, + pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) }, + }, + }; + } + + return { + connection: { + client, connection: { filename: path.join(__dirname, '..', '..', env('DATABASE_FILENAME', '.tmp/data.db')), }, useNullAsDefault: true, }, }; - - return { - connection: { - client, - ...connections[client], - acquireConnectionTimeout: env.int('DATABASE_CONNECTION_TIMEOUT', 60000), - }, - }; }; diff --git a/docker-compose.coolify.yml b/docker-compose.coolify.yml index 7004d7e..59ea76d 100644 --- a/docker-compose.coolify.yml +++ b/docker-compose.coolify.yml @@ -118,6 +118,7 @@ services: DATABASE_NAME: placebo_cms_db DATABASE_USERNAME: placebo_user DATABASE_PASSWORD: ${DATABASE_PASSWORD} + DATABASE_URL: postgres://placebo_user:${DATABASE_PASSWORD}@postgres-cms:5432/placebo_cms_db DATABASE_SSL: 'false' APP_KEYS: ${STRAPI_APP_KEYS} API_TOKEN_SALT: ${STRAPI_API_TOKEN_SALT}