mirror of
https://github.com/ershisan99/coolify.git
synced 2025-12-17 12:33:06 +00:00
Update templates
fix: non string inputs in templates
This commit is contained in:
@@ -268,6 +268,13 @@
|
|||||||
- DISABLE_REGISTRATION=$$config_disable_registration
|
- DISABLE_REGISTRATION=$$config_disable_registration
|
||||||
- DATABASE_URL=$$secret_database_url
|
- DATABASE_URL=$$secret_database_url
|
||||||
- CLICKHOUSE_DATABASE_URL=$$secret_clickhouse_database_url
|
- CLICKHOUSE_DATABASE_URL=$$secret_clickhouse_database_url
|
||||||
|
- MAILER_EMAIL=$$config_mailer_email
|
||||||
|
- SMTP_HOST_ADDR=$$config_smtp_host_addr
|
||||||
|
- SMTP_HOST_PORT=$$config_smtp_host_port
|
||||||
|
- SMTP_USER_NAME=$$config_smtp_user_name
|
||||||
|
- SMTP_USER_PWD=$$config_smtp_user_pwd
|
||||||
|
- SMTP_HOST_SSL_ENABLED=$$config_smtp_host_ssl_enabled
|
||||||
|
- SMTP_HOST_RETRIES=$$config_smtp_host_retries
|
||||||
ports:
|
ports:
|
||||||
- "8000"
|
- "8000"
|
||||||
$$id-postgresql:
|
$$id-postgresql:
|
||||||
@@ -375,6 +382,49 @@
|
|||||||
label: PostgreSQL Database
|
label: PostgreSQL Database
|
||||||
defaultValue: plausible
|
defaultValue: plausible
|
||||||
description: ""
|
description: ""
|
||||||
|
- id: $$config_mailer_email
|
||||||
|
name: MAILER_EMAIL
|
||||||
|
label: Mailer Email
|
||||||
|
defaultValue: hello@plausible.local
|
||||||
|
description: >-
|
||||||
|
The email id to use for as from address of all communications from Plausible.
|
||||||
|
- id: $$config_smtp_host_addr
|
||||||
|
name: SMTP_HOST_ADDR
|
||||||
|
label: SMTP Host Address
|
||||||
|
defaultValue: localhost
|
||||||
|
description: >-
|
||||||
|
The host address of your smtp server.
|
||||||
|
- id: $$config_smtp_host_port
|
||||||
|
name: SMTP_HOST_PORT
|
||||||
|
label: SMTP Port
|
||||||
|
defaultValue: "25"
|
||||||
|
description: >-
|
||||||
|
The port of your smtp server.
|
||||||
|
- id: $$config_smtp_user_name
|
||||||
|
name: SMTP_USER_NAME
|
||||||
|
label: SMTP Username
|
||||||
|
defaultValue: ""
|
||||||
|
description: >-
|
||||||
|
The username/email in case SMTP auth is enabled.
|
||||||
|
- id: $$config_smtp_user_pwd
|
||||||
|
name: SMTP_USER_PWD
|
||||||
|
label: SMTP Password
|
||||||
|
defaultValue: ""
|
||||||
|
description: >-
|
||||||
|
The password in case SMTP auth is enabled.
|
||||||
|
showOnConfiguration: true
|
||||||
|
- id: $$config_smtp_host_ssl_enabled
|
||||||
|
name: SMTP_HOST_SSL_ENABLED
|
||||||
|
label: SMTP SSL
|
||||||
|
defaultValue: "false"
|
||||||
|
description: >-
|
||||||
|
If SSL is enabled for SMTP connection.
|
||||||
|
- id: $$config_smtp_host_retries
|
||||||
|
name: SMTP_HOST_RETRIES
|
||||||
|
label: SMTP Retries
|
||||||
|
defaultValue: "2"
|
||||||
|
description: >-
|
||||||
|
Number of retries to make until mailer gives up.
|
||||||
- id: $$config_scriptName
|
- id: $$config_scriptName
|
||||||
name: SCRIPT_NAME
|
name: SCRIPT_NAME
|
||||||
label: Custom Script Name
|
label: Custom Script Name
|
||||||
@@ -3389,6 +3439,13 @@
|
|||||||
- DISABLE_REGISTRATION=$$config_disable_registration
|
- DISABLE_REGISTRATION=$$config_disable_registration
|
||||||
- DATABASE_URL=$$secret_database_url
|
- DATABASE_URL=$$secret_database_url
|
||||||
- CLICKHOUSE_DATABASE_URL=$$secret_clickhouse_database_url
|
- CLICKHOUSE_DATABASE_URL=$$secret_clickhouse_database_url
|
||||||
|
- MAILER_EMAIL=$$config_mailer_email
|
||||||
|
- SMTP_HOST_ADDR=$$config_smtp_host_addr
|
||||||
|
- SMTP_HOST_PORT=$$config_smtp_host_port
|
||||||
|
- SMTP_USER_NAME=$$config_smtp_user_name
|
||||||
|
- SMTP_USER_PWD=$$config_smtp_user_pwd
|
||||||
|
- SMTP_HOST_SSL_ENABLED=$$config_smtp_host_ssl_enabled
|
||||||
|
- SMTP_HOST_RETRIES=$$config_smtp_host_retries
|
||||||
ports:
|
ports:
|
||||||
- "8000"
|
- "8000"
|
||||||
$$id-postgresql:
|
$$id-postgresql:
|
||||||
@@ -3496,6 +3553,49 @@
|
|||||||
label: PostgreSQL Database
|
label: PostgreSQL Database
|
||||||
defaultValue: plausible
|
defaultValue: plausible
|
||||||
description: ""
|
description: ""
|
||||||
|
- id: $$config_mailer_email
|
||||||
|
name: MAILER_EMAIL
|
||||||
|
label: Mailer Email
|
||||||
|
defaultValue: hello@plausible.local
|
||||||
|
description: >-
|
||||||
|
The email id to use for as from address of all communications from Plausible.
|
||||||
|
- id: $$config_smtp_host_addr
|
||||||
|
name: SMTP_HOST_ADDR
|
||||||
|
label: SMTP Host Address
|
||||||
|
defaultValue: localhost
|
||||||
|
description: >-
|
||||||
|
The host address of your smtp server.
|
||||||
|
- id: $$config_smtp_host_port
|
||||||
|
name: SMTP_HOST_PORT
|
||||||
|
label: SMTP Port
|
||||||
|
defaultValue: "25"
|
||||||
|
description: >-
|
||||||
|
The port of your smtp server.
|
||||||
|
- id: $$config_smtp_user_name
|
||||||
|
name: SMTP_USER_NAME
|
||||||
|
label: SMTP Username
|
||||||
|
defaultValue: ""
|
||||||
|
description: >-
|
||||||
|
The username/email in case SMTP auth is enabled.
|
||||||
|
- id: $$config_smtp_user_pwd
|
||||||
|
name: SMTP_USER_PWD
|
||||||
|
label: SMTP Password
|
||||||
|
defaultValue: ""
|
||||||
|
description: >-
|
||||||
|
The password in case SMTP auth is enabled.
|
||||||
|
showOnConfiguration: true
|
||||||
|
- id: $$config_smtp_host_ssl_enabled
|
||||||
|
name: SMTP_HOST_SSL_ENABLED
|
||||||
|
label: SMTP SSL
|
||||||
|
defaultValue: "false"
|
||||||
|
description: >-
|
||||||
|
If SSL is enabled for SMTP connection.
|
||||||
|
- id: $$config_smtp_host_retries
|
||||||
|
name: SMTP_HOST_RETRIES
|
||||||
|
label: SMTP Retries
|
||||||
|
defaultValue: "2"
|
||||||
|
description: >-
|
||||||
|
Number of retries to make until mailer gives up.
|
||||||
- id: $$config_scriptName
|
- id: $$config_scriptName
|
||||||
name: SCRIPT_NAME
|
name: SCRIPT_NAME
|
||||||
label: Custom Script Name
|
label: Custom Script Name
|
||||||
|
|||||||
@@ -86,19 +86,20 @@ export async function migrateServicesToNewTemplate() {
|
|||||||
if (template.variables) {
|
if (template.variables) {
|
||||||
if (template.variables.length > 0) {
|
if (template.variables.length > 0) {
|
||||||
for (const variable of template.variables) {
|
for (const variable of template.variables) {
|
||||||
const { defaultValue } = variable;
|
let { defaultValue } = variable;
|
||||||
|
defaultValue = defaultValue.toString();
|
||||||
const regex = /^\$\$.*\((\d+)\)$/g;
|
const regex = /^\$\$.*\((\d+)\)$/g;
|
||||||
const length = Number(regex.exec(defaultValue)?.[1]) || undefined
|
const length = Number(regex.exec(defaultValue)?.[1]) || undefined
|
||||||
if (variable.defaultValue.startsWith('$$generate_password')) {
|
if (defaultValue.startsWith('$$generate_password')) {
|
||||||
variable.value = generatePassword({ length });
|
variable.value = generatePassword({ length });
|
||||||
} else if (variable.defaultValue.startsWith('$$generate_hex')) {
|
} else if (defaultValue.startsWith('$$generate_hex')) {
|
||||||
variable.value = generatePassword({ length, isHex: true });
|
variable.value = generatePassword({ length, isHex: true });
|
||||||
} else if (variable.defaultValue.startsWith('$$generate_username')) {
|
} else if (defaultValue.startsWith('$$generate_username')) {
|
||||||
variable.value = cuid();
|
variable.value = cuid();
|
||||||
} else if (variable.defaultValue.startsWith('$$generate_token')) {
|
} else if (defaultValue.startsWith('$$generate_token')) {
|
||||||
variable.value = generateToken()
|
variable.value = generateToken()
|
||||||
} else {
|
} else {
|
||||||
variable.value = variable.defaultValue || '';
|
variable.value = defaultValue || '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import { saveBuildLog } from './buildPacks/common';
|
|||||||
import { scheduler } from './scheduler';
|
import { scheduler } from './scheduler';
|
||||||
import type { ExecaChildProcess } from 'execa';
|
import type { ExecaChildProcess } from 'execa';
|
||||||
|
|
||||||
export const version = '3.12.30';
|
export const version = '3.12.31';
|
||||||
export const isDev = process.env.NODE_ENV === 'development';
|
export const isDev = process.env.NODE_ENV === 'development';
|
||||||
export const proxyPort = process.env.COOLIFY_PROXY_PORT;
|
export const proxyPort = process.env.COOLIFY_PROXY_PORT;
|
||||||
export const proxySecurePort = process.env.COOLIFY_PROXY_SECURE_PORT;
|
export const proxySecurePort = process.env.COOLIFY_PROXY_SECURE_PORT;
|
||||||
|
|||||||
@@ -412,22 +412,23 @@ export async function saveServiceType(
|
|||||||
if (foundTemplate.variables) {
|
if (foundTemplate.variables) {
|
||||||
if (foundTemplate.variables.length > 0) {
|
if (foundTemplate.variables.length > 0) {
|
||||||
for (const variable of foundTemplate.variables) {
|
for (const variable of foundTemplate.variables) {
|
||||||
const { defaultValue } = variable;
|
let { defaultValue } = variable;
|
||||||
|
defaultValue = defaultValue.toString();
|
||||||
const regex = /^\$\$.*\((\d+)\)$/g;
|
const regex = /^\$\$.*\((\d+)\)$/g;
|
||||||
const length = Number(regex.exec(defaultValue)?.[1]) || undefined;
|
const length = Number(regex.exec(defaultValue)?.[1]) || undefined;
|
||||||
if (variable.defaultValue.startsWith('$$generate_password')) {
|
if (defaultValue.startsWith('$$generate_password')) {
|
||||||
variable.value = generatePassword({ length });
|
variable.value = generatePassword({ length });
|
||||||
} else if (variable.defaultValue.startsWith('$$generate_hex')) {
|
} else if (defaultValue.startsWith('$$generate_hex')) {
|
||||||
variable.value = generatePassword({ length, isHex: true });
|
variable.value = generatePassword({ length, isHex: true });
|
||||||
} else if (variable.defaultValue.startsWith('$$generate_username')) {
|
} else if (defaultValue.startsWith('$$generate_username')) {
|
||||||
variable.value = cuid();
|
variable.value = cuid();
|
||||||
} else if (variable.defaultValue.startsWith('$$generate_token')) {
|
} else if (defaultValue.startsWith('$$generate_token')) {
|
||||||
variable.value = generateToken();
|
variable.value = generateToken();
|
||||||
} else {
|
} else {
|
||||||
variable.value = variable.defaultValue || '';
|
variable.value = defaultValue || '';
|
||||||
}
|
}
|
||||||
const foundVariableSomewhereElse = foundTemplate.variables.find((v) =>
|
const foundVariableSomewhereElse = foundTemplate.variables.find((v) =>
|
||||||
v.defaultValue.includes(variable.id)
|
v.defaultValue.toString().includes(variable.id)
|
||||||
);
|
);
|
||||||
if (foundVariableSomewhereElse) {
|
if (foundVariableSomewhereElse) {
|
||||||
foundVariableSomewhereElse.value = foundVariableSomewhereElse.value.replaceAll(
|
foundVariableSomewhereElse.value = foundVariableSomewhereElse.value.replaceAll(
|
||||||
@@ -746,7 +747,10 @@ export async function saveService(request: FastifyRequest<SaveService>, reply: F
|
|||||||
let { id: settingId, name, value, changed = false, isNew = false, variableName } = setting;
|
let { id: settingId, name, value, changed = false, isNew = false, variableName } = setting;
|
||||||
if (value) {
|
if (value) {
|
||||||
if (changed) {
|
if (changed) {
|
||||||
await prisma.serviceSetting.update({ where: { id: settingId }, data: { value: value.replace(/\n/, "\\n") } });
|
await prisma.serviceSetting.update({
|
||||||
|
where: { id: settingId },
|
||||||
|
data: { value: value.replace(/\n/, '\\n') }
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if (isNew) {
|
if (isNew) {
|
||||||
if (!variableName) {
|
if (!variableName) {
|
||||||
@@ -1104,11 +1108,14 @@ export async function activateWordpressFtp(
|
|||||||
} catch (error) {}
|
} catch (error) {}
|
||||||
const volumes = [
|
const volumes = [
|
||||||
`${id}-wordpress-data:/home/${ftpUser}/wordpress`,
|
`${id}-wordpress-data:/home/${ftpUser}/wordpress`,
|
||||||
`${isDev ? hostkeyDir : '/var/lib/docker/volumes/coolify-ssl-certs/_data/hostkeys'
|
`${
|
||||||
|
isDev ? hostkeyDir : '/var/lib/docker/volumes/coolify-ssl-certs/_data/hostkeys'
|
||||||
}/${id}.ed25519:/etc/ssh/ssh_host_ed25519_key`,
|
}/${id}.ed25519:/etc/ssh/ssh_host_ed25519_key`,
|
||||||
`${isDev ? hostkeyDir : '/var/lib/docker/volumes/coolify-ssl-certs/_data/hostkeys'
|
`${
|
||||||
|
isDev ? hostkeyDir : '/var/lib/docker/volumes/coolify-ssl-certs/_data/hostkeys'
|
||||||
}/${id}.rsa:/etc/ssh/ssh_host_rsa_key`,
|
}/${id}.rsa:/etc/ssh/ssh_host_rsa_key`,
|
||||||
`${isDev ? hostkeyDir : '/var/lib/docker/volumes/coolify-ssl-certs/_data/hostkeys'
|
`${
|
||||||
|
isDev ? hostkeyDir : '/var/lib/docker/volumes/coolify-ssl-certs/_data/hostkeys'
|
||||||
}/${id}.sh:/etc/sftp.d/chmod.sh`
|
}/${id}.sh:/etc/sftp.d/chmod.sh`
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "coolify",
|
"name": "coolify",
|
||||||
"description": "An open-source & self-hostable Heroku / Netlify alternative.",
|
"description": "An open-source & self-hostable Heroku / Netlify alternative.",
|
||||||
"version": "3.12.30",
|
"version": "3.12.31",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"repository": "github:coollabsio/coolify",
|
"repository": "github:coollabsio/coolify",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user