fix: remote webhooks
This commit is contained in:
parent
1b02f9bd5d
commit
bf33d6c34e
@ -1,6 +1,5 @@
|
|||||||
import { FastifyRequest } from "fastify";
|
import { FastifyRequest } from "fastify";
|
||||||
import { errorHandler, getDomain, isDev, prisma, executeDockerCmd, fixType } from "../../../lib/common";
|
import { errorHandler, getDomain, isDev, prisma, executeDockerCmd, fixType } from "../../../lib/common";
|
||||||
import { TraefikOtherConfiguration } from "./types";
|
|
||||||
import { OnlyId } from "../../../types";
|
import { OnlyId } from "../../../types";
|
||||||
|
|
||||||
function generateServices(id, containerId, port) {
|
function generateServices(id, containerId, port) {
|
||||||
@ -292,15 +291,40 @@ export async function proxyConfiguration(request: FastifyRequest<OnlyId>, remote
|
|||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!remote) {
|
||||||
|
const { fqdn, dualCerts } = await prisma.setting.findFirst();
|
||||||
|
if (!fqdn) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const domain = getDomain(fqdn);
|
||||||
|
const nakedDomain = domain.replace(/^www\./, '');
|
||||||
|
const isHttps = fqdn.startsWith('https://');
|
||||||
|
const isWWW = fqdn.includes('www.');
|
||||||
|
const id = isDev ? 'host.docker.internal' : 'coolify'
|
||||||
|
const container = isDev ? 'host.docker.internal' : 'coolify'
|
||||||
|
const port = 3000
|
||||||
|
const pathPrefix = '/'
|
||||||
|
const isCustomSSL = false
|
||||||
|
|
||||||
|
traefik.http.routers = { ...traefik.http.routers, ...generateRouters(`${id}-${port || 'default'}`, domain, nakedDomain, pathPrefix, isHttps, isWWW, dualCerts, isCustomSSL) }
|
||||||
|
traefik.http.services = { ...traefik.http.services, ...generateServices(id, container, port) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
} finally {
|
} finally {
|
||||||
|
if (Object.keys(traefik.http.routers).length === 0) {
|
||||||
|
traefik.http.routers = null;
|
||||||
|
}
|
||||||
|
if (Object.keys(traefik.http.services).length === 0) {
|
||||||
|
traefik.http.services = null;
|
||||||
|
}
|
||||||
return traefik;
|
return traefik;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function traefikOtherConfiguration(request: FastifyRequest<TraefikOtherConfiguration>) {
|
export async function otherProxyConfiguration(request: FastifyRequest<TraefikOtherConfiguration>) {
|
||||||
try {
|
try {
|
||||||
const { id } = request.query
|
const { id } = request.query
|
||||||
if (id) {
|
if (id) {
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
import { FastifyPluginAsync } from 'fastify';
|
import { FastifyPluginAsync } from 'fastify';
|
||||||
import { OnlyId } from '../../../types';
|
import { OnlyId } from '../../../types';
|
||||||
import { proxyConfiguration, traefikConfiguration, traefikOtherConfiguration } from './handlers';
|
import { proxyConfiguration, otherProxyConfiguration } from './handlers';
|
||||||
import { TraefikOtherConfiguration } from './types';
|
import { OtherProxyConfiguration } from './types';
|
||||||
|
|
||||||
const root: FastifyPluginAsync = async (fastify): Promise<void> => {
|
const root: FastifyPluginAsync = async (fastify): Promise<void> => {
|
||||||
fastify.get<OnlyId>('/main.json', async (request, reply) => proxyConfiguration(request, false));
|
fastify.get<OnlyId>('/main.json', async (request, reply) => proxyConfiguration(request, false));
|
||||||
fastify.get<OnlyId>('/test', async (request, reply) => proxyConfiguration(request, false));
|
fastify.get<OnlyId>('/remote/:id', async (request) => proxyConfiguration(request, true));
|
||||||
fastify.get<OnlyId>('/remote/:id', async (request) => traefikConfiguration(request, true));
|
fastify.get<OtherProxyConfiguration>('/other.json', async (request, reply) => otherProxyConfiguration(request));
|
||||||
fastify.get<TraefikOtherConfiguration>('/other.json', async (request, reply) => traefikOtherConfiguration(request));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default root;
|
export default root;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
export interface TraefikOtherConfiguration {
|
export interface OtherProxyConfiguration {
|
||||||
Querystring: {
|
Querystring: {
|
||||||
id: string,
|
id: string,
|
||||||
privatePort: number,
|
privatePort: number,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user