diff --git a/server/db/schema.ts b/server/db/schema.ts index 01bb2fdf..68426caa 100644 --- a/server/db/schema.ts +++ b/server/db/schema.ts @@ -1,5 +1,5 @@ import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core"; -import { InferSelectModel} from "drizzle-orm"; +import { InferSelectModel } from "drizzle-orm"; export const orgs = sqliteTable("orgs", { orgId: text("orgId").primaryKey(), @@ -34,6 +34,7 @@ export const resources = sqliteTable("resources", { }), name: text("name").notNull(), subdomain: text("subdomain"), + ssl: integer("ssl", { mode: "boolean" }).notNull().default(false), }); export const targets = sqliteTable("targets", { @@ -46,7 +47,6 @@ export const targets = sqliteTable("targets", { port: integer("port").notNull(), protocol: text("protocol"), enabled: integer("enabled", { mode: "boolean" }).notNull().default(true), - ssl: integer("ssl", { mode: "boolean" }).notNull().default(false), }); export const exitNodes = sqliteTable("exitNodes", { diff --git a/server/routers/traefik/getTraefikConfig.ts b/server/routers/traefik/getTraefikConfig.ts index 221af24f..3ef0253a 100644 --- a/server/routers/traefik/getTraefikConfig.ts +++ b/server/routers/traefik/getTraefikConfig.ts @@ -82,7 +82,7 @@ export async function traefikConfigProvider( ? { domains: [ { - main: wildCard + main: wildCard, }, ], } @@ -91,17 +91,17 @@ export async function traefikConfigProvider( http.routers![routerName] = { entryPoints: [ - target.ssl + resource.ssl ? config.traefik.https_entrypoint : config.traefik.http_entrypoint, ], - middlewares: target.ssl ? [badgerMiddlewareName] : [], + middlewares: resource.ssl ? [badgerMiddlewareName] : [], service: serviceName, rule: `Host(\`${resource.fullDomain}\`)`, - ...(target.ssl ? { tls } : {}), + ...(resource.ssl ? { tls } : {}), }; - if (target.ssl) { + if (resource.ssl) { // this is a redirect router; all it does is redirect to the https version if tls is enabled http.routers![routerName + "-redirect"] = { entryPoints: [config.traefik.http_entrypoint],