mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Compare commits
8 Commits
v0.10.5
...
635-the-re
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b56a6b400 | ||
|
|
996d449f0f | ||
|
|
3b197f3624 | ||
|
|
95e53169b1 | ||
|
|
52a19a325e | ||
|
|
9d891e87e0 | ||
|
|
41b274fbb3 | ||
|
|
6417e13336 |
@@ -119,7 +119,7 @@ export const UpdateVolume = ({
|
|||||||
} else if (typeForm === "file") {
|
} else if (typeForm === "file") {
|
||||||
form.reset({
|
form.reset({
|
||||||
content: data.content || "",
|
content: data.content || "",
|
||||||
mountPath: data.mountPath,
|
mountPath: "/",
|
||||||
filePath: data.filePath || "",
|
filePath: data.filePath || "",
|
||||||
type: "file",
|
type: "file",
|
||||||
});
|
});
|
||||||
@@ -296,15 +296,13 @@ export const UpdateVolume = ({
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<DialogFooter>
|
<DialogFooter>
|
||||||
<DialogClose>
|
<Button
|
||||||
<Button
|
isLoading={isLoading}
|
||||||
isLoading={isLoading}
|
// form="hook-form-update-volume"
|
||||||
form="hook-form-update-volume"
|
type="submit"
|
||||||
type="submit"
|
>
|
||||||
>
|
Update
|
||||||
Update
|
</Button>
|
||||||
</Button>
|
|
||||||
</DialogClose>
|
|
||||||
</DialogFooter>
|
</DialogFooter>
|
||||||
</form>
|
</form>
|
||||||
</Form>
|
</Form>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "dokploy",
|
"name": "dokploy",
|
||||||
"version": "v0.10.5",
|
"version": "v0.10.8",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
@@ -1,19 +1,12 @@
|
|||||||
version: '3.3'
|
version: "3"
|
||||||
services:
|
|
||||||
stirling-pdf:
|
|
||||||
image: frooodle/s-pdf:0.30.1
|
|
||||||
ports:
|
|
||||||
- '8080'
|
|
||||||
volumes:
|
|
||||||
- training-data:/usr/share/tessdata #Required for extra OCR languages
|
|
||||||
- extra-configs:/configs
|
|
||||||
# - /location/of/customFiles:/customFiles/
|
|
||||||
# - /location/of/logs:/logs/
|
|
||||||
environment:
|
|
||||||
- DOCKER_ENABLE_SECURITY=false
|
|
||||||
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
|
|
||||||
- LANGS=en_GB
|
|
||||||
|
|
||||||
volumes:
|
services:
|
||||||
training-data: {}
|
soketi:
|
||||||
extra-configs: {}
|
image: quay.io/soketi/soketi:1.4-16-debian
|
||||||
|
container_name: soketi
|
||||||
|
environment:
|
||||||
|
SOKETI_DEBUG: "1"
|
||||||
|
SOKETI_HOST: "0.0.0.0"
|
||||||
|
SOKETI_PORT: "6001"
|
||||||
|
SOKETI_METRICS_SERVER_PORT: "9601"
|
||||||
|
restart: unless-stopped
|
||||||
|
|||||||
@@ -49,7 +49,10 @@ export const createDeployment = async (
|
|||||||
const application = await findApplicationById(deployment.applicationId);
|
const application = await findApplicationById(deployment.applicationId);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// await removeLastTenDeployments(deployment.applicationId);
|
await removeLastTenDeployments(
|
||||||
|
deployment.applicationId,
|
||||||
|
application.serverId,
|
||||||
|
);
|
||||||
const { LOGS_PATH } = paths(!!application.serverId);
|
const { LOGS_PATH } = paths(!!application.serverId);
|
||||||
const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
|
const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
|
||||||
const fileName = `${application.appName}-${formattedDateTime}.log`;
|
const fileName = `${application.appName}-${formattedDateTime}.log`;
|
||||||
@@ -106,7 +109,10 @@ export const createDeploymentCompose = async (
|
|||||||
) => {
|
) => {
|
||||||
const compose = await findComposeById(deployment.composeId);
|
const compose = await findComposeById(deployment.composeId);
|
||||||
try {
|
try {
|
||||||
// await removeLastTenComposeDeployments(deployment.composeId);
|
await removeLastTenComposeDeployments(
|
||||||
|
deployment.composeId,
|
||||||
|
compose.serverId,
|
||||||
|
);
|
||||||
const { LOGS_PATH } = paths(!!compose.serverId);
|
const { LOGS_PATH } = paths(!!compose.serverId);
|
||||||
const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
|
const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
|
||||||
const fileName = `${compose.appName}-${formattedDateTime}.log`;
|
const fileName = `${compose.appName}-${formattedDateTime}.log`;
|
||||||
@@ -181,36 +187,72 @@ export const removeDeploymentsByApplicationId = async (
|
|||||||
.returning();
|
.returning();
|
||||||
};
|
};
|
||||||
|
|
||||||
const removeLastTenDeployments = async (applicationId: string) => {
|
const removeLastTenDeployments = async (
|
||||||
|
applicationId: string,
|
||||||
|
serverId: string | null,
|
||||||
|
) => {
|
||||||
const deploymentList = await db.query.deployments.findMany({
|
const deploymentList = await db.query.deployments.findMany({
|
||||||
where: eq(deployments.applicationId, applicationId),
|
where: eq(deployments.applicationId, applicationId),
|
||||||
orderBy: desc(deployments.createdAt),
|
orderBy: desc(deployments.createdAt),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (deploymentList.length > 10) {
|
if (deploymentList.length > 10) {
|
||||||
const deploymentsToDelete = deploymentList.slice(10);
|
const deploymentsToDelete = deploymentList.slice(10);
|
||||||
for (const oldDeployment of deploymentsToDelete) {
|
if (serverId) {
|
||||||
const logPath = path.join(oldDeployment.logPath);
|
let command = "";
|
||||||
if (existsSync(logPath)) {
|
for (const oldDeployment of deploymentsToDelete) {
|
||||||
await fsPromises.unlink(logPath);
|
const logPath = path.join(oldDeployment.logPath);
|
||||||
|
|
||||||
|
command += `
|
||||||
|
rm -rf ${logPath};
|
||||||
|
`;
|
||||||
|
await removeDeployment(oldDeployment.deploymentId);
|
||||||
|
}
|
||||||
|
|
||||||
|
await execAsyncRemote(serverId, command);
|
||||||
|
} else {
|
||||||
|
for (const oldDeployment of deploymentsToDelete) {
|
||||||
|
const logPath = path.join(oldDeployment.logPath);
|
||||||
|
if (existsSync(logPath)) {
|
||||||
|
await fsPromises.unlink(logPath);
|
||||||
|
}
|
||||||
|
await removeDeployment(oldDeployment.deploymentId);
|
||||||
}
|
}
|
||||||
await removeDeployment(oldDeployment.deploymentId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const removeLastTenComposeDeployments = async (composeId: string) => {
|
const removeLastTenComposeDeployments = async (
|
||||||
|
composeId: string,
|
||||||
|
serverId: string | null,
|
||||||
|
) => {
|
||||||
const deploymentList = await db.query.deployments.findMany({
|
const deploymentList = await db.query.deployments.findMany({
|
||||||
where: eq(deployments.composeId, composeId),
|
where: eq(deployments.composeId, composeId),
|
||||||
orderBy: desc(deployments.createdAt),
|
orderBy: desc(deployments.createdAt),
|
||||||
});
|
});
|
||||||
if (deploymentList.length > 10) {
|
if (deploymentList.length > 10) {
|
||||||
const deploymentsToDelete = deploymentList.slice(10);
|
if (serverId) {
|
||||||
for (const oldDeployment of deploymentsToDelete) {
|
let command = "";
|
||||||
const logPath = path.join(oldDeployment.logPath);
|
const deploymentsToDelete = deploymentList.slice(10);
|
||||||
if (existsSync(logPath)) {
|
for (const oldDeployment of deploymentsToDelete) {
|
||||||
await fsPromises.unlink(logPath);
|
const logPath = path.join(oldDeployment.logPath);
|
||||||
|
|
||||||
|
command += `
|
||||||
|
rm -rf ${logPath};
|
||||||
|
`;
|
||||||
|
await removeDeployment(oldDeployment.deploymentId);
|
||||||
|
}
|
||||||
|
|
||||||
|
await execAsyncRemote(serverId, command);
|
||||||
|
} else {
|
||||||
|
const deploymentsToDelete = deploymentList.slice(10);
|
||||||
|
for (const oldDeployment of deploymentsToDelete) {
|
||||||
|
const logPath = path.join(oldDeployment.logPath);
|
||||||
|
if (existsSync(logPath)) {
|
||||||
|
await fsPromises.unlink(logPath);
|
||||||
|
}
|
||||||
|
await removeDeployment(oldDeployment.deploymentId);
|
||||||
}
|
}
|
||||||
await removeDeployment(oldDeployment.deploymentId);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -327,7 +369,6 @@ export const createServerDeployment = async (
|
|||||||
}
|
}
|
||||||
return deploymentCreate[0];
|
return deploymentCreate[0];
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
|
||||||
throw new TRPCError({
|
throw new TRPCError({
|
||||||
code: "BAD_REQUEST",
|
code: "BAD_REQUEST",
|
||||||
message: "Error to create the deployment",
|
message: "Error to create the deployment",
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export const generatePassword = (quantity = 16): string => {
|
|||||||
Math.floor(Math.random() * characters.length),
|
Math.floor(Math.random() * characters.length),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return password;
|
return password.toLowerCase();
|
||||||
};
|
};
|
||||||
|
|
||||||
export const generateBase64 = (bytes = 32): string => {
|
export const generateBase64 = (bytes = 32): string => {
|
||||||
|
|||||||
Reference in New Issue
Block a user