mirror of
https://github.com/biersoeckli/QuickStack.git
synced 2026-02-11 05:59:23 -06:00
fix: created TraefikMeDomainStandaloneService for job scheduling of updateTraefikMeCertificate
This commit is contained in:
@@ -15,7 +15,7 @@ import { KubeSizeConverter } from "@/shared/utils/kubernetes-size-converter.util
|
||||
import buildService from "@/server/services/build.service";
|
||||
import { PathUtils } from "@/server/utils/path.utils";
|
||||
import { FsUtils } from "@/server/utils/fs.utils";
|
||||
import traefikMeDomainService from "@/server/services/standalone-services/traefik-me-domain.service";
|
||||
import traefikMeDomainStandaloneService from "@/server/services/standalone-services/traefik-me-domain-standalone.service";
|
||||
|
||||
export const updateIngressSettings = async (prevState: any, inputData: QsIngressSettingsModel) =>
|
||||
saveFormAction(inputData, qsIngressSettingsZodModel, async (validatedData) => {
|
||||
@@ -115,7 +115,7 @@ export const updateRegistry = async () =>
|
||||
export const updateTraefikMeCertificates = async () =>
|
||||
simpleAction(async () => {
|
||||
await getAuthUserSession();
|
||||
await traefikMeDomainService.updateTraefikMeCertificate();
|
||||
await traefikMeDomainStandaloneService.updateTraefikMeCertificate();
|
||||
return new SuccessActionResult(undefined, 'Certificates will be updated, this might take a few seconds.');
|
||||
});
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import dataAccess from './server/adapter/db.client'
|
||||
import { FancyConsoleUtils } from './shared/utils/fancy-console.utils'
|
||||
import { Constants } from './shared/utils/constants'
|
||||
import backupService from './server/services/standalone-services/backup.service'
|
||||
import traefikMeDomainService from './server/services/standalone-services/traefik-me-domain.service'
|
||||
import traefikMeDomainStandaloneService from './server/services/standalone-services/traefik-me-domain-standalone.service'
|
||||
|
||||
// Source: https://nextjs.org/docs/app/building-your-application/configuring/custom-server
|
||||
|
||||
@@ -53,7 +53,7 @@ async function initializeNextJs() {
|
||||
}
|
||||
|
||||
await backupService.registerAllBackups();
|
||||
traefikMeDomainService.configureSchedulingForTraefikMeCertificateUpdate();
|
||||
traefikMeDomainStandaloneService.configureSchedulingForTraefikMeCertificateUpdate();
|
||||
|
||||
const app = next({ dev });
|
||||
const handle = app.getRequestHandler();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { V1Deployment, V1Ingress } from "@kubernetes/client-node";
|
||||
import dataAccess from "../adapter/db.client";
|
||||
import traefikMeDomainService from "./standalone-services/traefik-me-domain.service";
|
||||
import traefikMeDomainStandaloneService from "./standalone-services/traefik-me-domain-standalone.service";
|
||||
import { Constants } from "@/shared/utils/constants";
|
||||
import { KubeObjectNameUtils } from "../utils/kube-object-name.utils";
|
||||
import deploymentService from "./deployment.service";
|
||||
@@ -10,6 +10,7 @@ import svcService from "./svc.service";
|
||||
import { randomBytes } from "crypto";
|
||||
import podService from "./pod.service";
|
||||
import bcrypt from "bcrypt";
|
||||
import traefikMeDomainService from "./traefik-me-domain.service";
|
||||
|
||||
class FileBrowserService {
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import { KubeObjectNameUtils } from "../utils/kube-object-name.utils";
|
||||
import deploymentService from "./deployment.service";
|
||||
import namespaceService from "./namespace.service";
|
||||
import buildService from "./build.service";
|
||||
import traefikMeDomainService from "./standalone-services/traefik-me-domain.service";
|
||||
import traefikMeDomainStandaloneService from "./standalone-services/traefik-me-domain-standalone.service";
|
||||
|
||||
class ProjectService {
|
||||
|
||||
@@ -70,7 +70,7 @@ class ProjectService {
|
||||
} finally {
|
||||
revalidateTag(Tags.projects());
|
||||
}
|
||||
await traefikMeDomainService.updateTraefikMeCertificate();
|
||||
await traefikMeDomainStandaloneService.updateTraefikMeCertificate();
|
||||
return savedItem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import { ServiceException } from "../../../shared/model/service.exception.model";
|
||||
import paramService, { ParamService } from "../param.service";
|
||||
import traefikMeAdapter from "../../adapter/traefik-me.adapter";
|
||||
import { V1Secret } from "@kubernetes/client-node";
|
||||
import secretService from "../secret.service";
|
||||
@@ -7,19 +5,7 @@ import { Constants } from "../../../shared/utils/constants";
|
||||
import dataAccess from "../../adapter/db.client";
|
||||
import scheduleService from "./schedule.service";
|
||||
|
||||
class TraefikMeDomainService {
|
||||
|
||||
async getDomainForApp(appId: string, prefix?: string) {
|
||||
const publicIpv4 = await paramService.getString(ParamService.PUBLIC_IPV4_ADDRESS);
|
||||
if (!publicIpv4) {
|
||||
throw new ServiceException('Please set the main public IPv4 address in the QuickStack settings first.');
|
||||
}
|
||||
const traefikFriendlyIpv4 = publicIpv4.split('.').join('-');
|
||||
if (prefix) {
|
||||
return `${prefix}-${appId}-${traefikFriendlyIpv4}.traefik.me`;
|
||||
}
|
||||
return `${appId}-${traefikFriendlyIpv4}.traefik.me`;
|
||||
}
|
||||
class TraefikMeDomainStandaloneService {
|
||||
|
||||
async updateTraefikMeCertificate() {
|
||||
const fullChainCert = await traefikMeAdapter.getFullChainCertificate();
|
||||
@@ -50,5 +36,5 @@ class TraefikMeDomainService {
|
||||
}
|
||||
}
|
||||
|
||||
const traefikMeDomainService = new TraefikMeDomainService();
|
||||
export default traefikMeDomainService;
|
||||
const traefikMeDomainStandaloneService = new TraefikMeDomainStandaloneService();
|
||||
export default traefikMeDomainStandaloneService;
|
||||
21
src/server/services/traefik-me-domain.service.ts
Normal file
21
src/server/services/traefik-me-domain.service.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { ServiceException } from "@/shared/model/service.exception.model";
|
||||
import paramService, { ParamService } from "./param.service";
|
||||
|
||||
|
||||
class TraefikMeDomainService {
|
||||
|
||||
async getDomainForApp(appId: string, prefix?: string) {
|
||||
const publicIpv4 = await paramService.getString(ParamService.PUBLIC_IPV4_ADDRESS);
|
||||
if (!publicIpv4) {
|
||||
throw new ServiceException('Please set the main public IPv4 address in the QuickStack settings first.');
|
||||
}
|
||||
const traefikFriendlyIpv4 = publicIpv4.split('.').join('-');
|
||||
if (prefix) {
|
||||
return `${prefix}-${appId}-${traefikFriendlyIpv4}.traefik.me`;
|
||||
}
|
||||
return `${appId}-${traefikFriendlyIpv4}.traefik.me`;
|
||||
}
|
||||
}
|
||||
|
||||
const traefikMeDomainService = new TraefikMeDomainService();
|
||||
export default traefikMeDomainService;
|
||||
Reference in New Issue
Block a user