Compare commits

..

8 Commits

Author SHA1 Message Date
Mauricio Siu
1b56a6b400 refactor(dokploy): revert template content 2024-11-01 10:54:45 -06:00
Mauricio Siu
996d449f0f chore(version): bump version 2024-11-01 09:53:41 -06:00
Mauricio Siu
3b197f3624 fix(dokploy): add missing mount path in update volume 2024-11-01 09:53:21 -06:00
Mauricio Siu
95e53169b1 chore(version): bump version 2024-10-30 23:07:05 -06:00
Mauricio Siu
52a19a325e chore(version): bump version 2024-10-30 22:52:31 -06:00
Mauricio Siu
9d891e87e0 Merge pull request #630 from Dokploy/fix/delete-old-deployments
fix(dokploy): remove old deployments
2024-10-30 22:52:08 -06:00
Mauricio Siu
41b274fbb3 refactor(dokploy): set condition to 10 2024-10-30 22:50:12 -06:00
Mauricio Siu
6417e13336 fix(dokploy): remove old deployments 2024-10-30 22:44:01 -06:00
5 changed files with 78 additions and 46 deletions

View File

@@ -119,7 +119,7 @@ export const UpdateVolume = ({
} else if (typeForm === "file") {
form.reset({
content: data.content || "",
mountPath: data.mountPath,
mountPath: "/",
filePath: data.filePath || "",
type: "file",
});
@@ -296,15 +296,13 @@ export const UpdateVolume = ({
)}
</div>
<DialogFooter>
<DialogClose>
<Button
isLoading={isLoading}
form="hook-form-update-volume"
type="submit"
>
Update
</Button>
</DialogClose>
<Button
isLoading={isLoading}
// form="hook-form-update-volume"
type="submit"
>
Update
</Button>
</DialogFooter>
</form>
</Form>

View File

@@ -1,6 +1,6 @@
{
"name": "dokploy",
"version": "v0.10.5",
"version": "v0.10.8",
"private": true,
"license": "Apache-2.0",
"type": "module",

View File

@@ -1,19 +1,12 @@
version: '3.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
version: "3"
volumes:
training-data: {}
extra-configs: {}
services:
soketi:
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

View File

@@ -49,7 +49,10 @@ export const createDeployment = async (
const application = await findApplicationById(deployment.applicationId);
try {
// await removeLastTenDeployments(deployment.applicationId);
await removeLastTenDeployments(
deployment.applicationId,
application.serverId,
);
const { LOGS_PATH } = paths(!!application.serverId);
const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
const fileName = `${application.appName}-${formattedDateTime}.log`;
@@ -106,7 +109,10 @@ export const createDeploymentCompose = async (
) => {
const compose = await findComposeById(deployment.composeId);
try {
// await removeLastTenComposeDeployments(deployment.composeId);
await removeLastTenComposeDeployments(
deployment.composeId,
compose.serverId,
);
const { LOGS_PATH } = paths(!!compose.serverId);
const formattedDateTime = format(new Date(), "yyyy-MM-dd:HH:mm:ss");
const fileName = `${compose.appName}-${formattedDateTime}.log`;
@@ -181,36 +187,72 @@ export const removeDeploymentsByApplicationId = async (
.returning();
};
const removeLastTenDeployments = async (applicationId: string) => {
const removeLastTenDeployments = async (
applicationId: string,
serverId: string | null,
) => {
const deploymentList = await db.query.deployments.findMany({
where: eq(deployments.applicationId, applicationId),
orderBy: desc(deployments.createdAt),
});
if (deploymentList.length > 10) {
const deploymentsToDelete = deploymentList.slice(10);
for (const oldDeployment of deploymentsToDelete) {
const logPath = path.join(oldDeployment.logPath);
if (existsSync(logPath)) {
await fsPromises.unlink(logPath);
if (serverId) {
let command = "";
for (const oldDeployment of deploymentsToDelete) {
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({
where: eq(deployments.composeId, composeId),
orderBy: desc(deployments.createdAt),
});
if (deploymentList.length > 10) {
const deploymentsToDelete = deploymentList.slice(10);
for (const oldDeployment of deploymentsToDelete) {
const logPath = path.join(oldDeployment.logPath);
if (existsSync(logPath)) {
await fsPromises.unlink(logPath);
if (serverId) {
let command = "";
const deploymentsToDelete = deploymentList.slice(10);
for (const oldDeployment of deploymentsToDelete) {
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];
} catch (error) {
console.log(error);
throw new TRPCError({
code: "BAD_REQUEST",
message: "Error to create the deployment",

View File

@@ -43,7 +43,7 @@ export const generatePassword = (quantity = 16): string => {
Math.floor(Math.random() * characters.length),
);
}
return password;
return password.toLowerCase();
};
export const generateBase64 = (bytes = 32): string => {