WIP better automatic proxy conf
This commit is contained in:
@@ -1,109 +1,104 @@
|
||||
import * as db from '$lib/database';
|
||||
import { getDomain } from '$lib/common';
|
||||
import {
|
||||
checkContainer,
|
||||
checkHAProxy,
|
||||
checkProxyConfigurations,
|
||||
configureCoolifyProxyOn,
|
||||
configureHAProxy,
|
||||
forceSSLOnApplication,
|
||||
haproxyInstance,
|
||||
setWwwRedirection,
|
||||
startCoolifyProxy,
|
||||
startHttpProxy
|
||||
} from '$lib/haproxy';
|
||||
import { configureHAProxy } from '$lib/haproxy/configuration';
|
||||
|
||||
export default async function () {
|
||||
const haproxy = await haproxyInstance();
|
||||
await checkHAProxy(haproxy);
|
||||
let transactionId;
|
||||
try {
|
||||
await checkProxyConfigurations();
|
||||
return await configureHAProxy();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
console.log(error.response.body || error);
|
||||
}
|
||||
try {
|
||||
const applications = await db.prisma.application.findMany({
|
||||
include: { destinationDocker: true }
|
||||
});
|
||||
// const haproxy = await haproxyInstance();
|
||||
// await checkHAProxy(haproxy);
|
||||
// const transactionId = await getNextTransactionId();
|
||||
// let executeTransaction = {
|
||||
// applications: false,
|
||||
// services: false
|
||||
// }
|
||||
// try {
|
||||
// await checkProxyConfigurations();
|
||||
// } catch (error) {
|
||||
// console.log(error);
|
||||
// }
|
||||
// try {
|
||||
// const applications = await db.prisma.application.findMany({
|
||||
// include: { destinationDocker: true }
|
||||
// });
|
||||
|
||||
for (const application of applications) {
|
||||
const {
|
||||
fqdn,
|
||||
id,
|
||||
port,
|
||||
destinationDocker: { engine }
|
||||
} = application;
|
||||
const containerRunning = await checkContainer(engine, id);
|
||||
transactionId = await configureHAProxy(
|
||||
haproxy,
|
||||
transactionId,
|
||||
fqdn,
|
||||
id,
|
||||
port,
|
||||
containerRunning,
|
||||
engine
|
||||
);
|
||||
}
|
||||
// for (const application of applications) {
|
||||
// const {
|
||||
// fqdn,
|
||||
// id,
|
||||
// port,
|
||||
// destinationDocker: { engine }
|
||||
// } = application;
|
||||
// const containerRunning = await checkContainer(engine, id);
|
||||
// executeTransaction.applications = await configureHAProxy(
|
||||
// haproxy,
|
||||
// transactionId,
|
||||
// fqdn,
|
||||
// id,
|
||||
// port,
|
||||
// containerRunning,
|
||||
// engine
|
||||
// );
|
||||
// }
|
||||
|
||||
const services = await db.prisma.service.findMany({
|
||||
include: {
|
||||
destinationDocker: true,
|
||||
minio: true,
|
||||
plausibleAnalytics: true,
|
||||
vscodeserver: true,
|
||||
wordpress: true
|
||||
}
|
||||
});
|
||||
// const services = await db.prisma.service.findMany({
|
||||
// include: {
|
||||
// destinationDocker: true,
|
||||
// minio: true,
|
||||
// plausibleAnalytics: true,
|
||||
// vscodeserver: true,
|
||||
// wordpress: true
|
||||
// }
|
||||
// });
|
||||
|
||||
for (const service of services) {
|
||||
const {
|
||||
fqdn,
|
||||
id,
|
||||
type,
|
||||
destinationDocker: { engine }
|
||||
} = service;
|
||||
console.log({ fqdn, id, type, engine });
|
||||
const found = db.supportedServiceTypesAndVersions.find((a) => a.name === type);
|
||||
if (found) {
|
||||
console.log(found);
|
||||
const port = found.ports.main;
|
||||
const publicPort = service[type]?.publicPort;
|
||||
const containerRunning = await checkContainer(engine, id);
|
||||
console.log(containerRunning);
|
||||
transactionId = await configureHAProxy(
|
||||
haproxy,
|
||||
transactionId,
|
||||
fqdn,
|
||||
id,
|
||||
port,
|
||||
containerRunning,
|
||||
engine
|
||||
);
|
||||
if (publicPort) {
|
||||
const containerFound = await checkContainer(
|
||||
service.destinationDocker.engine,
|
||||
`haproxy-for-${publicPort}`
|
||||
);
|
||||
if (!containerFound) {
|
||||
await startHttpProxy(service.destinationDocker, id, publicPort, 9000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(transactionId);
|
||||
if (transactionId) await haproxy.put(`v2/services/haproxy/transactions/${transactionId}`);
|
||||
// Check Coolify FQDN and configure proxy if needed
|
||||
// const { fqdn } = await db.listSettings();
|
||||
// if (fqdn) {
|
||||
// const domain = getDomain(fqdn);
|
||||
// await startCoolifyProxy('/var/run/docker.sock');
|
||||
// await configureCoolifyProxyOn(fqdn);
|
||||
// await setWwwRedirection(fqdn);
|
||||
// const isHttps = fqdn.startsWith('https://');
|
||||
// if (isHttps) await forceSSLOnApplication(domain);
|
||||
// }
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
// for (const service of services) {
|
||||
// const {
|
||||
// fqdn,
|
||||
// id,
|
||||
// type,
|
||||
// destinationDocker: { engine }
|
||||
// } = service;
|
||||
// const found = db.supportedServiceTypesAndVersions.find((a) => a.name === type);
|
||||
// if (found) {
|
||||
// console.log(found);
|
||||
// const port = found.ports.main;
|
||||
// const publicPort = service[type]?.publicPort;
|
||||
// const containerRunning = await checkContainer(engine, id);
|
||||
// executeTransaction.services = await configureHAProxy(
|
||||
// haproxy,
|
||||
// transactionId,
|
||||
// fqdn,
|
||||
// id,
|
||||
// port,
|
||||
// containerRunning,
|
||||
// engine
|
||||
// );
|
||||
// if (publicPort) {
|
||||
// const containerFound = await checkContainer(
|
||||
// service.destinationDocker.engine,
|
||||
// `haproxy-for-${publicPort}`
|
||||
// );
|
||||
// if (!containerFound) {
|
||||
// await startHttpProxy(service.destinationDocker, id, publicPort, 9000);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (executeTransaction.applications || executeTransaction.services) {
|
||||
// await haproxy.put(`v2/services/haproxy/transactions/${transactionId}`);
|
||||
// }
|
||||
// // Check Coolify FQDN and configure proxy if needed
|
||||
// // const { fqdn } = await db.listSettings();
|
||||
// // if (fqdn) {
|
||||
// // const domain = getDomain(fqdn);
|
||||
// // await startCoolifyProxy('/var/run/docker.sock');
|
||||
// // await configureCoolifyProxyOn(fqdn);
|
||||
// // await setWwwRedirection(fqdn);
|
||||
// // const isHttps = fqdn.startsWith('https://');
|
||||
// // if (isHttps) await forceSSLOnApplication(domain);
|
||||
// // }
|
||||
// } catch (error) {
|
||||
// throw error;
|
||||
// }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user