mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
* refactor: add sidebar * chore: add deps * refactor: update sidebar * refactor: another layout * refactor: update variant * refactor: change layout * refactor: change variant * refactor: enhance sidebar navigation with active state management * feat: add project button to dashboard * Merge branch 'canary' into feat/add-sidebar * refactor: add loader * refactor: update destinations and refactor * refactor: ui refactor certificates * refactor: delete unused files * refactor: remove unused files and duplicate registry * refactor: update style registry * refactor: add new design registry * refactor: enhance git providers * refactor: remove duplicate files * refactor: update * refactor: update users * refactor: delete unused files * refactor: update profile * refactor: apply changes * refactor: update UI * refactor: enhance Docker monitoring UI layout * refactor: add theme toggle and language selection to user navigation (#1083) * refactor: remove unused files * feat: add filter to services * refactor: add active items * refactor: remove tab prop * refactor: remove unused files * refactor: remove duplicated files * refactor: remove unused files * refactor: remove duplicate files * refactor: remove unused files * refactor: delete unused files * refactor: remove unsued files * refactor: delete unused files * refactor: lint * refactor: remove unused secuirty * refactor: delete unused files * refactor: delete unused files * remove imports * refactor: add update button * refactor: delete unused files * refactor: remove unused code * refactor: remove unused files * refactor: update login page * refactor: update login UI * refactor: update ui reset password * refactor: add justify end * feat: add suscriptions * feat: add sheet * feat: add logs for postgres * feat: add logs for all databases * feat: add server logs with drawer logs * refactor: remove unused files * refactor: add refetch when closing * refactor: fix linter * chore: bump node-20 * revert * refactor: fix conflicts * refactor: update * refactor: add missing deps * refactor: delete duplicate files * refactor: delete unsued files * chore: lint * refactor: remove unsued file * refactor: add refetch * refactor: remove duplicated files * refactor: delete unused files * refactor: update setup onboarding * refactor: add breadcrumb * refactor: apply updates * refactor: add faker * refactor: use 0 in validation * refactor: show correct state * refactor: update --------- Co-authored-by: vishalkadam47 <vishal@jeevops.com> Co-authored-by: Vishal kadam <107353260+vishalkadam47@users.noreply.github.com>
144 lines
3.5 KiB
TypeScript
144 lines
3.5 KiB
TypeScript
import { relations } from "drizzle-orm";
|
|
import { boolean, integer, pgTable, text } from "drizzle-orm/pg-core";
|
|
import { createInsertSchema } from "drizzle-zod";
|
|
import { nanoid } from "nanoid";
|
|
import { z } from "zod";
|
|
import { backups } from "./backups";
|
|
import { mounts } from "./mount";
|
|
import { projects } from "./project";
|
|
import { server } from "./server";
|
|
import { applicationStatus } from "./shared";
|
|
import { generateAppName } from "./utils";
|
|
|
|
export const mongo = pgTable("mongo", {
|
|
mongoId: text("mongoId")
|
|
.notNull()
|
|
.primaryKey()
|
|
.$defaultFn(() => nanoid()),
|
|
name: text("name").notNull(),
|
|
appName: text("appName")
|
|
.notNull()
|
|
.$defaultFn(() => generateAppName("mongo"))
|
|
.unique(),
|
|
description: text("description"),
|
|
databaseUser: text("databaseUser").notNull(),
|
|
databasePassword: text("databasePassword").notNull(),
|
|
dockerImage: text("dockerImage").notNull(),
|
|
command: text("command"),
|
|
env: text("env"),
|
|
memoryReservation: text("memoryReservation"),
|
|
memoryLimit: text("memoryLimit"),
|
|
cpuReservation: text("cpuReservation"),
|
|
cpuLimit: text("cpuLimit"),
|
|
externalPort: integer("externalPort"),
|
|
applicationStatus: applicationStatus("applicationStatus")
|
|
.notNull()
|
|
.default("idle"),
|
|
createdAt: text("createdAt")
|
|
.notNull()
|
|
.$defaultFn(() => new Date().toISOString()),
|
|
projectId: text("projectId")
|
|
.notNull()
|
|
.references(() => projects.projectId, { onDelete: "cascade" }),
|
|
serverId: text("serverId").references(() => server.serverId, {
|
|
onDelete: "cascade",
|
|
}),
|
|
replicaSets: boolean("replicaSets").default(false),
|
|
});
|
|
|
|
export const mongoRelations = relations(mongo, ({ one, many }) => ({
|
|
project: one(projects, {
|
|
fields: [mongo.projectId],
|
|
references: [projects.projectId],
|
|
}),
|
|
backups: many(backups),
|
|
mounts: many(mounts),
|
|
server: one(server, {
|
|
fields: [mongo.serverId],
|
|
references: [server.serverId],
|
|
}),
|
|
}));
|
|
|
|
const createSchema = createInsertSchema(mongo, {
|
|
appName: z.string().min(1),
|
|
createdAt: z.string(),
|
|
mongoId: z.string(),
|
|
name: z.string().min(1),
|
|
databasePassword: z.string(),
|
|
databaseUser: z.string().min(1),
|
|
dockerImage: z.string().default("mongo:15"),
|
|
command: z.string().optional(),
|
|
env: z.string().optional(),
|
|
memoryReservation: z.string().optional(),
|
|
memoryLimit: z.string().optional(),
|
|
cpuReservation: z.string().optional(),
|
|
cpuLimit: z.string().optional(),
|
|
projectId: z.string(),
|
|
applicationStatus: z.enum(["idle", "running", "done", "error"]),
|
|
externalPort: z.number(),
|
|
description: z.string().optional(),
|
|
serverId: z.string().optional(),
|
|
replicaSets: z.boolean().default(false),
|
|
});
|
|
|
|
export const apiCreateMongo = createSchema
|
|
.pick({
|
|
name: true,
|
|
appName: true,
|
|
dockerImage: true,
|
|
projectId: true,
|
|
description: true,
|
|
databaseUser: true,
|
|
databasePassword: true,
|
|
serverId: true,
|
|
replicaSets: true,
|
|
})
|
|
.required();
|
|
|
|
export const apiFindOneMongo = createSchema
|
|
.pick({
|
|
mongoId: true,
|
|
})
|
|
.required();
|
|
|
|
export const apiChangeMongoStatus = createSchema
|
|
.pick({
|
|
mongoId: true,
|
|
applicationStatus: true,
|
|
})
|
|
.required();
|
|
|
|
export const apiSaveEnvironmentVariablesMongo = createSchema
|
|
.pick({
|
|
mongoId: true,
|
|
env: true,
|
|
})
|
|
.required();
|
|
|
|
export const apiSaveExternalPortMongo = createSchema
|
|
.pick({
|
|
mongoId: true,
|
|
externalPort: true,
|
|
})
|
|
.required();
|
|
|
|
export const apiDeployMongo = createSchema
|
|
.pick({
|
|
mongoId: true,
|
|
})
|
|
.required();
|
|
|
|
export const apiUpdateMongo = createSchema
|
|
.partial()
|
|
.extend({
|
|
mongoId: z.string().min(1),
|
|
})
|
|
.omit({ serverId: true });
|
|
|
|
export const apiResetMongo = createSchema
|
|
.pick({
|
|
mongoId: true,
|
|
appName: true,
|
|
})
|
|
.required();
|