fix: Improved tcp proxy monitoring for databases/ftp

This commit is contained in:
Andras Bacsai
2022-04-14 00:04:46 +02:00
parent ce2757f514
commit 2bd3802a6f
8 changed files with 86 additions and 19 deletions

View File

@@ -0,0 +1,34 @@
import { ErrorHandler, generateDatabaseConfiguration, prisma } from '$lib/database';
import { checkContainer, startTcpProxy } from '$lib/haproxy';
export default async function (): Promise<void | {
status: number;
body: { message: string; error: string };
}> {
try {
const databasesWithPublicPort = await prisma.database.findMany({
where: { publicPort: { not: null } },
include: { settings: true, destinationDocker: true }
});
for (const database of databasesWithPublicPort) {
const { destinationDockerId, destinationDocker, publicPort, id } = database;
if (destinationDockerId) {
const { privatePort } = generateDatabaseConfiguration(database);
await startTcpProxy(destinationDocker, id, publicPort, privatePort);
}
}
const wordpressWithFtp = await prisma.wordpress.findMany({
where: { ftpPublicPort: { not: null } },
include: { service: { include: { destinationDocker: true } } }
});
for (const ftp of wordpressWithFtp) {
const { service, ftpPublicPort, id } = ftp;
const { destinationDockerId, destinationDocker } = service;
if (destinationDockerId) {
await startTcpProxy(destinationDocker, `${id}-ftp`, ftpPublicPort, 22);
}
}
} catch (error) {
return ErrorHandler(error.response?.body || error);
}
}