feat(traefik): add toggle for disable the traefik dashboard

This commit is contained in:
Mauricio Siu
2024-07-27 13:09:20 -06:00
parent 24cb47bcb1
commit f0d0e4c1e2
4 changed files with 68 additions and 9 deletions

View File

@@ -1,12 +1,14 @@
import { MAIN_TRAEFIK_PATH, MONITORING_PATH, docker } from "@/server/constants";
import {
apiAssignDomain,
apiEnableDashboard,
apiModifyTraefikConfig,
apiReadTraefikConfig,
apiSaveSSHKey,
apiTraefikConfig,
apiUpdateDockerCleanup,
} from "@/server/db/schema";
import { initializeTraefik } from "@/server/setup/traefik-setup";
import {
cleanStoppedContainers,
cleanUpDockerBuilder,
@@ -67,6 +69,13 @@ export const settingsRouter = createTRPCRouter({
return true;
}),
toggleDashboard: adminProcedure
.input(apiEnableDashboard)
.mutation(async ({ input }) => {
await initializeTraefik(input.enableDashboard);
return true;
}),
cleanUnusedImages: adminProcedure.mutation(async () => {
await cleanUpUnusedImages();
return true;

View File

@@ -93,3 +93,7 @@ export const apiModifyTraefikConfig = z.object({
export const apiReadTraefikConfig = z.object({
path: z.string().min(1),
});
export const apiEnableDashboard = z.object({
enableDashboard: z.boolean().optional(),
});

View File

@@ -11,7 +11,7 @@ const TRAEFIK_SSL_PORT =
Number.parseInt(process.env.TRAEFIK_SSL_PORT ?? "", 10) || 443;
const TRAEFIK_PORT = Number.parseInt(process.env.TRAEFIK_PORT ?? "", 10) || 80;
export const initializeTraefik = async () => {
export const initializeTraefik = async (enableDashboard = false) => {
const imageName = "traefik:v2.5";
const containerName = "dokploy-traefik";
const settings: CreateServiceOptions = {
@@ -59,11 +59,15 @@ export const initializeTraefik = async () => {
PublishedPort: TRAEFIK_PORT,
PublishMode: "host",
},
{
TargetPort: 8080,
PublishedPort: 8080,
PublishMode: "host",
},
...(enableDashboard
? [
{
TargetPort: 8080,
PublishedPort: 8080,
PublishMode: "host" as const,
},
]
: []),
],
},
};