From 96b76aea6b530de089890b2ded9ecbc742997c28 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 12 Aug 2022 19:00:39 +0000 Subject: [PATCH 1/6] debug: fider --- apps/api/src/lib/common.ts | 2 +- apps/api/src/lib/serviceFields.ts | 2 +- apps/api/src/routes/api/v1/services/handlers.ts | 6 +++--- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/api/src/lib/common.ts b/apps/api/src/lib/common.ts index ce8b8051d..62064cbc4 100644 --- a/apps/api/src/lib/common.ts +++ b/apps/api/src/lib/common.ts @@ -17,7 +17,7 @@ import { checkContainer, removeContainer } from './docker'; import { day } from './dayjs'; import * as serviceFields from './serviceFields' -export const version = '3.3.2'; +export const version = '3.3.3'; export const isDev = process.env.NODE_ENV === 'development'; const algorithm = 'aes-256-ctr'; diff --git a/apps/api/src/lib/serviceFields.ts b/apps/api/src/lib/serviceFields.ts index 89d6a9c70..9ddf37ba3 100644 --- a/apps/api/src/lib/serviceFields.ts +++ b/apps/api/src/lib/serviceFields.ts @@ -326,7 +326,7 @@ export const fider = [{ isBoolean: false, isEncrypted: true }, { - name: 'postgreslUser', + name: 'postgresqlUser', isEditable: false, isLowerCase: false, isNumber: false, diff --git a/apps/api/src/routes/api/v1/services/handlers.ts b/apps/api/src/routes/api/v1/services/handlers.ts index 8d07ac70b..71f1cc149 100644 --- a/apps/api/src/routes/api/v1/services/handlers.ts +++ b/apps/api/src/routes/api/v1/services/handlers.ts @@ -197,15 +197,15 @@ export async function getService(request: FastifyRequest) { const teamId = request.user.teamId; const { id } = request.params; const service = await getServiceFromDB({ id, teamId }); - const settings = await listSettings() + console.log(service) if (!service) { throw { status: 404, message: 'Service not found.' } } return { - service, - settings + service } } catch ({ status, message }) { + console.log({status, message}) return errorHandler({ status, message }) } } diff --git a/package.json b/package.json index 9a11294f8..f02c854bb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "coolify", "description": "An open-source & self-hostable Heroku / Netlify alternative.", - "version": "3.3.2", + "version": "3.3.3", "license": "Apache-2.0", "repository": "github:coollabsio/coolify", "scripts": { From eef6b95e242233ed76184f260c67d256f9a972ea Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 12 Aug 2022 19:06:46 +0000 Subject: [PATCH 2/6] debug more --- apps/api/src/lib/common.ts | 4 +++- apps/api/src/routes/api/v1/services/handlers.ts | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/api/src/lib/common.ts b/apps/api/src/lib/common.ts index 62064cbc4..47149011a 100644 --- a/apps/api/src/lib/common.ts +++ b/apps/api/src/lib/common.ts @@ -1284,13 +1284,14 @@ export async function getServiceFromDB({ id, teamId }: { id: string; teamId: str }); let { type } = body type = fixType(type) - + console.log({body}) if (body?.serviceSecret.length > 0) { body.serviceSecret = body.serviceSecret.map((s) => { s.value = decrypt(s.value); return s; }); } + console.log({body2:body}) body[type] = { ...body[type], ...getUpdateableFields(type, body[type]) } return { ...body, settings }; } @@ -1582,6 +1583,7 @@ export function getUpdateableFields(type: string, data: any) { update[k.name] = temp }); } + console.log({update}) return update } diff --git a/apps/api/src/routes/api/v1/services/handlers.ts b/apps/api/src/routes/api/v1/services/handlers.ts index 71f1cc149..2ea954bad 100644 --- a/apps/api/src/routes/api/v1/services/handlers.ts +++ b/apps/api/src/routes/api/v1/services/handlers.ts @@ -196,6 +196,7 @@ export async function getService(request: FastifyRequest) { try { const teamId = request.user.teamId; const { id } = request.params; + console.log({id, teamId}) const service = await getServiceFromDB({ id, teamId }); console.log(service) if (!service) { From b63e516274ae8cad796da917a3f363aa6733ce95 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 12 Aug 2022 19:21:45 +0000 Subject: [PATCH 3/6] debug --- apps/api/src/lib/serviceFields.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/api/src/lib/serviceFields.ts b/apps/api/src/lib/serviceFields.ts index 9ddf37ba3..7085049b8 100644 --- a/apps/api/src/lib/serviceFields.ts +++ b/apps/api/src/lib/serviceFields.ts @@ -395,7 +395,7 @@ export const fider = [{ isLowerCase: false, isNumber: false, isBoolean: false, - isEncrypted: true + isEncrypted: false }, { name: 'emailMailgunDomain', From 29dc5a8bb4571f623c5c116cb2c7c1242396fabb Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 12 Aug 2022 19:29:53 +0000 Subject: [PATCH 4/6] revert debug --- apps/api/src/lib/common.ts | 6 ++---- apps/api/src/lib/serviceFields.ts | 2 +- apps/api/src/routes/api/v1/services/handlers.ts | 3 --- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/apps/api/src/lib/common.ts b/apps/api/src/lib/common.ts index 47149011a..c9ce0e6df 100644 --- a/apps/api/src/lib/common.ts +++ b/apps/api/src/lib/common.ts @@ -1226,7 +1226,6 @@ export async function startTraefikTCPProxy( } traefikUrl = `${ip}/webhooks/traefik/other.json` } - console.log(traefikUrl) const tcpProxy = { version: '3.8', services: { @@ -1284,14 +1283,14 @@ export async function getServiceFromDB({ id, teamId }: { id: string; teamId: str }); let { type } = body type = fixType(type) - console.log({body}) + if (body?.serviceSecret.length > 0) { body.serviceSecret = body.serviceSecret.map((s) => { s.value = decrypt(s.value); return s; }); } - console.log({body2:body}) + body[type] = { ...body[type], ...getUpdateableFields(type, body[type]) } return { ...body, settings }; } @@ -1583,7 +1582,6 @@ export function getUpdateableFields(type: string, data: any) { update[k.name] = temp }); } - console.log({update}) return update } diff --git a/apps/api/src/lib/serviceFields.ts b/apps/api/src/lib/serviceFields.ts index 7085049b8..9ddf37ba3 100644 --- a/apps/api/src/lib/serviceFields.ts +++ b/apps/api/src/lib/serviceFields.ts @@ -395,7 +395,7 @@ export const fider = [{ isLowerCase: false, isNumber: false, isBoolean: false, - isEncrypted: false + isEncrypted: true }, { name: 'emailMailgunDomain', diff --git a/apps/api/src/routes/api/v1/services/handlers.ts b/apps/api/src/routes/api/v1/services/handlers.ts index 2ea954bad..a2c87092e 100644 --- a/apps/api/src/routes/api/v1/services/handlers.ts +++ b/apps/api/src/routes/api/v1/services/handlers.ts @@ -196,9 +196,7 @@ export async function getService(request: FastifyRequest) { try { const teamId = request.user.teamId; const { id } = request.params; - console.log({id, teamId}) const service = await getServiceFromDB({ id, teamId }); - console.log(service) if (!service) { throw { status: 404, message: 'Service not found.' } } @@ -206,7 +204,6 @@ export async function getService(request: FastifyRequest) { service } } catch ({ status, message }) { - console.log({status, message}) return errorHandler({ status, message }) } } From 9b67a253f1b371dc7cf46e714f9fba0d4a3d2da3 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 12 Aug 2022 19:39:03 +0000 Subject: [PATCH 5/6] fix: decryption errors --- apps/api/src/lib/common.ts | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/apps/api/src/lib/common.ts b/apps/api/src/lib/common.ts index c9ce0e6df..a2b78bf50 100644 --- a/apps/api/src/lib/common.ts +++ b/apps/api/src/lib/common.ts @@ -96,17 +96,23 @@ export const base64Decode = (text: string): string => { }; export const decrypt = (hashString: string) => { if (hashString) { - const hash = JSON.parse(hashString); - const decipher = crypto.createDecipheriv( - algorithm, - process.env['COOLIFY_SECRET_KEY'], - Buffer.from(hash.iv, 'hex') - ); - const decrpyted = Buffer.concat([ - decipher.update(Buffer.from(hash.content, 'hex')), - decipher.final() - ]); - return decrpyted.toString(); + try { + const hash = JSON.parse(hashString); + const decipher = crypto.createDecipheriv( + algorithm, + process.env['COOLIFY_SECRET_KEY'], + Buffer.from(hash.iv, 'hex') + ); + const decrpyted = Buffer.concat([ + decipher.update(Buffer.from(hash.content, 'hex')), + decipher.final() + ]); + return decrpyted.toString(); + } catch (error) { + console.log({ decryptionError: error.message }) + return hashString + } + } }; export const encrypt = (text: string) => { From bc802b6f1909663ed182492447197b103380e7fc Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Sun, 14 Aug 2022 20:02:18 +0000 Subject: [PATCH 6/6] fix: postgresql on ARM --- apps/api/src/lib/common.ts | 7 ++++++- csb.nix | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/api/src/lib/common.ts b/apps/api/src/lib/common.ts index a2b78bf50..68afa8861 100644 --- a/apps/api/src/lib/common.ts +++ b/apps/api/src/lib/common.ts @@ -873,6 +873,11 @@ export function generateDatabaseConfiguration(database: any, arch: string): } if (isARM(arch)) { configuration.volume = `${id}-${type}-data:/var/lib/postgresql`; + configuration.environmentVariables = { + POSTGRES_PASSWORD: dbUserPassword, + POSTGRES_USER: dbUser, + POSTGRES_DB: defaultDatabase + } } return configuration } else if (type === 'redis') { @@ -909,7 +914,7 @@ export function generateDatabaseConfiguration(database: any, arch: string): return configuration } } -export function isARM(arch) { +export function isARM(arch: string) { if (arch === 'arm' || arch === 'arm64') { return true } diff --git a/csb.nix b/csb.nix index 2005806f9..b2b07e4de 100644 --- a/csb.nix +++ b/csb.nix @@ -1,7 +1,7 @@ with import {}; stdenv.mkDerivation { - name = "git"; + name = "environment"; buildInputs = [ git git-lfs