@@ -412,53 +420,46 @@ export function Pricing() {
const faqs = [
[
{
- question: "How does Dokploy's Open Source plan work?",
- answer:
- "You can host Dokploy UI on your own infrastructure and you will be responsible for the maintenance and updates.",
+ question: "faq.q1",
+ answer: "faq.a1",
},
{
- question: "Do I need to provide my own server for the managed plan?",
- answer:
- "Yes, in the managed plan, you provide your own server eg(Hetzner, Hostinger, AWS, ETC.) VPS, and we manage the Dokploy UI infrastructure for you.",
+ question: "faq.q2",
+ answer: "faq.a2",
},
{
- question: "What happens if I need more than one server?",
- answer:
- "The first server costs $4.50/month, if you buy more than one it will be $3.50/month per server.",
+ question: "faq.q3",
+ answer: "faq.a3",
},
],
[
{
- question: "Is there a limit on the number of deployments?",
- answer:
- "No, there is no limit on the number of deployments in any of the plans.",
+ question: "faq.q4",
+ answer: "faq.a4",
},
{
- question: "What happens if I exceed my purchased server limit?",
- answer:
- "The most recently added servers will be deactivated. You won't be able to create services on inactive servers until they are reactivated.",
+ question: "faq.q5",
+ answer: "faq.a5",
},
{
- question: "Do you offer a refunds?",
- answer:
- "We do not offer refunds. However, you can cancel your subscription at any time. Feel free to try our open-source version for free before making a purchase.",
+ question: "faq.q6",
+ answer: "faq.a6",
},
],
[
{
- question: "What kind of support do you offer?",
- answer:
- "We offer community support for the open source version and priority support for paid plans.",
+ question: "faq.q7",
+ answer: "faq.a7",
},
{
- question: "Is Dokploy open-source?",
- answer:
- "Yes, Dokploy is fully open-source. You can contribute or modify it as needed for your projects.",
+ question: "faq.q8",
+ answer: "faq.a8",
},
],
];
export function Faqs() {
+ const t = useTranslations("Pricing");
return (
- {"Frequently asked questions"}
+ {t("faq.title")}
- If you can’t find what you’re looking for, please send us an email
- to:{" "}
+ {t("faq.description")}:{" "}
support@dokploy.com
@@ -488,10 +488,10 @@ export function Faqs() {
{column.map((faq, faqIndex) => (
- {faq.question}
+ {t(faq.question)}
- {faq.answer}
+ {t(faq.answer)}
))}
diff --git a/apps/website/locales/en.json b/apps/website/locales/en.json
index 7a85913de..1a04f5d52 100644
--- a/apps/website/locales/en.json
+++ b/apps/website/locales/en.json
@@ -4,7 +4,9 @@
"features": "Features",
"faqs": "FAQ",
"docs": "Docs",
+ "pricing": "Pricing",
"support": "Support",
+ "dashboard": "Dashboard",
"discord": "Discord",
"i18nButtonPlaceholder": "Language",
"i18nEn": "English",
@@ -105,5 +107,70 @@
"intro": "https://docs.dokploy.com/get-started/introduction",
"install": "https://docs.dokploy.com/en/docs/core/get-started/introduction"
}
+ },
+ "Pricing": {
+ "swirlyDoodleTitle": "Simple & Affordable,",
+ "restTitle": "Pricing.",
+ "description": "Deploy Smarter, Scale Faster – Without Breaking the Bank",
+ "billingCycle": {
+ "monthly": "Monthly",
+ "annual": "Annual"
+ },
+ "plan": {
+ "free": {
+ "title": "Free",
+ "subTitle": "Open Source",
+ "section": {
+ "title": "Dokploy Open Source",
+ "description": "Manager your own infrastructure installing dokploy ui in your own server."
+ },
+ "features": {
+ "f1": "Complete Flexibility: Install Dokploy UI on your own infrastructure",
+ "f2": "Unlimited Deployments",
+ "f3": "Self-hosted Infrastructure",
+ "f4": "Community Support",
+ "f5": "Access to Core Features",
+ "f6": "Dokploy Integration",
+ "f7": "Basic Backups",
+ "f8": "Access to All Updates",
+ "f9": "Unlimited Servers"
+ },
+ "go": "Installation"
+ },
+ "cloud": {
+ "title": "Recommended",
+ "section": {
+ "title": "Dokploy Plan",
+ "description": " to manage Dokploy UI infrastructure, we take care of it for you."
+ },
+ "servers": "{serverQuantity}Servers (You bring the servers)",
+ "features": {
+ "f1": "Managed Hosting: No need to manage your own servers",
+ "f2": "Priority Support",
+ "f3": "Future-Proof Features"
+ },
+ "go": "Subscribe"
+ }
+ },
+ "faq": {
+ "title": "Frequently asked questions",
+ "description": "If you can’t find what you’re looking for, please send us an email to",
+ "q1": "How does Dokploy's Open Source plan work?",
+ "a1": "You can host Dokploy UI on your own infrastructure and you will be responsible for the maintenance and updates.",
+ "q2": "Do I need to provide my own server for the managed plan?",
+ "a2": "Yes, in the managed plan, you provide your own server eg(Hetzner, Hostinger, AWS, ETC.) VPS, and we manage the Dokploy UI infrastructure for you.",
+ "q3": "What happens if I need more than one server?",
+ "a3": "The first server costs $4.50/month, if you buy more than one it will be $3.50/month per server.",
+ "q4": "Is there a limit on the number of deployments?",
+ "a4": "No, there is no limit on the number of deployments in any of the plans.",
+ "q5": "What happens if I exceed my purchased server limit?",
+ "a5": "The most recently added servers will be deactivated. You won't be able to create services on inactive servers until they are reactivated.",
+ "q6": "Do you offer a refunds?",
+ "a6": "We do not offer refunds. However, you can cancel your subscription at any time. Feel free to try our open-source version for free before making a purchase.",
+ "q7": "What kind of support do you offer?",
+ "a7": "We offer community support for the open source version and priority support for paid plans.",
+ "q8": "Is Dokploy open-source?",
+ "a8": "Yes, Dokploy is fully open-source. You can contribute or modify it as needed for your projects."
+ }
}
}
diff --git a/apps/website/locales/zh-Hans.json b/apps/website/locales/zh-Hans.json
index f3d5fcb11..be742e676 100644
--- a/apps/website/locales/zh-Hans.json
+++ b/apps/website/locales/zh-Hans.json
@@ -4,7 +4,9 @@
"features": "特性",
"faqs": "FAQ",
"docs": "文档",
+ "pricing": "价格",
"support": "赞助",
+ "dashboard": "控制台",
"discord": "Discord",
"i18nButtonPlaceholder": "语言",
"i18nEn": "English",
@@ -105,5 +107,70 @@
"intro": "https://docs.dokploy.com/cn/docs/core/get-started/introduction",
"install": "https://docs.dokploy.com/cn/docs/core/get-started/introduction"
}
+ },
+ "Pricing": {
+ "swirlyDoodleTitle": "简洁明了的,",
+ "restTitle": "定价",
+ "description": "更聪明的部署方式,更快的扩容速度,以及不会让你破产的账单。",
+ "billingCycle": {
+ "monthly": "按月",
+ "annual": "按年"
+ },
+ "plan": {
+ "free": {
+ "title": "免费",
+ "subTitle": "开源版本",
+ "section": {
+ "title": "部署Dokploy的开源版本",
+ "description": "自行管理您的基础设施,不收取任何费用"
+ },
+ "features": {
+ "f1": "灵活的架构,您可以单独部署 Dokploy 管理端",
+ "f2": "无限数量的部署",
+ "f3": "自维护的基础设施",
+ "f4": "来自社区的有限支持",
+ "f5": "所有功能可用",
+ "f6": "Dokploy 集成",
+ "f7": "基础备份服务",
+ "f8": "跟随开源版本更新",
+ "f9": "无限服务器数量"
+ },
+ "go": "立即开始"
+ },
+ "cloud": {
+ "title": "推荐(年付更优惠)",
+ "section": {
+ "title": "Dokploy 云",
+ "description": "使用我们的云服务,一站式管理您所有的部署。"
+ },
+ "servers": "{serverQuantity}台受控服务器",
+ "features": {
+ "f1": "由 Dokploy 云提供支持的独立控制面板",
+ "f2": "优先技术支持",
+ "f3": "优先体验先行功能"
+ },
+ "go": "订阅"
+ }
+ },
+ "faq": {
+ "title": "常见问题",
+ "description": "如果您的问题不在以下列表,请随时向我们致信",
+ "q1": "Dokploy 的开源版本是什么?",
+ "a1": "您可以免费安装 Dokploy 开源版本,并自行负责 Dokploy 的日后维护工作",
+ "q2": "付费计划还需要自己的服务器吗?",
+ "a2": "是的,在付费计划中,您依然需要提供您用于实际运行服务的服务器(如阿里云、腾讯云、AWS 等),我们会为您管理 Dokploy 控制面板。",
+ "q3": "如果我需要管理更多的服务器怎么办?",
+ "a3": "第一台服务器的费用为 $4.5/月,之后每台的费用是 $3.5/月。",
+ "q4": "部署服务的数量有限制吗?",
+ "a4": "不管您如何使用 Dokploy,我们都不会限制您部署服务的数量。",
+ "q5": "如果我意外超过了最大服务器数量怎么办?",
+ "a5": "最新添加的服务器将被停用,您将不能向其创建服务,直到它们被重新激活。",
+ "q6": "关于退款服务的政策?",
+ "a6": "您可以随时取消您的订阅,但请原谅我们无法提供退款服务,您可以无限试用开源版本,然后再购买。",
+ "q7": "关于技术支持?",
+ "a7": "付费计划可以得到优先的技术支持,开源版本则是由社区提供技术支持。",
+ "q8": "Dokploy 开源吗?",
+ "a8": "是的,Dokploy 完全开源,您可以参与贡献或者是 Fork 后自行修改以用于您的私人需求。"
+ }
}
}
From d239ca9b49cf4f00626ae747d28249546cc97a70 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 01:58:31 -0600
Subject: [PATCH 073/107] fix(dokploy): adjust dark and light mode billing
---
.../components/dashboard/settings/billing/show-billing.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
index ca684c686..16832e365 100644
--- a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
+++ b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
@@ -144,7 +144,7 @@ export const ShowBilling = () => {
className={clsx(
"flex flex-col rounded-3xl border-dashed border-2 px-4 max-w-sm",
featured
- ? "order-first bg-black border py-8 lg:order-none"
+ ? "order-first border py-8 lg:order-none"
: "lg:py-8",
)}
>
@@ -169,7 +169,7 @@ export const ShowBilling = () => {
USD
)}
-
+
{product.name}
Date: Sun, 27 Oct 2024 14:11:43 +0530
Subject: [PATCH 074/107] Updated port in docker-compose.yml
---
apps/dokploy/templates/tolgee/docker-compose.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/dokploy/templates/tolgee/docker-compose.yml b/apps/dokploy/templates/tolgee/docker-compose.yml
index d90e22af6..f17b9b3c4 100644
--- a/apps/dokploy/templates/tolgee/docker-compose.yml
+++ b/apps/dokploy/templates/tolgee/docker-compose.yml
@@ -7,7 +7,7 @@ services:
- ./data:/data
- ./config.yaml:/config.yaml
ports:
- - '8080:8080'
+ - '8080'
environment:
TOLGEE_FRONT_END_URL: ${TOLGEE_HOST}
TOLGEE_AUTHENTICATION_ENABLED: ${TOLGEE_AUTHENTICATION_ENABLED}
From 93844928a8bd4b780ea17d41e9d7c30dab4e2883 Mon Sep 17 00:00:00 2001
From: codewithkamal
Date: Sun, 27 Oct 2024 14:28:11 +0530
Subject: [PATCH 075/107] chore: lint fixes
---
apps/dokploy/templates/templates.ts | 4 +-
apps/dokploy/templates/tolgee/index.ts | 72 +++++++++++++-------------
2 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts
index 8f8f524b6..5ecdabd72 100644
--- a/apps/dokploy/templates/templates.ts
+++ b/apps/dokploy/templates/templates.ts
@@ -512,7 +512,7 @@ export const templates: TemplateData[] = [
tags: ["self-hosted", "email", "webmail"],
load: () => import("./roundcube/index").then((m) => m.generate),
},
- {
+ {
id: "tolgee",
name: "Tolgee",
version: "v3.80.4",
@@ -526,7 +526,7 @@ export const templates: TemplateData[] = [
},
tags: ["self-hosted", "i18n", "localization", "translations"],
load: () => import("./tolgee/index").then((m) => m.generate),
- },
+ },
{
id: "portainer",
name: "Portainer",
diff --git a/apps/dokploy/templates/tolgee/index.ts b/apps/dokploy/templates/tolgee/index.ts
index a919e5a4a..7fce3f55d 100644
--- a/apps/dokploy/templates/tolgee/index.ts
+++ b/apps/dokploy/templates/tolgee/index.ts
@@ -1,41 +1,41 @@
import {
- type Template,
- type Schema,
- type DomainSchema,
- generateBase64,
- generateRandomDomain,
- } from "../utils";
+ type DomainSchema,
+ type Schema,
+ type Template,
+ generateBase64,
+ generateRandomDomain,
+} from "../utils";
- export function generate(schema: Schema): Template {
- const mainDomain = generateRandomDomain(schema);
- const jwtSecret = generateBase64(32);
+export function generate(schema: Schema): Template {
+ const mainDomain = generateRandomDomain(schema);
+ const jwtSecret = generateBase64(32);
- const domains: DomainSchema[] = [
- {
- host: mainDomain,
- port: 8080,
- serviceName: "app",
- },
- ];
+ const domains: DomainSchema[] = [
+ {
+ host: mainDomain,
+ port: 8080,
+ serviceName: "app",
+ },
+ ];
- const envs = [
- `TOLGEE_HOST=${mainDomain}`,
- "TOLGEE_AUTHENTICATION_ENABLED=true",
- "TOLGEE_AUTHENTICATION_INITIAL_PASSWORD=admin",
- "TOLGEE_AUTHENTICATION_INITIAL_USERNAME=admin",
- `TOLGEE_AUTHENTICATION_JWT_SECRET=${jwtSecret}`,
- "TOLGEE_MACHINE_TRANSLATION_GOOGLE_API_KEY=my_google_api_key",
- "TOLGEE_SMTP_AUTH=true",
- "TOLGEE_SMTP_FROM=Tolgee ",
- "TOLGEE_SMTPHOST=email-smtp.regional-region.amazonaws.com",
- "TOLGEE_SMTP_PASSWORD=omg/my/password",
- "TOLGEE_SMTP_PORT=465",
- "TOLGEE_SMTP_SSL_ENABLED=true",
- "TOLGEE_SMTP_USERNAME=user@company.com",
- ];
+ const envs = [
+ `TOLGEE_HOST=${mainDomain}`,
+ "TOLGEE_AUTHENTICATION_ENABLED=true",
+ "TOLGEE_AUTHENTICATION_INITIAL_PASSWORD=admin",
+ "TOLGEE_AUTHENTICATION_INITIAL_USERNAME=admin",
+ `TOLGEE_AUTHENTICATION_JWT_SECRET=${jwtSecret}`,
+ "TOLGEE_MACHINE_TRANSLATION_GOOGLE_API_KEY=my_google_api_key",
+ "TOLGEE_SMTP_AUTH=true",
+ "TOLGEE_SMTP_FROM=Tolgee ",
+ "TOLGEE_SMTPHOST=email-smtp.regional-region.amazonaws.com",
+ "TOLGEE_SMTP_PASSWORD=omg/my/password",
+ "TOLGEE_SMTP_PORT=465",
+ "TOLGEE_SMTP_SSL_ENABLED=true",
+ "TOLGEE_SMTP_USERNAME=user@company.com",
+ ];
- return {
- envs,
- domains,
- };
- }
+ return {
+ envs,
+ domains,
+ };
+}
From 2c2d59a87c599e10828827a64b7f017e4703342f Mon Sep 17 00:00:00 2001
From: MD Mahbub Hasan
Date: Sun, 27 Oct 2024 16:24:42 +0600
Subject: [PATCH 076/107] Format fix
---
apps/dokploy/templates/filebrowser/index.ts | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/apps/dokploy/templates/filebrowser/index.ts b/apps/dokploy/templates/filebrowser/index.ts
index 4ca4f8b9b..c30519f1d 100644
--- a/apps/dokploy/templates/filebrowser/index.ts
+++ b/apps/dokploy/templates/filebrowser/index.ts
@@ -15,9 +15,7 @@ export function generate(schema: Schema): Template {
serviceName: "filebrowser",
},
];
- const envs = [
- "FB_BASEURL=/filebrowser",
- ];
+ const envs = ["FB_BASEURL=/filebrowser"];
return {
envs,
From 80015d8d71b263252e694dfaa35f020279df6b5d Mon Sep 17 00:00:00 2001
From: MD Mahbub Hasan
Date: Sun, 27 Oct 2024 16:29:14 +0600
Subject: [PATCH 077/107] format fix for templates list
---
apps/dokploy/templates/templates.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts
index dbe818cbe..568a18ec4 100644
--- a/apps/dokploy/templates/templates.ts
+++ b/apps/dokploy/templates/templates.ts
@@ -526,8 +526,8 @@ export const templates: TemplateData[] = [
},
tags: ["file", "manager"],
load: () => import("./filebrowser/index").then((m) => m.generate),
- },
- {
+ },
+ {
id: "portainer",
name: "Portainer",
version: "2.21.4",
From 3808fd83a6f3cbbc741ef9493a57c93caab18539 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 12:50:22 -0600
Subject: [PATCH 078/107] feat(dokploy): add welcome modal to dokploy cloud
---
.../dashboard/requests/show-requests.tsx | 2 +-
.../settings/billing/show-billing.tsx | 6 ++
.../settings/billing/show-welcome-dokploy.tsx | 62 +++++++++++++++++++
apps/dokploy/components/layouts/navbar.tsx | 11 ++++
.../components/layouts/navigation-tabs.tsx | 2 +-
apps/dokploy/pages/dashboard/projects.tsx | 13 +++-
6 files changed, 91 insertions(+), 5 deletions(-)
create mode 100644 apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx
diff --git a/apps/dokploy/components/dashboard/requests/show-requests.tsx b/apps/dokploy/components/dashboard/requests/show-requests.tsx
index 1b066529b..643d2bcb9 100644
--- a/apps/dokploy/components/dashboard/requests/show-requests.tsx
+++ b/apps/dokploy/components/dashboard/requests/show-requests.tsx
@@ -34,7 +34,7 @@ export const ShowRequests = () => {
Request Distribution
-
+
Showing web and API requests over time
diff --git a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
index 073b4598f..6590f2baa 100644
--- a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
+++ b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx
@@ -1,3 +1,4 @@
+import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { NumberInput } from "@/components/ui/input";
import { Progress } from "@/components/ui/progress";
@@ -148,6 +149,11 @@ export const ShowBilling = () => {
: "lg:py-8",
)}
>
+ {isAnnual && (
+
+ Recommended 🚀
+
+ )}
{isAnnual ? (
diff --git a/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx
new file mode 100644
index 000000000..ca6a4daee
--- /dev/null
+++ b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx
@@ -0,0 +1,62 @@
+import { ShowBilling } from "@/components/dashboard/settings/billing/show-billing";
+import {
+ Dialog,
+ DialogContent,
+ DialogHeader,
+ DialogTitle,
+} from "@/components/ui/dialog";
+import { api } from "@/utils/api";
+import type React from "react";
+import { useEffect, useState } from "react";
+
+export const ShowWelcomeDokploy = () => {
+ const { data } = api.auth.get.useQuery();
+ const [open, setOpen] = useState(false);
+
+ const { data: isCloud, isLoading } = api.settings.isCloud.useQuery();
+
+ if (!isCloud || data?.rol !== "admin") {
+ return null;
+ }
+
+ useEffect(() => {
+ if (
+ !isLoading &&
+ isCloud &&
+ !localStorage.getItem("hasSeenCloudWelcomeModal") &&
+ data?.rol === "admin"
+ ) {
+ setOpen(true);
+ }
+ }, [isCloud, isLoading]);
+
+ const handleClose = (isOpen: boolean) => {
+ if (data?.rol === "admin") {
+ setOpen(isOpen);
+ if (!isOpen) {
+ localStorage.setItem("hasSeenCloudWelcomeModal", "true"); // Establece el flag al cerrar el modal
+ }
+ }
+ };
+
+ return (
+ <>
+
+
+
+
+ Welcome to Dokploy Cloud 🎉
+
+
+ Unlock powerful features to streamline your deployments and manage
+ projects effortlessly.
+
+
+
+
+
+
+
+ >
+ );
+};
diff --git a/apps/dokploy/components/layouts/navbar.tsx b/apps/dokploy/components/layouts/navbar.tsx
index 0b0e38ffa..cead46836 100644
--- a/apps/dokploy/components/layouts/navbar.tsx
+++ b/apps/dokploy/components/layouts/navbar.tsx
@@ -19,6 +19,7 @@ import { buttonVariants } from "../ui/button";
export const Navbar = () => {
const router = useRouter();
const { data } = api.auth.get.useQuery();
+ const { data: isCloud } = api.settings.isCloud.useQuery();
const { data: user } = api.user.byAuthId.useQuery(
{
authId: data?.id || "",
@@ -130,6 +131,16 @@ export const Navbar = () => {
Settings
+ {isCloud && data?.rol === "admin" && (
+ {
+ router.push("/dashboard/settings/billing");
+ }}
+ >
+ Billing
+
+ )}
{
router.push(tab?.index || "");
}}
>
-
+
{tabMap.map((tab, index) => {
if (tab?.isShow && !tab?.isShow?.({ rol: data?.rol, user })) {
diff --git a/apps/dokploy/pages/dashboard/projects.tsx b/apps/dokploy/pages/dashboard/projects.tsx
index b14c9e32e..283a7c6e5 100644
--- a/apps/dokploy/pages/dashboard/projects.tsx
+++ b/apps/dokploy/pages/dashboard/projects.tsx
@@ -1,14 +1,21 @@
import { ShowProjects } from "@/components/dashboard/projects/show";
+import { ShowWelcomeDokploy } from "@/components/dashboard/settings/billing/show-welcome-dokploy";
import { DashboardLayout } from "@/components/layouts/dashboard-layout";
import { appRouter } from "@/server/api/root";
import { validateRequest } from "@dokploy/server";
import { createServerSideHelpers } from "@trpc/react-query/server";
import type { GetServerSidePropsContext } from "next";
-import React, { type ReactElement } from "react";
+import type React from "react";
+import type { ReactElement } from "react";
import superjson from "superjson";
const Dashboard = () => {
- return ;
+ return (
+ <>
+
+
+ >
+ );
};
export default Dashboard;
@@ -35,7 +42,7 @@ export async function getServerSideProps(
});
await helpers.settings.isCloud.prefetch();
-
+ await helpers.auth.get.prefetch();
if (!user) {
return {
redirect: {
From 7d882b3df5b0978da52bbcc3ebf9b42213daf908 Mon Sep 17 00:00:00 2001
From: MD Mahbub Hasan
Date: Mon, 28 Oct 2024 01:40:26 +0600
Subject: [PATCH 079/107] style(ui): update template selection view
---
apps/dokploy/components/dashboard/project/add-template.tsx | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/apps/dokploy/components/dashboard/project/add-template.tsx b/apps/dokploy/components/dashboard/project/add-template.tsx
index cf0f7e03e..2062c9d7e 100644
--- a/apps/dokploy/components/dashboard/project/add-template.tsx
+++ b/apps/dokploy/components/dashboard/project/add-template.tsx
@@ -54,6 +54,7 @@ import { cn } from "@/lib/utils";
import { api } from "@/utils/api";
import { ScrollArea } from "@radix-ui/react-scroll-area";
import {
+ BookText,
CheckIcon,
ChevronsUpDown,
Code,
@@ -249,7 +250,7 @@ export const AddTemplate = ({ projectId }: Props) => {
"text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors"
}
>
-
+
)}
{
-
+
{template.description}
From 3f40ad32500cd23a8efe1856954c627c4ff16232 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 14:12:45 -0600
Subject: [PATCH 080/107] fix(dokploy): prevent to have pending connections
docker logs
---
.../dashboard/docker/logs/docker-logs-id.tsx | 37 ++++++++++---------
.../server/wss/docker-container-logs.ts | 9 +++++
2 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx
index ca9dbbb6a..4ae3c3750 100644
--- a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx
+++ b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx
@@ -18,24 +18,28 @@ export const DockerLogsId: React.FC = ({
}) => {
const [term, setTerm] = React.useState();
const [lines, setLines] = React.useState(40);
- const wsRef = useRef(null); // Ref to hold WebSocket instance
+ const wsRef = useRef(null);
useEffect(() => {
- // if (containerId === "select-a-container") {
- // return;
- // }
+ if (containerId === "select-a-container") {
+ return;
+ }
+
+ if (
+ wsRef.current &&
+ (wsRef.current.readyState === WebSocket.OPEN ||
+ wsRef.current.readyState === WebSocket.CONNECTING)
+ ) {
+ wsRef.current.close();
+ wsRef.current = null;
+ }
+
const container = document.getElementById(id);
if (container) {
container.innerHTML = "";
}
- if (wsRef.current) {
- console.log(wsRef.current);
- if (wsRef.current.readyState === WebSocket.OPEN) {
- wsRef.current.close();
- }
- wsRef.current = null;
- }
+ // Crear nueva instancia de Terminal
const termi = new Terminal({
cursorBlink: true,
cols: 80,
@@ -45,7 +49,6 @@ export const DockerLogsId: React.FC = ({
fontSize: 14,
fontFamily:
'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
-
convertEol: true,
theme: {
cursor: "transparent",
@@ -54,10 +57,10 @@ export const DockerLogsId: React.FC = ({
});
const protocol = window.location.protocol === "https:" ? "wss:" : "ws:";
-
const wsUrl = `${protocol}//${window.location.host}/docker-container-logs?containerId=${containerId}&tail=${lines}${serverId ? `&serverId=${serverId}` : ""}`;
const ws = new WebSocket(wsUrl);
wsRef.current = ws;
+
const fitAddon = new FitAddon();
termi.loadAddon(fitAddon);
// @ts-ignore
@@ -76,17 +79,17 @@ export const DockerLogsId: React.FC = ({
ws.onclose = (e) => {
console.log(e.reason);
-
termi.write(`Connection closed!\nReason: ${e.reason}\n`);
wsRef.current = null;
};
+
return () => {
if (wsRef.current?.readyState === WebSocket.OPEN) {
- ws.close();
- wsRef.current = null;
+ wsRef.current.close();
}
+ wsRef.current = null;
};
- }, [lines, containerId]);
+ }, [containerId, lines]);
useEffect(() => {
term?.clear();
diff --git a/apps/dokploy/server/wss/docker-container-logs.ts b/apps/dokploy/server/wss/docker-container-logs.ts
index 63a0b89e6..982bf3f5d 100644
--- a/apps/dokploy/server/wss/docker-container-logs.ts
+++ b/apps/dokploy/server/wss/docker-container-logs.ts
@@ -43,6 +43,15 @@ export const setupDockerContainerLogsWebSocketServer = (
ws.close();
return;
}
+
+ const pingInterval = setInterval(() => {
+ if (ws.readyState === ws.OPEN) {
+ ws.ping();
+ }
+ }, 30000);
+
+ ws.on("close", () => clearInterval(pingInterval));
+
try {
if (serverId) {
const server = await findServerById(serverId);
From ae5df828879926b56c135d4ac4bab7e7dfa26a16 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 15:09:27 -0600
Subject: [PATCH 081/107] refactor(dokploy): terminate connections
---
.../server/wss/docker-container-logs.ts | 31 ++++++++++++++-----
1 file changed, 23 insertions(+), 8 deletions(-)
diff --git a/apps/dokploy/server/wss/docker-container-logs.ts b/apps/dokploy/server/wss/docker-container-logs.ts
index 982bf3f5d..d704467c0 100644
--- a/apps/dokploy/server/wss/docker-container-logs.ts
+++ b/apps/dokploy/server/wss/docker-container-logs.ts
@@ -5,6 +5,11 @@ import { Client } from "ssh2";
import { WebSocketServer } from "ws";
import { getShell } from "./utils";
+function heartbeat() {
+ // @ts-ignore
+ this.isAlive = true;
+}
+
export const setupDockerContainerLogsWebSocketServer = (
server: http.Server,
) => {
@@ -44,14 +49,10 @@ export const setupDockerContainerLogsWebSocketServer = (
return;
}
- const pingInterval = setInterval(() => {
- if (ws.readyState === ws.OPEN) {
- ws.ping();
- }
- }, 30000);
-
- ws.on("close", () => clearInterval(pingInterval));
-
+ // @ts-ignore
+ ws.isAlive = true;
+ ws.on("error", console.error);
+ ws.on("pong", heartbeat);
try {
if (serverId) {
const server = await findServerById(serverId);
@@ -147,4 +148,18 @@ export const setupDockerContainerLogsWebSocketServer = (
ws.send(errorMessage);
}
});
+
+ const interval = setInterval(function ping() {
+ for (const ws of wssTerm.clients) {
+ // @ts-ignore
+ if (ws.isAlive === false) return ws.terminate();
+ // @ts-ignore
+ ws.isAlive = false;
+ ws.ping();
+ }
+ }, 30000);
+
+ wssTerm.on("close", function close() {
+ clearInterval(interval);
+ });
};
From 5c85b82257f0a04fd332243484bed9e883ba2827 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 17:35:19 -0600
Subject: [PATCH 082/107] refactor(dokploy): revert
---
.../dashboard/docker/logs/docker-logs-id.tsx | 37 +++++++++----------
.../server/wss/docker-container-logs.ts | 24 ------------
2 files changed, 17 insertions(+), 44 deletions(-)
diff --git a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx
index 4ae3c3750..ca9dbbb6a 100644
--- a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx
+++ b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx
@@ -18,28 +18,24 @@ export const DockerLogsId: React.FC = ({
}) => {
const [term, setTerm] = React.useState();
const [lines, setLines] = React.useState(40);
- const wsRef = useRef(null);
+ const wsRef = useRef(null); // Ref to hold WebSocket instance
useEffect(() => {
- if (containerId === "select-a-container") {
- return;
- }
-
- if (
- wsRef.current &&
- (wsRef.current.readyState === WebSocket.OPEN ||
- wsRef.current.readyState === WebSocket.CONNECTING)
- ) {
- wsRef.current.close();
- wsRef.current = null;
- }
-
+ // if (containerId === "select-a-container") {
+ // return;
+ // }
const container = document.getElementById(id);
if (container) {
container.innerHTML = "";
}
- // Crear nueva instancia de Terminal
+ if (wsRef.current) {
+ console.log(wsRef.current);
+ if (wsRef.current.readyState === WebSocket.OPEN) {
+ wsRef.current.close();
+ }
+ wsRef.current = null;
+ }
const termi = new Terminal({
cursorBlink: true,
cols: 80,
@@ -49,6 +45,7 @@ export const DockerLogsId: React.FC = ({
fontSize: 14,
fontFamily:
'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
+
convertEol: true,
theme: {
cursor: "transparent",
@@ -57,10 +54,10 @@ export const DockerLogsId: React.FC = ({
});
const protocol = window.location.protocol === "https:" ? "wss:" : "ws:";
+
const wsUrl = `${protocol}//${window.location.host}/docker-container-logs?containerId=${containerId}&tail=${lines}${serverId ? `&serverId=${serverId}` : ""}`;
const ws = new WebSocket(wsUrl);
wsRef.current = ws;
-
const fitAddon = new FitAddon();
termi.loadAddon(fitAddon);
// @ts-ignore
@@ -79,17 +76,17 @@ export const DockerLogsId: React.FC = ({
ws.onclose = (e) => {
console.log(e.reason);
+
termi.write(`Connection closed!\nReason: ${e.reason}\n`);
wsRef.current = null;
};
-
return () => {
if (wsRef.current?.readyState === WebSocket.OPEN) {
- wsRef.current.close();
+ ws.close();
+ wsRef.current = null;
}
- wsRef.current = null;
};
- }, [containerId, lines]);
+ }, [lines, containerId]);
useEffect(() => {
term?.clear();
diff --git a/apps/dokploy/server/wss/docker-container-logs.ts b/apps/dokploy/server/wss/docker-container-logs.ts
index d704467c0..63a0b89e6 100644
--- a/apps/dokploy/server/wss/docker-container-logs.ts
+++ b/apps/dokploy/server/wss/docker-container-logs.ts
@@ -5,11 +5,6 @@ import { Client } from "ssh2";
import { WebSocketServer } from "ws";
import { getShell } from "./utils";
-function heartbeat() {
- // @ts-ignore
- this.isAlive = true;
-}
-
export const setupDockerContainerLogsWebSocketServer = (
server: http.Server,
) => {
@@ -48,11 +43,6 @@ export const setupDockerContainerLogsWebSocketServer = (
ws.close();
return;
}
-
- // @ts-ignore
- ws.isAlive = true;
- ws.on("error", console.error);
- ws.on("pong", heartbeat);
try {
if (serverId) {
const server = await findServerById(serverId);
@@ -148,18 +138,4 @@ export const setupDockerContainerLogsWebSocketServer = (
ws.send(errorMessage);
}
});
-
- const interval = setInterval(function ping() {
- for (const ws of wssTerm.clients) {
- // @ts-ignore
- if (ws.isAlive === false) return ws.terminate();
- // @ts-ignore
- ws.isAlive = false;
- ws.ping();
- }
- }, 30000);
-
- wssTerm.on("close", function close() {
- clearInterval(interval);
- });
};
From 0e8a3c36f3a6f23d152ff45948a5853a3225ab60 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 18:12:23 -0600
Subject: [PATCH 083/107] feat(dokploy): add stirling
---
apps/dokploy/public/templates/stirling.svg | 17 ++++++++++++
.../templates/soketi/docker-compose.yml | 27 ++++++++++++-------
.../templates/stirling/docker-compose.yml | 12 +++++++++
apps/dokploy/templates/stirling/index.ts | 22 +++++++++++++++
apps/dokploy/templates/templates.ts | 14 ++++++++++
5 files changed, 82 insertions(+), 10 deletions(-)
create mode 100644 apps/dokploy/public/templates/stirling.svg
create mode 100644 apps/dokploy/templates/stirling/docker-compose.yml
create mode 100644 apps/dokploy/templates/stirling/index.ts
diff --git a/apps/dokploy/public/templates/stirling.svg b/apps/dokploy/public/templates/stirling.svg
new file mode 100644
index 000000000..0db55164b
--- /dev/null
+++ b/apps/dokploy/public/templates/stirling.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/dokploy/templates/soketi/docker-compose.yml b/apps/dokploy/templates/soketi/docker-compose.yml
index 1784cdc79..2df681652 100644
--- a/apps/dokploy/templates/soketi/docker-compose.yml
+++ b/apps/dokploy/templates/soketi/docker-compose.yml
@@ -1,12 +1,19 @@
-version: "3"
-
+version: '3.3'
services:
- soketi:
- image: quay.io/soketi/soketi:1.4-16-debian
- container_name: soketi
+ stirling-pdf:
+ image: frooodle/s-pdf:0.30.1
+ ports:
+ - '8080'
+ volumes:
+ - training-data:/usr/share/tessdata #Required for extra OCR languages
+ - extra-configs:/configs
+ # - /location/of/customFiles:/customFiles/
+ # - /location/of/logs:/logs/
environment:
- SOKETI_DEBUG: "1"
- SOKETI_HOST: "0.0.0.0"
- SOKETI_PORT: "6001"
- SOKETI_METRICS_SERVER_PORT: "9601"
- restart: unless-stopped
+ - DOCKER_ENABLE_SECURITY=false
+ - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
+ - LANGS=en_GB
+
+volumes:
+ training-data: {}
+ extra-configs: {}
\ No newline at end of file
diff --git a/apps/dokploy/templates/stirling/docker-compose.yml b/apps/dokploy/templates/stirling/docker-compose.yml
new file mode 100644
index 000000000..1784cdc79
--- /dev/null
+++ b/apps/dokploy/templates/stirling/docker-compose.yml
@@ -0,0 +1,12 @@
+version: "3"
+
+services:
+ soketi:
+ image: quay.io/soketi/soketi:1.4-16-debian
+ container_name: soketi
+ environment:
+ SOKETI_DEBUG: "1"
+ SOKETI_HOST: "0.0.0.0"
+ SOKETI_PORT: "6001"
+ SOKETI_METRICS_SERVER_PORT: "9601"
+ restart: unless-stopped
diff --git a/apps/dokploy/templates/stirling/index.ts b/apps/dokploy/templates/stirling/index.ts
new file mode 100644
index 000000000..a8df5e339
--- /dev/null
+++ b/apps/dokploy/templates/stirling/index.ts
@@ -0,0 +1,22 @@
+import {
+ type DomainSchema,
+ type Schema,
+ type Template,
+ generateRandomDomain,
+} from "../utils";
+
+export function generate(schema: Schema): Template {
+ const mainDomain = generateRandomDomain(schema);
+
+ const domains: DomainSchema[] = [
+ {
+ host: mainDomain,
+ port: 8080,
+ serviceName: "stirling-pdf",
+ },
+ ];
+
+ return {
+ domains,
+ };
+}
diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts
index 372af8bb4..86eb99426 100644
--- a/apps/dokploy/templates/templates.ts
+++ b/apps/dokploy/templates/templates.ts
@@ -557,4 +557,18 @@ export const templates: TemplateData[] = [
tags: ["cloud", "monitoring"],
load: () => import("./portainer/index").then((m) => m.generate),
},
+ {
+ id: "stirling",
+ name: "Stirling PDF",
+ version: "0.30.1",
+ description: "A locally hosted one-stop shop for all your PDF needs",
+ logo: "stirling.svg",
+ links: {
+ github: "https://github.com/Stirling-Tools/Stirling-PDF",
+ website: "https://www.stirlingpdf.com/",
+ docs: "https://docs.stirlingpdf.com/",
+ },
+ tags: ["pdf", "tools"],
+ load: () => import("./portainer/index").then((m) => m.generate),
+ },
];
From cf666ceb19672c0cda4a963ee1c1ea296b994bde Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 20:48:42 -0600
Subject: [PATCH 084/107] feat(dokploy): add lobe chat
---
apps/dokploy/public/templates/lobe-chat.png | Bin 0 -> 9294 bytes
apps/dokploy/server/api/routers/compose.ts | 4 ++--
.../templates/lobe-chat/docker-compose.yml | 12 ++++++++++
apps/dokploy/templates/lobe-chat/index.ts | 22 ++++++++++++++++++
apps/dokploy/templates/templates.ts | 16 ++++++++++++-
5 files changed, 51 insertions(+), 3 deletions(-)
create mode 100644 apps/dokploy/public/templates/lobe-chat.png
create mode 100644 apps/dokploy/templates/lobe-chat/docker-compose.yml
create mode 100644 apps/dokploy/templates/lobe-chat/index.ts
diff --git a/apps/dokploy/public/templates/lobe-chat.png b/apps/dokploy/public/templates/lobe-chat.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc29879cf45b0e3ba319e05068d8dbc09d3a4878
GIT binary patch
literal 9294
zcmWk!c{J3I7yZnb8Ds3(#u7vJ$}UTmu|@V!)@<2Iwy4N5i+vYm3NeZhk|bmsOCgCU
zYiTT5l8hw=v;4llch0-_+&}Jlf4y_=dFQ3u+nRGCL=XS~a9*@9b@-1-|8F?Uf9MY`
z(F6c6-QL>C>_7RV^8MWN%H`sMiK4-y)(1ici}NNMA`v-i%1yyn4L3
zNZ(#&?ya8Y)Y;7pqxWNIop+8Jf{vQPsMY>QZ|~6B1LyyhJPx`#lx3kVigjdsAy{X}T
zjBi&Qt)8#mFPexjeVdk-W2
z#C!C|bdF&f1MMp*WepoR%cY=G*ZeCt!gyWubGGlYgaoFUYWS_0DAs2T9nJPc1a<8?
zn3h^auimkn$*#+>z5miRGsGxmIj`fc)q};G7NyBUH*Y`M?<}S-55IP}{jWNE&?|JV
z_-#+fOZ?rM55X078Q3ywGdK#g5AHFAoc{qx8xIRBE^fR))Jy(me=tM{6C>G3R`N%KZR$wI{}
zK3Y#Nq)DF9P#IHs#Qp*9#}Sy8ICxIb=G-M0jl1QU-u6P@(&mkS{@l9z`E!%2kX!cE
zy%;f7~T_rhby=L!9qKOioB0g2G=tKD;(QMzSRHBLQP@3WqaT^`SdQH}~w>Fz`AfxX{hE
zl02)YIf#TH36EK94v8KYk_YZ0*m4Srr#F2tYg4;K3#gTRUea>hiLVvq|7=04or#^-
z>^~q+FzA-A_f&O#Xove-P2K#DBvB-3mH1baUUM5uv+he)WJts9zh2j}y`*KuXxUYl
z(l!S-r}%I8dG{jr&o%C!9cGA+~#F=F>cwtFz0UW(V;=Kodowf4*=b#~L?Pv{_g)~Q}?>zEn%r^sj+}s#3@msj1
z(SO$(pPZZwYuSDtawj%%&(Uq3v=!s`pAmSAtwS|xRYSN)@DB4*!UBf6bb5P<2kOii
z^x7MCp+-At8U?;>=Jkn3YKaImWq6FE*yfs=g5HmAI1WzFA^Mq{bM$w@xZM-S-IA@S
zHCjR9&%Q9xTQPb!)>SjBf}h{hI+1L!{H(~q$;_gcO8{kLMrQ2(kT_#+l{S?(Y5-7c
z!CB-T2{D?|y@|q9#&|w;Du7(}A}v12CAZEhS))}Ohd^dfP1Dp9de|=r<#j`%zh-xd
z=YiIE<2XD-5BJ-B&5x{d&o#<CN=s##;YjFmu26M2
zILC>NBvJtR<}GzY7TeNTW)>Ew*OkPhGQKnLTPS|JTc-xbQ#q%6v}|}1MhT25mxjJH
zu1UhLy%SGF32SnZK)3nP&^<3;Qgcq6n8?4nHpp=E0t*VMVl95H?ME6tVt3fH6wW~q
z8)D8@3nas^Y}NRC5`dfzJU9!Flc*t1h5#>=^h5^~(%-(z+_oLG8x7d6o|LrFHr
zD!?9%8w{%pOJjWZU=#8WH&K7{M*0Xfu)J$@kE@tJ+C~N+MVi0e*V`fu%N(Kfci}
z*GL@|dgaV`%G_I@NR|M}BEQ$>a=MfEe1QSlH-wuiE6<^$k(-5|s}~x2LVL;e8Lyp8
z@51_Z#pv|ln3#Zo0O%Uzvi4;oRP>VI;-?5Wfp`)ck6VURr7{p#j&o;#WEW!
ztYvGWmE8Aq!#-(y3UzyLuhvYH!ZNiE3-sY`e_|
zMcl;QRRfwBAq-z7>umx*x#*+p_;niXv_hUR{IRvb0N;K@@tzKvCb2j!-Tfxg|7ZB=
z>YtD8Y(s6pO-X{m8o(|vv0*s;y&IG2Ddw$6&ds|i2yy~o?DE7+V4HP}z#eXqFL*z;
zS|AA|?b8j#7=z~{u)^4@Udv$<{wJsct9W)H7)z8k73wB|r1#*DDXiUBP36hhVny_NG1e^0`;*9`!X)#7wSh%%*%;rWUjUtPb_9u8
zncQ@5q4=vIZ|3~z>;XS{Rbqq=Kvw)U-Kz0u>N
zk_q^|?!Zr?$_8b-@uRVykMCJa;w1O{2+lqx2agQn7|8~C;oQ`0^P7|ggscVHcH#*^
zVL_sRB}Vs(V*M6Dx$M>nc_Wk`W%)FOhaX@h?VQSJVB?b0Tzg4A%i)5iI@VMvyl>&E
z{6*hso5%snEIQ-#*imdr5*YAmch9F%>1xuh0~*V@7b@GL?iWliSYS0soU`UNgs9wq
z2R~y%Qbgh|3!p(f_6hH`5T32c1DtBn6#@`Z@5Bf=lEEK&+AybPe0)*^!niA_%MSXW
zTtnKjdwoBj43tr~eE0bi-cJcG;|-qTy}hBO#jponkR2WiNrWwH{95q397OCdiyUV)
z4vtJrg;Q1OtkmNUgB(Q?z$&aEBJ_^K6sv~oZ0O)e?O_ItfSxB*`pyZ_B&cT}n!=lK
z#I_y$6?^hXR3$pD+zP<-`6bYjuoQQimQR8lE?ECpV%eEI2NrmpF>o>Kbw=nrEq;T--2wGBRbtv^S?wlzytDPXXW
zxI3thJ#0fgp)n|Ya^Tv=xK?}HI)*rc-Ub^%Jd+keBQQLpA0MDW0pD9>OjM5AAsfVF}K
znx9uM7L(`rb&+_&H5p4e@0*6yNQ2s3XjODKJ4ZO@u{2`zsjriaW8sL)a**;X0Qi
zs3~;g$kAD1Y=&uz!z29)JV4uhSiwvvzdfa+RVWpg@*!U&{Arph2_eDVoM1urPK2nW
z)S>M`v|XIsBs;;3+zq0H
zz;^*qsaXqW_b52gOaT6bDK%M;qb%m30luN~U^NCVKq6j%X`5o&g`CmOQ-Ckww!OY)|Jo>PygsVS;M+EWokQB4RL2mdR
zE9fnT`eW-ip1CmSi!%Dsxz7gMxnbUSL;dfBgeVUql0qq&u}%IWhA%mzILmEc8Y`Gf
zX{J+Zdw`Qh(6gw-ue_t@)xfW3x?I>t}h!1pAj(JOurhb_S*apdIS!F>Gp3Sk(v>t4OJBoK(^
z%|%u1P~R%G%B4z;#Y8R4zwwhhadFBT(aRlIEb*d;YLV9MPTqu2y*e!SrLQ&4&%2yC
zm%Xe_&3vrhHP6}#KI^^W&@j{-8Ngo|ydEV&t5bQ3ko}I^31;EW#?}M0^F!htGNDWX
zhDOdK~j{eN`teg@@QzwXMB1JVL5lX
z3WfO4B*1~JWb-Ge-MWvijNTaOoBlGPB-(2Dlyy61UM{TcZsxnAOPH{^v*+J*|2%$v
z-AeroRmyANT-3h_umGG%Sj&Z$kSJiHA^)EM(1ARb{wszM_u6Ay*^Y3!Bni)H!E+=k
zP$J$8EJv{ARe`y@$xr6*vpuN7djQAGId!i#^1l=;{ZN8+tdv%Rm5SDb(mlhjU%#G^
z;DwDwgp*bqsg6DALvk(Ups|^<(M}8-X9D$2tGfGN4!7Y_
zDtCko(L-rtU@Pt^90`>7D(R@qfOK9#&+HESX3PA~Cn@a;ps256r=WST
zYw`EqIXo^Z8qYz9Wbb{;Y;NWjrU+NHz>kpLx6u2k59dd?*O)<>(Ff$qvphi}-~B7q
z^y@bsIi8^fM~uOOZ^?#LJoc%$Xd(S&QMlOpV||(8Ihqn8t~ZLND@?xEZ?fK!)sd7vq2QXTst~V@45iZ&Y#a|GxU6jKna6kZ)j6ctv3$-WNMLLaecP`^oc>(!Hj2>L6!ZM
z_4Jz5w$_jvCwXLI1JR}57)kEhFKxR8MGKeDLDKUdUn(SunYGA+EYbtYJpG?~1}fRb
zhxPc>k66!rqPk+6UJdM9R|(;CU6)XUh9drKh^7|O&)tqOcF-kIJD>Dk-_^r39bI+?
z11RuehD1hcA3HBQEmwQB=UMbhJEc9H>4m4Fjtk{n1bN@^!zhIkYIgJ&t5P8tzWKiU
zO6czGl>m40?A6jty(icFMm^vJvmWbpivHl+kWq12Q%`A?j(BcYLW_00mUTqg@TB`M
zQBMv%jf(hIk)gi>ZC(yrN^%)ACoxxR`E#h&hq#+6`9XLgRkA`L
zKPTio)F>^+ABzIdNrbB&)AnP2
zKAv$L!h~^v@PF*Wt?w*hM1{`Izc%q$Zn#Gt+$({FQ0JAv)g@Tb2=;fw#=@PQo(Ab)
z;?ywhS&^(6^99w`AF{M6&u@nZ@QqYu87z7B1S+xRk;O3R9^ieS`DCbK^@$_>RC;vB
zSx6TTNn5Gbw6=8^@~7;SJZr1=Usu3%EViAcr(0RGcw}{V##*2@==jj9bC*l(pCdyv
zU(QY@6zop;2(nnZDg|(?zqwogRZpK00pFx+TdcMfU`qMf48~OcHN~s(e3=pxqchC%
z8zQ3e=~j^F*hUDM7HStvfZtmZ=PA0lz1Wb$Es^hOVpmGj4Ii!le6tJr1!)j_m_LXZMS-O7NLwYy-Y$JL%d4qQfyQE(*LLzraHCf;jcj^hg0l{Bf|O7&%yUj*dt+Sbd1
z+t#HY6UyUclbKQgytHl?!oJ-tiB2J177dVlzSD-gZ%3Yg7FaVkFjrQJk(x5~mi!Kk
zvvP|E0Tw_Ssth+fdXM-H1bh$V9lHqixeY(omIfD)I%6HohF*F^nKz`Qf3@Sq2E%nd
zpf3%=xKtp(i7}S2B^92L1j@ewNj4P#zG4e0QweV^vfgZd)MvOnl~>9eaQN^G;H1hB
z@`ht&1$bRrlmB76`gGu^0xW=jo6y&)HKTMxZKiR`xV|1E0k{dxPD5T9flaE}j-#iJ
z#VlEpcJ(*sH$j773&;zd$2aW^LY9Wak*@5KKmzz2KIUbLHV8t&u$BBwjkP4EpTMiI
zu9uf}1s|MIkW43|RDN5l&1narpOD}nD)1drgyJ+^$Oi@!4s}UDpa!~$ElGC1zg$4+
zPh*5K?=tA-Vao86A-Ox7ddfEW>JuO+P*Z;G7jWjCE=ZPCtcJ}DEaCtl_iVg>z*G$V
z4rnD0^8h_};oKnbDIBu@!}xC;0jmL;vX_Ujft-d6SUhMLz!K$t
zLKkcRmo^z`V0{Y;2gJUIgz^`8hbX35RyzY}$Pw3p9pJSH
zvq(qA6!^wL%(z$`B_ah-CB9v3WZ|J0%YL*o>EKFQcFcyc@Ni5YY0;}|^Dyr|%8||N
zJqF)#k!Bn#fk!C-u#xpD3Q&BTX~u=~Odokl(1`HT0wCgo&&nQ2eExGq{^xt+Jlz)i
zg}|4n^K9j*R_#>lPBx%`q)|8KjqRSw1H^(7?X%+Rj7Vd%Z6_na?~_TH*wceoz7Rav
z!?_8YDbu=eimZdct*~3vyO205ll}EZ6+nOg^QAM^;FUY12FcR&zmEZUp&OPS3I4Xr
z1ch(2vt)_f&br`%Lz8%E6sbIjJn(EiPXmcZYmD5v94vvB(l!QW7*ip*vu}WZ;W2!s
zDAX=b5mqs+!pk`|fp_LQJXYnD0H;}h`8WGQZ>8f)4QV{jH0>^ye7|*~b$BEEI$sd5
zW0!lyctsd6cax5e?*qu6u0%XJSd7W&`V@3}ZXg-1GLAj?OG`6+$L16xARmHP)&2z)aJ*BQW6jzr4KZ$eOHj{a_0>O;ksYJGXFAPeZj$+7D%#nVZbwVCVY
z;d+E`QXc1ipX$tGPYPIT&-_S(>jQum{#jd(x(@VU7c?mC=3r8Fs*(97LcM0Wa$F+F
z^VBRC-6BwL>h}dZx9l$#qdiJcg>Kc0IKZEmW*b;ui<$xj`P2}1M11kpUp_ojDvj#q=e7l&*0H0sAx}!ELn%We_P`>cUH0z}OLAx)#!C7x)v
zYQJm=D{uVU+sC=kcw9kiw1bTK@)2%TbQ5_XHfx(|qIQVCM*tSkpKPH|G5Y
zkz_$H?7cTg;a1rPPt!1CC6mH%d>K|b01E+2!C8o#6XDB;Tkja{%a{U9bm7v(lN{iU
za1T4t#5^;kMeSH`!ENVGJN>_7D?!;SKRy%1!;(mL&Pyl%h&|I=yz#wk|MPTnx(dgV
zWRD|!LCJ6DJ54l$P$6yP&aHR?pIDKJLKvTerrHmV4~-ZN`rS9?WhUith0e66J>@ZH
z^ZU)S9rN?x_;2Sf-wlhWygMGEr`IXR@uSB-WK`c0zG6{t@Hdl0f2I|mWbg-|BgJRl
zpuERJfAlP9koi%xc(1gT`GJ>4<2V>;@9bPFU)j4w%a`d-&G&Dh^(%Zi)I>=ld;j=#
z4|p1J$#~o;tj`yl@vK>`?)dUljnH|AuDH45h<3sBB#||UYPao}6pOUU15I=mE?{83
zNrKs`R$MXxo$TTuuT0!jdwliqOU|DZLB=H$2!ELK(Vm53SY<*DivW?kS2)Jv2YAXKv;u^Mnirt
zE&U8MJkF8i3499@LWf1MbWw(B5>$33;mZ8r3}O&{7ZAe2KD_@d@%$0Ie->cJdQuhQ
zDXI6^Ja3)~5KEvX8iT?&*p4z3s0F+N4
z$WPIGkNe!y`wB!5$P{|UP{@0VSwwI*?x_8Hp=$wQ4|Pl|!z;f??mVzZghO}~0m|^Q
zxnj3EPqHjq5Y${x5yo6zu88i{N(cYY*LeyiHGn&yNKD?s09(`yERE8KhQ7fsLTHdJ
zQx1~XpX|roMerby3$rIr-~r|k=6gSenAPtA;&^VkrD!ep-lWg#_95%w_~C82c37(o
zhwr(ylS19>f7`9=`VJN&!Z;X;GBPNdhEcEbZa0EOzB+NiPE<@>!gY;s(Sd6qwO1MZ
zaTNR(q>I60+7yy}$+~|sjr}<0JKpT&h720<&wFEE)1<@OZKx*}xY^q(<+g_Zp`W^w
zo+F^=qUqz~!Pe{zpJ-pzS-xILAQO&QSrZIeG9YgrwrD=b_j?;I4w!OF$kE!h$6*JL
zy8rHQ=X0nsdh&aIWD{YZ8qya(tTDvHn>Osq+uoI}gsEagK^RWf1wu5wB??oTJeDVuLqiLXqXT+fDVim-%$#M^J}q&HDfRd;LDn9$+wk0;O#
zT>qLR`AazbHbc-2!dNC*SDE>{fZN{qLiuNzYSZ<)pH(f0;p-N!+x^K`<6IfRJy5yP
zU!(UGz28j0z6g)oy*5*G--H;14rKkXS-N(Q5zvvzL$1rNnx5Hj1FHfp-xz|RM7g2KJofq^xGabl00b0Z%DG`
zRA7^=|0ZReyY?*DG1H|oO0#Y`lBwZo-(`tVEEl|QGu0|@;1Rt&wLqv|)$gv;4-&ZW
zYy)C!y%l@-y-0csdZ*B7QSHo4vSg~$CB@X9qp@OsMWZxXYZh{Y9MgKH{%%i>3-zNe
z?f217%V-=o`}lM~oT#kw)w8Jy3UB@rKpW$+wG(*e^>nMfYWk
iZ@wP-4|WC)*}lY}A4tk3#r*dd0bDe*HGOI9jsG9EqjypO
literal 0
HcmV?d00001
diff --git a/apps/dokploy/server/api/routers/compose.ts b/apps/dokploy/server/api/routers/compose.ts
index e9ccd33b2..441e1f80f 100644
--- a/apps/dokploy/server/api/routers/compose.ts
+++ b/apps/dokploy/server/api/routers/compose.ts
@@ -357,9 +357,9 @@ export const composeRouter = createTRPCRouter({
const generate = await loadTemplateModule(input.id as TemplatesKeys);
const admin = await findAdminById(ctx.user.adminId);
- let serverIp = admin.serverIp;
+ let serverIp = admin.serverIp || "127.0.0.1";
- if (!admin.serverIp) {
+ if (!serverIp) {
throw new TRPCError({
code: "NOT_FOUND",
message:
diff --git a/apps/dokploy/templates/lobe-chat/docker-compose.yml b/apps/dokploy/templates/lobe-chat/docker-compose.yml
new file mode 100644
index 000000000..676140903
--- /dev/null
+++ b/apps/dokploy/templates/lobe-chat/docker-compose.yml
@@ -0,0 +1,12 @@
+version: '3.8'
+
+services:
+ lobe-chat:
+ image: lobehub/lobe-chat:v1.26.1
+ restart: always
+ ports:
+ - 3210
+ environment:
+ OPENAI_API_KEY: sk-xxxx
+ OPENAI_PROXY_URL: https://api-proxy.com/v1
+ ACCESS_CODE: lobe66
\ No newline at end of file
diff --git a/apps/dokploy/templates/lobe-chat/index.ts b/apps/dokploy/templates/lobe-chat/index.ts
new file mode 100644
index 000000000..a07a4e09a
--- /dev/null
+++ b/apps/dokploy/templates/lobe-chat/index.ts
@@ -0,0 +1,22 @@
+import {
+ type DomainSchema,
+ type Schema,
+ type Template,
+ generateRandomDomain,
+} from "../utils";
+
+export function generate(schema: Schema): Template {
+ const mainDomain = generateRandomDomain(schema);
+
+ const domains: DomainSchema[] = [
+ {
+ host: mainDomain,
+ port: 3210,
+ serviceName: "lobe-chat",
+ },
+ ];
+
+ return {
+ domains,
+ };
+}
diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts
index 86eb99426..c43ffc200 100644
--- a/apps/dokploy/templates/templates.ts
+++ b/apps/dokploy/templates/templates.ts
@@ -569,6 +569,20 @@ export const templates: TemplateData[] = [
docs: "https://docs.stirlingpdf.com/",
},
tags: ["pdf", "tools"],
- load: () => import("./portainer/index").then((m) => m.generate),
+ load: () => import("./stirling/index").then((m) => m.generate),
+ },
+ {
+ id: "lobe-chat",
+ name: "Lobe Chat",
+ version: "v1.26.1",
+ description: "Lobe Chat - an open-source, modern-design AI chat framework.",
+ logo: "lobe-chat.png",
+ links: {
+ github: "https://github.com/lobehub/lobe-chat",
+ website: "https://chat-preview.lobehub.com/",
+ docs: "https://lobehub.com/docs/self-hosting/platform/docker-compose",
+ },
+ tags: ["IA", "chat"],
+ load: () => import("./lobe-chat/index").then((m) => m.generate),
},
];
From 985c7515b184ab0ede85308089c187092840dc79 Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 21:00:37 -0600
Subject: [PATCH 085/107] refactor(dokploy): add promotion codes
---
apps/dokploy/server/api/routers/stripe.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/apps/dokploy/server/api/routers/stripe.ts b/apps/dokploy/server/api/routers/stripe.ts
index ccfa162f1..0f794a5d8 100644
--- a/apps/dokploy/server/api/routers/stripe.ts
+++ b/apps/dokploy/server/api/routers/stripe.ts
@@ -80,6 +80,7 @@ export const stripeRouter = createTRPCRouter({
metadata: {
adminId: admin.adminId,
},
+ allow_promotion_codes: true,
success_url: `${WEBSITE_URL}/dashboard/settings/billing`,
cancel_url: `${WEBSITE_URL}/dashboard/settings/billing`,
});
From d571c6d9a21879de566f583ae7358f89ccbc814c Mon Sep 17 00:00:00 2001
From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Date: Sun, 27 Oct 2024 22:22:39 -0600
Subject: [PATCH 086/107] refactor(dokploy): remove docs & website
---
CONTRIBUTING.md | 27 +-
Dockerfile.docs | 35 -
Dockerfile.website | 35 -
apps/docs/.gitignore | 31 -
apps/docs/.map.ts | 4 -
apps/docs/README.md | 15 -
apps/docs/api.json | 11721 --------
apps/docs/app/[lang]/[[...slug]]/page.tsx | 104 -
apps/docs/app/[lang]/layout.tsx | 133 -
apps/docs/app/api/search/route.ts | 18 -
apps/docs/app/global.css | 27 -
apps/docs/app/icon.svg | 5 -
apps/docs/app/layout.config.tsx | 76 -
apps/docs/app/robots.ts | 11 -
apps/docs/app/sitemap.ts | 18 -
apps/docs/app/source.ts | 10 -
apps/docs/components/analytics/google.tsx | 17 -
apps/docs/components/analytics/index.ts | 30 -
apps/docs/content/docs/api/index.cn.mdx | 99 -
apps/docs/content/docs/api/index.mdx | 99 -
apps/docs/content/docs/api/meta.cn.json | 33 -
apps/docs/content/docs/api/meta.json | 38 -
.../api/reference-api/reference-admin.mdx | 565 -
.../reference-api/reference-application.mdx | 2970 --
.../docs/api/reference-api/reference-auth.mdx | 1487 -
.../api/reference-api/reference-backup.mdx | 887 -
.../api/reference-api/reference-bitbucket.mdx | 779 -
.../reference-api/reference-certificates.mdx | 433 -
.../api/reference-api/reference-cluster.mdx | 383 -
.../api/reference-api/reference-compose.mdx | 1911 --
.../reference-api/reference-deployment.mdx | 208 -
.../reference-api/reference-destination.mdx | 684 -
.../api/reference-api/reference-docker.mdx | 402 -
.../api/reference-api/reference-domain.mdx | 804 -
.../reference-api/reference-gitProvider.mdx | 203 -
.../api/reference-api/reference-github.mdx | 661 -
.../api/reference-api/reference-gitlab.mdx | 816 -
.../api/reference-api/reference-mariadb.mdx | 1285 -
.../api/reference-api/reference-mongo.mdx | 1261 -
.../api/reference-api/reference-mounts.mdx | 532 -
.../api/reference-api/reference-mysql.mdx | 1285 -
.../reference-api/reference-notification.mdx | 1957 --
.../docs/api/reference-api/reference-port.mdx | 453 -
.../api/reference-api/reference-postgres.mdx | 1269 -
.../api/reference-api/reference-project.mdx | 523 -
.../api/reference-api/reference-redirects.mdx | 451 -
.../api/reference-api/reference-redis.mdx | 1247 -
.../api/reference-api/reference-registry.mdx | 838 -
.../api/reference-api/reference-security.mdx | 441 -
.../api/reference-api/reference-settings.mdx | 2949 --
.../api/reference-api/reference-sshKey.mdx | 634 -
.../docs/api/reference-api/reference-user.mdx | 299 -
.../docs/cli/commands/application.cn.mdx | 18 -
.../content/docs/cli/commands/application.mdx | 20 -
.../docs/cli/commands/authentication.cn.mdx | 25 -
.../docs/cli/commands/authentication.mdx | 29 -
.../docs/cli/commands/databases.cn.mdx | 43 -
.../content/docs/cli/commands/databases.mdx | 45 -
.../content/docs/cli/commands/project.cn.mdx | 16 -
.../content/docs/cli/commands/project.mdx | 18 -
apps/docs/content/docs/cli/index.cn.mdx | 23 -
apps/docs/content/docs/cli/index.mdx | 23 -
apps/docs/content/docs/cli/meta.cn.json | 13 -
apps/docs/content/docs/cli/meta.json | 13 -
.../docs/core/application/advanced.cn.mdx | 166 -
.../docs/core/application/advanced.mdx | 173 -
.../docs/core/application/auto-deploy.cn.mdx | 85 -
.../docs/core/application/auto-deploy.mdx | 86 -
.../docs/core/application/build-type.cn.mdx | 32 -
.../docs/core/application/build-type.mdx | 34 -
.../docs/core/application/domains.cn.mdx | 46 -
.../content/docs/core/application/domains.mdx | 48 -
.../docs/core/application/overview.cn.mdx | 41 -
.../docs/core/application/overview.mdx | 58 -
.../docs/core/application/providers.cn.mdx | 42 -
.../docs/core/application/providers.mdx | 68 -
.../content/docs/core/cluster/overview.cn.mdx | 88 -
.../content/docs/core/cluster/overview.mdx | 98 -
.../docs/core/databases/backups.cn.mdx | 26 -
.../content/docs/core/databases/backups.mdx | 26 -
.../docs/core/databases/connection.cn.mdx | 32 -
.../docs/core/databases/connection.mdx | 33 -
.../docs/core/databases/overview.cn.mdx | 25 -
.../content/docs/core/databases/overview.mdx | 51 -
.../docs/core/deployments/oracle-cloud.cn.mdx | 32 -
.../docs/core/deployments/oracle-cloud.mdx | 31 -
.../core/docker-compose/auto-deploy.cn.mdx | 81 -
.../docs/core/docker-compose/auto-deploy.mdx | 84 -
.../docs/core/docker-compose/domains.cn.mdx | 192 -
.../docs/core/docker-compose/domains.mdx | 181 -
.../docs/core/docker-compose/example.cn.mdx | 107 -
.../docs/core/docker-compose/example.mdx | 110 -
.../docs/core/docker-compose/overview.cn.mdx | 76 -
.../docs/core/docker-compose/overview.mdx | 76 -
.../docs/core/docker-compose/providers.cn.mdx | 40 -
.../docs/core/docker-compose/providers.mdx | 66 -
.../content/docs/core/docker/overview.cn.mdx | 23 -
.../content/docs/core/docker/overview.mdx | 23 -
.../docs/core/domain/application-setup.cn.mdx | 38 -
.../docs/core/domain/application-setup.mdx | 29 -
.../docs/core/domain/certificates.cn.mdx | 59 -
.../content/docs/core/domain/certificates.mdx | 59 -
.../core/domain/docker-compose-setup.cn.mdx | 73 -
.../docs/core/domain/docker-compose-setup.mdx | 84 -
.../docs/core/domain/requirements.cn.mdx | 22 -
.../content/docs/core/domain/requirements.mdx | 24 -
.../docs/core/domain/web-domain-setup.cn.mdx | 47 -
.../docs/core/domain/web-domain-setup.mdx | 34 -
.../docs/core/examples/astro-ssr.cn.mdx | 29 -
.../content/docs/core/examples/astro-ssr.mdx | 29 -
.../content/docs/core/examples/astro.cn.mdx | 27 -
.../docs/content/docs/core/examples/astro.mdx | 27 -
.../content/docs/core/examples/lit.cn.mdx | 29 -
apps/docs/content/docs/core/examples/lit.mdx | 29 -
.../content/docs/core/examples/nestjs.cn.mdx | 22 -
.../content/docs/core/examples/nestjs.mdx | 21 -
.../content/docs/core/examples/nextjs.cn.mdx | 22 -
.../content/docs/core/examples/nextjs.mdx | 23 -
.../content/docs/core/examples/preact.cn.mdx | 28 -
.../content/docs/core/examples/preact.mdx | 29 -
.../content/docs/core/examples/qwik.cn.mdx | 28 -
apps/docs/content/docs/core/examples/qwik.mdx | 29 -
.../content/docs/core/examples/remix.cn.mdx | 22 -
.../docs/content/docs/core/examples/remix.mdx | 23 -
.../content/docs/core/examples/solidjs.cn.mdx | 28 -
.../content/docs/core/examples/solidjs.mdx | 29 -
.../content/docs/core/examples/svelte.cn.mdx | 28 -
.../content/docs/core/examples/svelte.mdx | 29 -
.../docs/core/examples/vite-react.cn.mdx | 28 -
.../content/docs/core/examples/vite-react.mdx | 29 -
.../content/docs/core/examples/vuejs.cn.mdx | 28 -
.../docs/content/docs/core/examples/vuejs.mdx | 28 -
.../content/docs/core/extra/api-reference.mdx | 22668 ----------------
.../content/docs/core/extra/comparison.cn.mdx | 21 -
.../content/docs/core/extra/comparison.mdx | 23 -
.../docs/core/get-started/architecture.cn.mdx | 28 -
.../docs/core/get-started/architecture.mdx | 29 -
.../docs/core/get-started/features.cn.mdx | 100 -
.../docs/core/get-started/features.mdx | 102 -
.../docs/core/get-started/installation.cn.mdx | 72 -
.../docs/core/get-started/installation.mdx | 80 -
.../docs/core/get-started/introduction.cn.mdx | 54 -
.../docs/core/get-started/introduction.mdx | 54 -
.../get-started/manual-installation.cn.mdx | 166 -
.../core/get-started/manual-installation.mdx | 165 -
.../core/get-started/reset-password.cn.mdx | 13 -
.../docs/core/get-started/reset-password.mdx | 41 -
.../docs/core/get-started/uninstall.cn.mdx | 32 -
.../docs/core/get-started/uninstall.mdx | 39 -
apps/docs/content/docs/core/meta.cn.json | 76 -
apps/docs/content/docs/core/meta.json | 79 -
.../docs/core/monitoring/overview.cn.mdx | 24 -
.../content/docs/core/monitoring/overview.mdx | 28 -
.../docs/core/multi-server/example.mdx | 117 -
.../docs/core/multi-server/overview.mdx | 29 -
.../docs/core/server/appearance.cn.mdx | 12 -
.../content/docs/core/server/appearance.mdx | 13 -
.../docs/core/server/certificates.cn.mdx | 24 -
.../content/docs/core/server/certificates.mdx | 25 -
.../content/docs/core/server/cluster.cn.mdx | 86 -
.../docs/content/docs/core/server/cluster.mdx | 86 -
.../content/docs/core/server/overview.cn.mdx | 108 -
.../content/docs/core/server/overview.mdx | 70 -
.../content/docs/core/server/profile.cn.mdx | 24 -
.../docs/content/docs/core/server/profile.mdx | 24 -
.../docs/core/server/s3-destination.cn.mdx | 29 -
.../docs/core/server/s3-destination.mdx | 32 -
.../content/docs/core/server/users.cn.mdx | 25 -
apps/docs/content/docs/core/server/users.mdx | 25 -
.../docs/core/templates/overview.cn.mdx | 39 -
.../content/docs/core/templates/overview.mdx | 44 -
.../content/docs/core/traefik/overview.cn.mdx | 27 -
.../content/docs/core/traefik/overview.mdx | 27 -
.../docs/core/troubleshooting/overview.cn.mdx | 6 -
.../docs/core/troubleshooting/overview.mdx | 92 -
apps/docs/generate-docs.mjs | 17 -
apps/docs/i18n.ts | 2 -
apps/docs/mdx-components.tsx | 19 -
apps/docs/middleware.ts | 14 -
apps/docs/next.config.mjs | 16 -
apps/docs/package.json | 31 -
apps/docs/postcss.config.js | 6 -
apps/docs/public/android-chrome-192x192.png | Bin 16133 -> 0 bytes
apps/docs/public/android-chrome-512x512.png | Bin 55906 -> 0 bytes
apps/docs/public/apple-touch-icon.png | Bin 14448 -> 0 bytes
apps/docs/public/assets/add-node.png | Bin 123273 -> 0 bytes
apps/docs/public/assets/architecture.png | Bin 55882 -> 0 bytes
apps/docs/public/assets/cli/token.png | Bin 153099 -> 0 bytes
apps/docs/public/assets/diagram.png | Bin 165238 -> 0 bytes
.../public/assets/dokploy-ssh-compose.png | Bin 179998 -> 0 bytes
apps/docs/public/assets/dokploy-ssh-key.png | Bin 182875 -> 0 bytes
apps/docs/public/assets/favicon.png | Bin 24940 -> 0 bytes
.../assets/file-mount-configuration.webp | Bin 20498 -> 0 bytes
apps/docs/public/assets/file-mount.png | Bin 61075 -> 0 bytes
.../public/assets/hostinger-add-sshkey.png | Bin 133141 -> 0 bytes
apps/docs/public/assets/houston.webp | Bin 98506 -> 0 bytes
.../app-setup-domain.png | Bin 50445 -> 0 bytes
.../application-domain-setup/domain-setup.png | Bin 151143 -> 0 bytes
.../public/assets/images/checks-passed.png | Bin 160724 -> 0 bytes
.../assets/images/cluster/application.png | Bin 101657 -> 0 bytes
.../public/assets/images/cluster/cluster.png | Bin 118464 -> 0 bytes
.../public/assets/images/cluster/nodes.png | Bin 137656 -> 0 bytes
.../public/assets/images/cluster/registry.png | Bin 125053 -> 0 bytes
.../assets/images/cluster/swarm-settings.png | Bin 169371 -> 0 bytes
.../assets/images/compose/application.png | Bin 133697 -> 0 bytes
.../public/assets/images/compose/domain.png | Bin 88877 -> 0 bytes
.../public/assets/images/compose/overview.png | Bin 153002 -> 0 bytes
.../public/assets/images/compose/setup.png | Bin 106849 -> 0 bytes
.../images/deployment/oracle/oracle-shape.png | Bin 257842 -> 0 bytes
apps/docs/public/assets/images/hero-dark.svg | 161 -
apps/docs/public/assets/images/hero-light.svg | 155 -
apps/docs/public/assets/images/setup.png | Bin 103260 -> 0 bytes
.../images/web-domain-setup/dokploy-setup.png | Bin 123828 -> 0 bytes
.../images/web-domain-setup/domain-setup.png | Bin 151143 -> 0 bytes
.../public/assets/multi-server-add-app.png | Bin 77609 -> 0 bytes
.../public/assets/multi-server-add-server.png | Bin 88966 -> 0 bytes
.../public/assets/multi-server-finish.png | Bin 262859 -> 0 bytes
.../public/assets/multi-server-overview.png | Bin 86785 -> 0 bytes
.../public/assets/multi-server-setup-2.png | Bin 241546 -> 0 bytes
.../public/assets/multi-server-setup-3.png | Bin 197623 -> 0 bytes
.../public/assets/multi-server-setup-app.png | Bin 109677 -> 0 bytes
.../docs/public/assets/multi-server-setup.png | Bin 115362 -> 0 bytes
apps/docs/public/assets/nodes.png | Bin 109347 -> 0 bytes
.../docs/public/assets/private-repository.png | Bin 150211 -> 0 bytes
apps/docs/public/assets/ssh-keys.png | Bin 130072 -> 0 bytes
apps/docs/public/assets/webhook-github.png | Bin 182644 -> 0 bytes
.../public/assets/webhook-url-compose.png | Bin 104082 -> 0 bytes
apps/docs/public/assets/webhook-url.png | Bin 101298 -> 0 bytes
apps/docs/public/favicon-16x16.png | Bin 730 -> 0 bytes
apps/docs/public/favicon-32x32.png | Bin 1889 -> 0 bytes
apps/docs/public/favicon.ico | Bin 15406 -> 0 bytes
apps/docs/public/logo.png | Bin 5407 -> 0 bytes
apps/docs/tailwind.config.js | 31 -
apps/docs/tsconfig.json | 29 -
apps/docs/utils/metadata.ts | 6 -
apps/website/.gitignore | 37 -
apps/website/README.md | 15 -
apps/website/app/[locale]/[...rest]/page.tsx | 5 -
apps/website/app/[locale]/layout.tsx | 106 -
apps/website/app/[locale]/not-found.tsx | 5 -
apps/website/app/[locale]/page.tsx | 20 -
apps/website/app/[locale]/pricing/page.tsx | 9 -
apps/website/app/[locale]/privacy/page.tsx | 111 -
apps/website/app/[locale]/terms/page.tsx | 205 -
apps/website/app/icon.svg | 5 -
apps/website/app/layout.tsx | 11 -
apps/website/app/not-found.tsx | 13 -
apps/website/app/robots.ts | 11 -
apps/website/app/sitemap.ts | 12 -
apps/website/components.json | 17 -
apps/website/components/CallToAction.tsx | 56 -
apps/website/components/Container.tsx | 13 -
apps/website/components/Faqs.tsx | 94 -
apps/website/components/Footer.tsx | 122 -
apps/website/components/Header.tsx | 186 -
apps/website/components/Hero.tsx | 398 -
apps/website/components/NavLink.tsx | 33 -
apps/website/components/PrimaryFeatures.tsx | 194 -
apps/website/components/SecondaryFeatures.tsx | 404 -
apps/website/components/SlimLayout.tsx | 23 -
apps/website/components/Testimonials.tsx | 134 -
apps/website/components/analitycs/google.tsx | 17 -
apps/website/components/analitycs/index.ts | 30 -
apps/website/components/pricing.tsx | 505 -
apps/website/components/shared/Logo.tsx | 25 -
.../components/ui/animated-shiny-text.tsx | 40 -
apps/website/components/ui/badge.tsx | 36 -
apps/website/components/ui/button.tsx | 59 -
.../components/ui/hover-border-gradient.tsx | 100 -
apps/website/components/ui/input.tsx | 69 -
apps/website/components/ui/select.tsx | 160 -
apps/website/components/ui/switch.tsx | 29 -
apps/website/components/ui/tabs.tsx | 53 -
apps/website/i18n/request.tsx | 12 -
apps/website/i18n/routing.ts | 16 -
apps/website/lib/utils.ts | 8 -
apps/website/locales/en.json | 176 -
apps/website/locales/zh-Hans.json | 176 -
apps/website/middleware.ts | 9 -
apps/website/next.config.js | 15 -
apps/website/package.json | 46 -
apps/website/pnpm-lock.yaml | 3168 ---
apps/website/postcss.config.js | 6 -
apps/website/prettier.config.js | 8 -
apps/website/public/banner.webp | Bin 38446 -> 0 bytes
apps/website/public/canary.sh | 139 -
apps/website/public/feature.sh | 139 -
apps/website/public/install.sh | 136 -
apps/website/public/og.png | Bin 453494 -> 0 bytes
apps/website/public/primary/applications.png | Bin 81184 -> 0 bytes
apps/website/public/primary/backups.png | Bin 96090 -> 0 bytes
apps/website/public/primary/compose.png | Bin 152366 -> 0 bytes
apps/website/public/primary/monitoring.png | Bin 141093 -> 0 bytes
apps/website/public/primary/multinode.png | Bin 119837 -> 0 bytes
apps/website/public/primary/projects.png | Bin 115931 -> 0 bytes
apps/website/public/secondary/templates.png | Bin 121247 -> 0 bytes
apps/website/public/secondary/terminal.png | Bin 122953 -> 0 bytes
apps/website/public/secondary/traefik.png | Bin 108849 -> 0 bytes
apps/website/public/secondary/users.png | Bin 111333 -> 0 bytes
apps/website/styles/tailwind.css | 52 -
apps/website/tailwind.config.ts | 117 -
apps/website/tsconfig.json | 28 -
pnpm-lock.yaml | 4644 ----
pnpm-workspace.yaml | 2 -
304 files changed, 2 insertions(+), 82584 deletions(-)
delete mode 100644 Dockerfile.docs
delete mode 100644 Dockerfile.website
delete mode 100644 apps/docs/.gitignore
delete mode 100644 apps/docs/.map.ts
delete mode 100644 apps/docs/README.md
delete mode 100644 apps/docs/api.json
delete mode 100644 apps/docs/app/[lang]/[[...slug]]/page.tsx
delete mode 100644 apps/docs/app/[lang]/layout.tsx
delete mode 100644 apps/docs/app/api/search/route.ts
delete mode 100644 apps/docs/app/global.css
delete mode 100644 apps/docs/app/icon.svg
delete mode 100644 apps/docs/app/layout.config.tsx
delete mode 100644 apps/docs/app/robots.ts
delete mode 100644 apps/docs/app/sitemap.ts
delete mode 100644 apps/docs/app/source.ts
delete mode 100644 apps/docs/components/analytics/google.tsx
delete mode 100644 apps/docs/components/analytics/index.ts
delete mode 100644 apps/docs/content/docs/api/index.cn.mdx
delete mode 100644 apps/docs/content/docs/api/index.mdx
delete mode 100644 apps/docs/content/docs/api/meta.cn.json
delete mode 100644 apps/docs/content/docs/api/meta.json
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-admin.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-application.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-auth.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-backup.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-bitbucket.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-certificates.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-cluster.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-compose.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-deployment.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-destination.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-docker.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-domain.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-gitProvider.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-github.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-gitlab.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-mariadb.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-mongo.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-mounts.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-mysql.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-notification.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-port.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-postgres.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-project.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-redirects.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-redis.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-registry.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-security.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-settings.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-sshKey.mdx
delete mode 100644 apps/docs/content/docs/api/reference-api/reference-user.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/application.cn.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/application.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/authentication.cn.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/authentication.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/databases.cn.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/databases.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/project.cn.mdx
delete mode 100644 apps/docs/content/docs/cli/commands/project.mdx
delete mode 100644 apps/docs/content/docs/cli/index.cn.mdx
delete mode 100644 apps/docs/content/docs/cli/index.mdx
delete mode 100644 apps/docs/content/docs/cli/meta.cn.json
delete mode 100644 apps/docs/content/docs/cli/meta.json
delete mode 100644 apps/docs/content/docs/core/application/advanced.cn.mdx
delete mode 100644 apps/docs/content/docs/core/application/advanced.mdx
delete mode 100644 apps/docs/content/docs/core/application/auto-deploy.cn.mdx
delete mode 100644 apps/docs/content/docs/core/application/auto-deploy.mdx
delete mode 100644 apps/docs/content/docs/core/application/build-type.cn.mdx
delete mode 100644 apps/docs/content/docs/core/application/build-type.mdx
delete mode 100644 apps/docs/content/docs/core/application/domains.cn.mdx
delete mode 100644 apps/docs/content/docs/core/application/domains.mdx
delete mode 100644 apps/docs/content/docs/core/application/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/application/overview.mdx
delete mode 100644 apps/docs/content/docs/core/application/providers.cn.mdx
delete mode 100644 apps/docs/content/docs/core/application/providers.mdx
delete mode 100644 apps/docs/content/docs/core/cluster/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/cluster/overview.mdx
delete mode 100644 apps/docs/content/docs/core/databases/backups.cn.mdx
delete mode 100644 apps/docs/content/docs/core/databases/backups.mdx
delete mode 100644 apps/docs/content/docs/core/databases/connection.cn.mdx
delete mode 100644 apps/docs/content/docs/core/databases/connection.mdx
delete mode 100644 apps/docs/content/docs/core/databases/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/databases/overview.mdx
delete mode 100644 apps/docs/content/docs/core/deployments/oracle-cloud.cn.mdx
delete mode 100644 apps/docs/content/docs/core/deployments/oracle-cloud.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/auto-deploy.cn.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/auto-deploy.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/domains.cn.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/domains.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/example.cn.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/example.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/overview.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/providers.cn.mdx
delete mode 100644 apps/docs/content/docs/core/docker-compose/providers.mdx
delete mode 100644 apps/docs/content/docs/core/docker/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/docker/overview.mdx
delete mode 100644 apps/docs/content/docs/core/domain/application-setup.cn.mdx
delete mode 100644 apps/docs/content/docs/core/domain/application-setup.mdx
delete mode 100644 apps/docs/content/docs/core/domain/certificates.cn.mdx
delete mode 100644 apps/docs/content/docs/core/domain/certificates.mdx
delete mode 100644 apps/docs/content/docs/core/domain/docker-compose-setup.cn.mdx
delete mode 100644 apps/docs/content/docs/core/domain/docker-compose-setup.mdx
delete mode 100644 apps/docs/content/docs/core/domain/requirements.cn.mdx
delete mode 100644 apps/docs/content/docs/core/domain/requirements.mdx
delete mode 100644 apps/docs/content/docs/core/domain/web-domain-setup.cn.mdx
delete mode 100644 apps/docs/content/docs/core/domain/web-domain-setup.mdx
delete mode 100644 apps/docs/content/docs/core/examples/astro-ssr.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/astro-ssr.mdx
delete mode 100644 apps/docs/content/docs/core/examples/astro.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/astro.mdx
delete mode 100644 apps/docs/content/docs/core/examples/lit.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/lit.mdx
delete mode 100644 apps/docs/content/docs/core/examples/nestjs.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/nestjs.mdx
delete mode 100644 apps/docs/content/docs/core/examples/nextjs.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/nextjs.mdx
delete mode 100644 apps/docs/content/docs/core/examples/preact.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/preact.mdx
delete mode 100644 apps/docs/content/docs/core/examples/qwik.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/qwik.mdx
delete mode 100644 apps/docs/content/docs/core/examples/remix.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/remix.mdx
delete mode 100644 apps/docs/content/docs/core/examples/solidjs.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/solidjs.mdx
delete mode 100644 apps/docs/content/docs/core/examples/svelte.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/svelte.mdx
delete mode 100644 apps/docs/content/docs/core/examples/vite-react.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/vite-react.mdx
delete mode 100644 apps/docs/content/docs/core/examples/vuejs.cn.mdx
delete mode 100644 apps/docs/content/docs/core/examples/vuejs.mdx
delete mode 100644 apps/docs/content/docs/core/extra/api-reference.mdx
delete mode 100644 apps/docs/content/docs/core/extra/comparison.cn.mdx
delete mode 100644 apps/docs/content/docs/core/extra/comparison.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/architecture.cn.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/architecture.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/features.cn.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/features.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/installation.cn.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/installation.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/introduction.cn.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/introduction.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/manual-installation.cn.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/manual-installation.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/reset-password.cn.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/reset-password.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/uninstall.cn.mdx
delete mode 100644 apps/docs/content/docs/core/get-started/uninstall.mdx
delete mode 100644 apps/docs/content/docs/core/meta.cn.json
delete mode 100644 apps/docs/content/docs/core/meta.json
delete mode 100644 apps/docs/content/docs/core/monitoring/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/monitoring/overview.mdx
delete mode 100644 apps/docs/content/docs/core/multi-server/example.mdx
delete mode 100644 apps/docs/content/docs/core/multi-server/overview.mdx
delete mode 100644 apps/docs/content/docs/core/server/appearance.cn.mdx
delete mode 100644 apps/docs/content/docs/core/server/appearance.mdx
delete mode 100644 apps/docs/content/docs/core/server/certificates.cn.mdx
delete mode 100644 apps/docs/content/docs/core/server/certificates.mdx
delete mode 100644 apps/docs/content/docs/core/server/cluster.cn.mdx
delete mode 100644 apps/docs/content/docs/core/server/cluster.mdx
delete mode 100644 apps/docs/content/docs/core/server/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/server/overview.mdx
delete mode 100644 apps/docs/content/docs/core/server/profile.cn.mdx
delete mode 100644 apps/docs/content/docs/core/server/profile.mdx
delete mode 100644 apps/docs/content/docs/core/server/s3-destination.cn.mdx
delete mode 100644 apps/docs/content/docs/core/server/s3-destination.mdx
delete mode 100644 apps/docs/content/docs/core/server/users.cn.mdx
delete mode 100644 apps/docs/content/docs/core/server/users.mdx
delete mode 100644 apps/docs/content/docs/core/templates/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/templates/overview.mdx
delete mode 100644 apps/docs/content/docs/core/traefik/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/traefik/overview.mdx
delete mode 100644 apps/docs/content/docs/core/troubleshooting/overview.cn.mdx
delete mode 100644 apps/docs/content/docs/core/troubleshooting/overview.mdx
delete mode 100644 apps/docs/generate-docs.mjs
delete mode 100644 apps/docs/i18n.ts
delete mode 100644 apps/docs/mdx-components.tsx
delete mode 100644 apps/docs/middleware.ts
delete mode 100644 apps/docs/next.config.mjs
delete mode 100644 apps/docs/package.json
delete mode 100644 apps/docs/postcss.config.js
delete mode 100644 apps/docs/public/android-chrome-192x192.png
delete mode 100644 apps/docs/public/android-chrome-512x512.png
delete mode 100644 apps/docs/public/apple-touch-icon.png
delete mode 100644 apps/docs/public/assets/add-node.png
delete mode 100644 apps/docs/public/assets/architecture.png
delete mode 100644 apps/docs/public/assets/cli/token.png
delete mode 100644 apps/docs/public/assets/diagram.png
delete mode 100644 apps/docs/public/assets/dokploy-ssh-compose.png
delete mode 100644 apps/docs/public/assets/dokploy-ssh-key.png
delete mode 100644 apps/docs/public/assets/favicon.png
delete mode 100644 apps/docs/public/assets/file-mount-configuration.webp
delete mode 100644 apps/docs/public/assets/file-mount.png
delete mode 100644 apps/docs/public/assets/hostinger-add-sshkey.png
delete mode 100644 apps/docs/public/assets/houston.webp
delete mode 100644 apps/docs/public/assets/images/application-domain-setup/app-setup-domain.png
delete mode 100644 apps/docs/public/assets/images/application-domain-setup/domain-setup.png
delete mode 100644 apps/docs/public/assets/images/checks-passed.png
delete mode 100644 apps/docs/public/assets/images/cluster/application.png
delete mode 100644 apps/docs/public/assets/images/cluster/cluster.png
delete mode 100644 apps/docs/public/assets/images/cluster/nodes.png
delete mode 100644 apps/docs/public/assets/images/cluster/registry.png
delete mode 100644 apps/docs/public/assets/images/cluster/swarm-settings.png
delete mode 100644 apps/docs/public/assets/images/compose/application.png
delete mode 100644 apps/docs/public/assets/images/compose/domain.png
delete mode 100644 apps/docs/public/assets/images/compose/overview.png
delete mode 100644 apps/docs/public/assets/images/compose/setup.png
delete mode 100644 apps/docs/public/assets/images/deployment/oracle/oracle-shape.png
delete mode 100644 apps/docs/public/assets/images/hero-dark.svg
delete mode 100644 apps/docs/public/assets/images/hero-light.svg
delete mode 100644 apps/docs/public/assets/images/setup.png
delete mode 100644 apps/docs/public/assets/images/web-domain-setup/dokploy-setup.png
delete mode 100644 apps/docs/public/assets/images/web-domain-setup/domain-setup.png
delete mode 100644 apps/docs/public/assets/multi-server-add-app.png
delete mode 100644 apps/docs/public/assets/multi-server-add-server.png
delete mode 100644 apps/docs/public/assets/multi-server-finish.png
delete mode 100644 apps/docs/public/assets/multi-server-overview.png
delete mode 100644 apps/docs/public/assets/multi-server-setup-2.png
delete mode 100644 apps/docs/public/assets/multi-server-setup-3.png
delete mode 100644 apps/docs/public/assets/multi-server-setup-app.png
delete mode 100644 apps/docs/public/assets/multi-server-setup.png
delete mode 100644 apps/docs/public/assets/nodes.png
delete mode 100644 apps/docs/public/assets/private-repository.png
delete mode 100644 apps/docs/public/assets/ssh-keys.png
delete mode 100644 apps/docs/public/assets/webhook-github.png
delete mode 100644 apps/docs/public/assets/webhook-url-compose.png
delete mode 100644 apps/docs/public/assets/webhook-url.png
delete mode 100644 apps/docs/public/favicon-16x16.png
delete mode 100644 apps/docs/public/favicon-32x32.png
delete mode 100644 apps/docs/public/favicon.ico
delete mode 100644 apps/docs/public/logo.png
delete mode 100644 apps/docs/tailwind.config.js
delete mode 100644 apps/docs/tsconfig.json
delete mode 100644 apps/docs/utils/metadata.ts
delete mode 100644 apps/website/.gitignore
delete mode 100644 apps/website/README.md
delete mode 100644 apps/website/app/[locale]/[...rest]/page.tsx
delete mode 100644 apps/website/app/[locale]/layout.tsx
delete mode 100644 apps/website/app/[locale]/not-found.tsx
delete mode 100644 apps/website/app/[locale]/page.tsx
delete mode 100644 apps/website/app/[locale]/pricing/page.tsx
delete mode 100644 apps/website/app/[locale]/privacy/page.tsx
delete mode 100644 apps/website/app/[locale]/terms/page.tsx
delete mode 100644 apps/website/app/icon.svg
delete mode 100644 apps/website/app/layout.tsx
delete mode 100644 apps/website/app/not-found.tsx
delete mode 100644 apps/website/app/robots.ts
delete mode 100644 apps/website/app/sitemap.ts
delete mode 100644 apps/website/components.json
delete mode 100644 apps/website/components/CallToAction.tsx
delete mode 100644 apps/website/components/Container.tsx
delete mode 100644 apps/website/components/Faqs.tsx
delete mode 100644 apps/website/components/Footer.tsx
delete mode 100644 apps/website/components/Header.tsx
delete mode 100644 apps/website/components/Hero.tsx
delete mode 100644 apps/website/components/NavLink.tsx
delete mode 100644 apps/website/components/PrimaryFeatures.tsx
delete mode 100644 apps/website/components/SecondaryFeatures.tsx
delete mode 100644 apps/website/components/SlimLayout.tsx
delete mode 100644 apps/website/components/Testimonials.tsx
delete mode 100644 apps/website/components/analitycs/google.tsx
delete mode 100644 apps/website/components/analitycs/index.ts
delete mode 100644 apps/website/components/pricing.tsx
delete mode 100644 apps/website/components/shared/Logo.tsx
delete mode 100644 apps/website/components/ui/animated-shiny-text.tsx
delete mode 100644 apps/website/components/ui/badge.tsx
delete mode 100644 apps/website/components/ui/button.tsx
delete mode 100644 apps/website/components/ui/hover-border-gradient.tsx
delete mode 100644 apps/website/components/ui/input.tsx
delete mode 100644 apps/website/components/ui/select.tsx
delete mode 100644 apps/website/components/ui/switch.tsx
delete mode 100644 apps/website/components/ui/tabs.tsx
delete mode 100644 apps/website/i18n/request.tsx
delete mode 100644 apps/website/i18n/routing.ts
delete mode 100644 apps/website/lib/utils.ts
delete mode 100644 apps/website/locales/en.json
delete mode 100644 apps/website/locales/zh-Hans.json
delete mode 100644 apps/website/middleware.ts
delete mode 100644 apps/website/next.config.js
delete mode 100644 apps/website/package.json
delete mode 100644 apps/website/pnpm-lock.yaml
delete mode 100644 apps/website/postcss.config.js
delete mode 100644 apps/website/prettier.config.js
delete mode 100644 apps/website/public/banner.webp
delete mode 100644 apps/website/public/canary.sh
delete mode 100644 apps/website/public/feature.sh
delete mode 100644 apps/website/public/install.sh
delete mode 100644 apps/website/public/og.png
delete mode 100644 apps/website/public/primary/applications.png
delete mode 100644 apps/website/public/primary/backups.png
delete mode 100644 apps/website/public/primary/compose.png
delete mode 100644 apps/website/public/primary/monitoring.png
delete mode 100644 apps/website/public/primary/multinode.png
delete mode 100644 apps/website/public/primary/projects.png
delete mode 100644 apps/website/public/secondary/templates.png
delete mode 100644 apps/website/public/secondary/terminal.png
delete mode 100644 apps/website/public/secondary/traefik.png
delete mode 100644 apps/website/public/secondary/users.png
delete mode 100644 apps/website/styles/tailwind.css
delete mode 100644 apps/website/tailwind.config.ts
delete mode 100644 apps/website/tsconfig.json
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 53b8452c5..05256d571 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -242,30 +242,7 @@ export function generate(schema: Schema): Template {
- If you want to show a domain in the UI, please add the prefix \_HOST at the end of the variable name.
- Test first on a vps or a server to make sure the template works.
-## Docs
+## Docs & Website
-To run the docs locally, run the following command:
+To contribute to the Dokploy docs or website, please go to this [repository](https://github.com/Dokploy/website).
-```bash
-pnpm run docs:dev
-```
-
-To build the docs, run the following command:
-
-```bash
-pnpm run docs:build
-```
-
-## Website
-
-To run the website locally, run the following command:
-
-```bash
-pnpm run website:dev
-```
-
-To build the website, run the following command:
-
-```bash
-pnpm run website:build
-```
diff --git a/Dockerfile.docs b/Dockerfile.docs
deleted file mode 100644
index 71b790ec3..000000000
--- a/Dockerfile.docs
+++ /dev/null
@@ -1,35 +0,0 @@
-FROM node:18-alpine AS base
-ENV PNPM_HOME="/pnpm"
-ENV PATH="$PNPM_HOME:$PATH"
-RUN corepack enable
-
-FROM base AS build
-COPY . /usr/src/app
-WORKDIR /usr/src/app
-
-
-# Install dependencies
-RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --filter=./apps/docs --frozen-lockfile
-
-# Deploy only the dokploy app
-
-ENV NODE_ENV=production
-RUN pnpm --filter=./apps/docs run build
-RUN pnpm --filter=./apps/docs --prod deploy /prod/docs
-
-RUN cp -R /usr/src/app/apps/docs/.next /prod/docs/.next
-
-FROM base AS dokploy
-WORKDIR /app
-
-# Set production
-ENV NODE_ENV=production
-
-# Copy only the necessary files
-COPY --from=build /prod/docs/.next ./.next
-COPY --from=build /prod/docs/public ./public
-COPY --from=build /prod/docs/package.json ./package.json
-COPY --from=build /prod/docs/node_modules ./node_modules
-
-EXPOSE 3000
-CMD HOSTNAME=0.0.0.0 && pnpm start
\ No newline at end of file
diff --git a/Dockerfile.website b/Dockerfile.website
deleted file mode 100644
index 9932f5271..000000000
--- a/Dockerfile.website
+++ /dev/null
@@ -1,35 +0,0 @@
-FROM node:18-alpine AS base
-ENV PNPM_HOME="/pnpm"
-ENV PATH="$PNPM_HOME:$PATH"
-RUN corepack enable
-
-FROM base AS build
-COPY . /usr/src/app
-WORKDIR /usr/src/app
-
-
-# Install dependencies
-RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --filter=./apps/website --frozen-lockfile
-
-# Deploy only the dokploy app
-
-ENV NODE_ENV=production
-RUN pnpm --filter=./apps/website run build
-RUN pnpm --filter=./apps/website --prod deploy /prod/website
-
-RUN cp -R /usr/src/app/apps/website/.next /prod/website/.next
-
-FROM base AS dokploy
-WORKDIR /app
-
-# Set production
-ENV NODE_ENV=production
-
-# Copy only the necessary files
-COPY --from=build /prod/website/.next ./.next
-COPY --from=build /prod/website/public ./public
-COPY --from=build /prod/website/package.json ./package.json
-COPY --from=build /prod/website/node_modules ./node_modules
-
-EXPOSE 3000
-CMD HOSTNAME=0.0.0.0 && pnpm start
\ No newline at end of file
diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore
deleted file mode 100644
index 0d5488121..000000000
--- a/apps/docs/.gitignore
+++ /dev/null
@@ -1,31 +0,0 @@
-# deps
-/node_modules
-
-# generated content
-.contentlayer
-
-# test & build
-/coverage
-/.next/
-/out/
-/build
-*.tsbuildinfo
-
-# bun
-bun.lockb
-
-# misc
-.DS_Store
-*.pem
-/.pnp
-.pnp.js
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-.idea/*
-.idea
-
-# others
-.env*.local
-.vercel
-next-env.d.ts
diff --git a/apps/docs/.map.ts b/apps/docs/.map.ts
deleted file mode 100644
index bc9204924..000000000
--- a/apps/docs/.map.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-/** Auto-generated **/
-declare const map: Record;
-
-export { map };
diff --git a/apps/docs/README.md b/apps/docs/README.md
deleted file mode 100644
index e3ee85e3b..000000000
--- a/apps/docs/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Docs
-
-Dokploy Documentation
-
-Run development server:
-
-```bash
-npm run dev
-# or
-pnpm dev
-# or
-yarn dev
-```
-
-Open http://localhost:3000 with your browser to see the result.
diff --git a/apps/docs/api.json b/apps/docs/api.json
deleted file mode 100644
index 074538029..000000000
--- a/apps/docs/api.json
+++ /dev/null
@@ -1,11721 +0,0 @@
-{
- "openapi": "3.0.3",
- "info": {
- "title": "Dokploy API",
- "description": "Endpoints for dokploy",
- "version": "v0.7.3"
- },
- "servers": [
- {
- "url": "http://localhost:3000/api"
- }
- ],
- "paths": {
- "/admin.one": {
- "get": {
- "operationId": "admin-one",
- "tags": ["admin"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/admin.createUserInvitation": {
- "post": {
- "operationId": "admin-createUserInvitation",
- "tags": ["admin"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "email": {
- "type": "string",
- "format": "email"
- }
- },
- "required": ["email"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/admin.removeUser": {
- "post": {
- "operationId": "admin-removeUser",
- "tags": ["admin"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "authId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["authId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/admin.getUserByToken": {
- "get": {
- "operationId": "admin-getUserByToken",
- "tags": ["admin"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "token",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/admin.assignPermissions": {
- "post": {
- "operationId": "admin-assignPermissions",
- "tags": ["admin"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "userId": {
- "type": "string",
- "minLength": 1
- },
- "canCreateProjects": {
- "type": "boolean"
- },
- "canCreateServices": {
- "type": "boolean"
- },
- "canDeleteProjects": {
- "type": "boolean"
- },
- "canDeleteServices": {
- "type": "boolean"
- },
- "accesedProjects": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "accesedServices": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "canAccessToTraefikFiles": {
- "type": "boolean"
- },
- "canAccessToDocker": {
- "type": "boolean"
- },
- "canAccessToAPI": {
- "type": "boolean"
- },
- "canAccessToSSHKeys": {
- "type": "boolean"
- },
- "canAccessToGitProviders": {
- "type": "boolean"
- }
- },
- "required": [
- "userId",
- "canCreateProjects",
- "canCreateServices",
- "canDeleteProjects",
- "canDeleteServices",
- "accesedProjects",
- "accesedServices",
- "canAccessToTraefikFiles",
- "canAccessToDocker",
- "canAccessToAPI",
- "canAccessToSSHKeys",
- "canAccessToGitProviders"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainers": {
- "get": {
- "operationId": "docker-getContainers",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getConfig": {
- "get": {
- "operationId": "docker-getConfig",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "containerId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppNameMatch": {
- "get": {
- "operationId": "docker-getContainersByAppNameMatch",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appType",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "type": "string",
- "enum": ["stack"]
- },
- {
- "type": "string",
- "enum": ["docker-compose"]
- }
- ]
- }
- },
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/docker.getContainersByAppLabel": {
- "get": {
- "operationId": "docker-getContainersByAppLabel",
- "tags": ["docker"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.createAdmin": {
- "post": {
- "operationId": "auth-createAdmin",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "email": {
- "type": "string",
- "format": "email"
- },
- "password": {
- "type": "string",
- "minLength": 8
- }
- },
- "required": ["email", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.createUser": {
- "post": {
- "operationId": "auth-createUser",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "password": {
- "type": "string",
- "minLength": 8
- },
- "id": {
- "type": "string"
- },
- "token": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["password", "id", "token"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.login": {
- "post": {
- "operationId": "auth-login",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "email": {
- "type": "string",
- "format": "email"
- },
- "password": {
- "type": "string",
- "minLength": 8
- }
- },
- "required": ["email", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.get": {
- "get": {
- "operationId": "auth-get",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.logout": {
- "post": {
- "operationId": "auth-logout",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.update": {
- "post": {
- "operationId": "auth-update",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "email": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "rol": {
- "type": "string",
- "enum": ["admin", "user"]
- },
- "image": {
- "type": "string"
- },
- "secret": {
- "type": "string",
- "nullable": true
- },
- "token": {
- "type": "string",
- "nullable": true
- },
- "is2FAEnabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": ["email", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.generateToken": {
- "post": {
- "operationId": "auth-generateToken",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.one": {
- "get": {
- "operationId": "auth-one",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.updateByAdmin": {
- "post": {
- "operationId": "auth-updateByAdmin",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "id": {
- "type": "string",
- "minLength": 1
- },
- "email": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "rol": {
- "type": "string",
- "enum": ["admin", "user"]
- },
- "image": {
- "type": "string"
- },
- "secret": {
- "type": "string",
- "nullable": true
- },
- "token": {
- "type": "string",
- "nullable": true
- },
- "is2FAEnabled": {
- "type": "boolean"
- },
- "createdAt": {
- "type": "string"
- }
- },
- "required": ["id", "email", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.generate2FASecret": {
- "get": {
- "operationId": "auth-generate2FASecret",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.verify2FASetup": {
- "post": {
- "operationId": "auth-verify2FASetup",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "pin": {
- "type": "string",
- "minLength": 6
- },
- "secret": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["pin", "secret"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.verifyLogin2FA": {
- "post": {
- "operationId": "auth-verifyLogin2FA",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "pin": {
- "type": "string",
- "minLength": 6
- },
- "id": {
- "type": "string"
- }
- },
- "required": ["pin", "id"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.disable2FA": {
- "post": {
- "operationId": "auth-disable2FA",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/auth.verifyToken": {
- "post": {
- "operationId": "auth-verifyToken",
- "tags": ["auth"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.create": {
- "post": {
- "operationId": "project-create",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.one": {
- "get": {
- "operationId": "project-one",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "projectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.all": {
- "get": {
- "operationId": "project-all",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.remove": {
- "post": {
- "operationId": "project-remove",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["projectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/project.update": {
- "post": {
- "operationId": "project-update",
- "tags": ["project"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "projectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["name", "projectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.create": {
- "post": {
- "operationId": "application-create",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["name", "projectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.one": {
- "get": {
- "operationId": "application-one",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.reload": {
- "post": {
- "operationId": "application-reload",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["appName", "applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.delete": {
- "post": {
- "operationId": "application-delete",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.stop": {
- "post": {
- "operationId": "application-stop",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.start": {
- "post": {
- "operationId": "application-start",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.redeploy": {
- "post": {
- "operationId": "application-redeploy",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveEnvironment": {
- "post": {
- "operationId": "application-saveEnvironment",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBuildType": {
- "post": {
- "operationId": "application-saveBuildType",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static"
- ]
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId", "buildType", "dockerContextPath"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGithubProvider": {
- "post": {
- "operationId": "application-saveGithubProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "githubId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId", "owner", "githubId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitlabProvider": {
- "post": {
- "operationId": "application-saveGitlabProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "applicationId",
- "gitlabBranch",
- "gitlabBuildPath",
- "gitlabOwner",
- "gitlabRepository",
- "gitlabId",
- "gitlabProjectId",
- "gitlabPathNamespace"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveBitbucketProvider": {
- "post": {
- "operationId": "application-saveBitbucketProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "bitbucketBranch",
- "bitbucketBuildPath",
- "bitbucketOwner",
- "bitbucketRepository",
- "bitbucketId",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveDockerProvider": {
- "post": {
- "operationId": "application-saveDockerProvider",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.saveGitProdiver": {
- "post": {
- "operationId": "application-saveGitProdiver",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "applicationId": {
- "type": "string"
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.markRunning": {
- "post": {
- "operationId": "application-markRunning",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.update": {
- "post": {
- "operationId": "application-update",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "buildArgs": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "number",
- "nullable": true
- },
- "cpuReservation": {
- "type": "number",
- "nullable": true
- },
- "cpuLimit": {
- "type": "number",
- "nullable": true
- },
- "title": {
- "type": "string",
- "nullable": true
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "subtitle": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": ["github", "docker", "git"]
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "buildPath": {
- "type": "string",
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabBuildPath": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBuildPath": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "nullable": true
- },
- "password": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitBuildPath": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "dockerfile": {
- "type": "string",
- "nullable": true
- },
- "dockerContextPath": {
- "type": "string",
- "nullable": true
- },
- "dropBuildPath": {
- "type": "string",
- "nullable": true
- },
- "healthCheckSwarm": {
- "type": "object",
- "properties": {
- "Test": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Interval": {
- "type": "number"
- },
- "Timeout": {
- "type": "number"
- },
- "StartPeriod": {
- "type": "number"
- },
- "Retries": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "restartPolicySwarm": {
- "type": "object",
- "properties": {
- "Condition": {
- "type": "string"
- },
- "Delay": {
- "type": "number"
- },
- "MaxAttempts": {
- "type": "number"
- },
- "Window": {
- "type": "number"
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "placementSwarm": {
- "type": "object",
- "properties": {
- "Constraints": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "Preferences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Spread": {
- "type": "object",
- "properties": {
- "SpreadDescriptor": {
- "type": "string"
- }
- },
- "required": ["SpreadDescriptor"],
- "additionalProperties": false
- }
- },
- "required": ["Spread"],
- "additionalProperties": false
- }
- },
- "MaxReplicas": {
- "type": "number"
- },
- "Platforms": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Architecture": {
- "type": "string"
- },
- "OS": {
- "type": "string"
- }
- },
- "required": ["Architecture", "OS"],
- "additionalProperties": false
- }
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "updateConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "rollbackConfigSwarm": {
- "type": "object",
- "properties": {
- "Parallelism": {
- "type": "number"
- },
- "Delay": {
- "type": "number"
- },
- "FailureAction": {
- "type": "string"
- },
- "Monitor": {
- "type": "number"
- },
- "MaxFailureRatio": {
- "type": "number"
- },
- "Order": {
- "type": "string"
- }
- },
- "required": ["Parallelism", "Order"],
- "additionalProperties": false,
- "nullable": true
- },
- "modeSwarm": {
- "type": "object",
- "properties": {
- "Replicated": {
- "type": "object",
- "properties": {
- "Replicas": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "Global": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- },
- "ReplicatedJob": {
- "type": "object",
- "properties": {
- "MaxConcurrent": {
- "type": "number"
- },
- "TotalCompletions": {
- "type": "number"
- }
- },
- "additionalProperties": false
- },
- "GlobalJob": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false,
- "nullable": true
- },
- "labelsSwarm": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "nullable": true
- },
- "networkSwarm": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "Target": {
- "type": "string"
- },
- "Aliases": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "DriverOpts": {
- "type": "object",
- "properties": {},
- "additionalProperties": false
- }
- },
- "additionalProperties": false
- },
- "nullable": true
- },
- "replicas": {
- "type": "number"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "buildType": {
- "type": "string",
- "enum": [
- "dockerfile",
- "heroku_buildpacks",
- "paketo_buildpacks",
- "nixpacks",
- "static"
- ]
- },
- "publishDirectory": {
- "type": "string",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "registryId": {
- "type": "string",
- "nullable": true
- },
- "projectId": {
- "type": "string"
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.refreshToken": {
- "post": {
- "operationId": "application-refreshToken",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.deploy": {
- "post": {
- "operationId": "application-deploy",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.cleanQueues": {
- "post": {
- "operationId": "application-cleanQueues",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- }
- },
- "required": ["applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readTraefikConfig": {
- "get": {
- "operationId": "application-readTraefikConfig",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.updateTraefikConfig": {
- "post": {
- "operationId": "application-updateTraefikConfig",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "traefikConfig": {
- "type": "string"
- }
- },
- "required": ["applicationId", "traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/application.readAppMonitoring": {
- "get": {
- "operationId": "application-readAppMonitoring",
- "tags": ["application"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "appName",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.create": {
- "post": {
- "operationId": "mysql-create",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "projectId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "databaseRootPassword": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "appName",
- "projectId",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "databaseRootPassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.one": {
- "get": {
- "operationId": "mysql-one",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mysqlId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.start": {
- "post": {
- "operationId": "mysql-start",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.stop": {
- "post": {
- "operationId": "mysql-stop",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveExternalPort": {
- "post": {
- "operationId": "mysql-saveExternalPort",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["mysqlId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.deploy": {
- "post": {
- "operationId": "mysql-deploy",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.changeStatus": {
- "post": {
- "operationId": "mysql-changeStatus",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["mysqlId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.reload": {
- "post": {
- "operationId": "mysql-reload",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["mysqlId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.remove": {
- "post": {
- "operationId": "mysql-remove",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.saveEnvironment": {
- "post": {
- "operationId": "mysql-saveEnvironment",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mysql.update": {
- "post": {
- "operationId": "mysql-update",
- "tags": ["mysql"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mysqlId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "databaseRootPassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "mysql:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "number",
- "nullable": true
- },
- "cpuReservation": {
- "type": "number",
- "nullable": true
- },
- "cpuLimit": {
- "type": "number",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "createdAt": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["mysqlId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.create": {
- "post": {
- "operationId": "postgres-create",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "projectId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databaseName",
- "databaseUser",
- "databasePassword",
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.one": {
- "get": {
- "operationId": "postgres-one",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "postgresId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.start": {
- "post": {
- "operationId": "postgres-start",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.stop": {
- "post": {
- "operationId": "postgres-stop",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveExternalPort": {
- "post": {
- "operationId": "postgres-saveExternalPort",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["postgresId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.deploy": {
- "post": {
- "operationId": "postgres-deploy",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.changeStatus": {
- "post": {
- "operationId": "postgres-changeStatus",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["postgresId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.remove": {
- "post": {
- "operationId": "postgres-remove",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.saveEnvironment": {
- "post": {
- "operationId": "postgres-saveEnvironment",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.reload": {
- "post": {
- "operationId": "postgres-reload",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string"
- },
- "appName": {
- "type": "string"
- }
- },
- "required": ["postgresId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/postgres.update": {
- "post": {
- "operationId": "postgres-update",
- "tags": ["postgres"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "postgresId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "dockerImage": {
- "type": "string",
- "default": "postgres:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "number",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "number",
- "nullable": true
- },
- "cpuReservation": {
- "type": "number",
- "nullable": true
- },
- "cpuLimit": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "createdAt": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["postgresId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.create": {
- "post": {
- "operationId": "redis-create",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "projectId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "name",
- "appName",
- "databasePassword",
- "projectId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.one": {
- "get": {
- "operationId": "redis-one",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redisId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.start": {
- "post": {
- "operationId": "redis-start",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.reload": {
- "post": {
- "operationId": "redis-reload",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["redisId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.stop": {
- "post": {
- "operationId": "redis-stop",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveExternalPort": {
- "post": {
- "operationId": "redis-saveExternalPort",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["redisId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.deploy": {
- "post": {
- "operationId": "redis-deploy",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.changeStatus": {
- "post": {
- "operationId": "redis-changeStatus",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["redisId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.remove": {
- "post": {
- "operationId": "redis-remove",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.saveEnvironment": {
- "post": {
- "operationId": "redis-saveEnvironment",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redis.update": {
- "post": {
- "operationId": "redis-update",
- "tags": ["redis"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redisId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "redis:8"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "number",
- "nullable": true
- },
- "cpuReservation": {
- "type": "number",
- "nullable": true
- },
- "cpuLimit": {
- "type": "number",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "createdAt": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["redisId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.create": {
- "post": {
- "operationId": "mongo-create",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "projectId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "appName",
- "projectId",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.one": {
- "get": {
- "operationId": "mongo-one",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mongoId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.start": {
- "post": {
- "operationId": "mongo-start",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.stop": {
- "post": {
- "operationId": "mongo-stop",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveExternalPort": {
- "post": {
- "operationId": "mongo-saveExternalPort",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["mongoId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.deploy": {
- "post": {
- "operationId": "mongo-deploy",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.changeStatus": {
- "post": {
- "operationId": "mongo-changeStatus",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["mongoId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.reload": {
- "post": {
- "operationId": "mongo-reload",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["mongoId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.remove": {
- "post": {
- "operationId": "mongo-remove",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.saveEnvironment": {
- "post": {
- "operationId": "mongo-saveEnvironment",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mongo.update": {
- "post": {
- "operationId": "mongo-update",
- "tags": ["mongo"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mongoId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "mongo:15"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "number",
- "nullable": true
- },
- "cpuReservation": {
- "type": "number",
- "nullable": true
- },
- "cpuLimit": {
- "type": "number",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "createdAt": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["mongoId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.create": {
- "post": {
- "operationId": "mariadb-create",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "databaseRootPassword": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "appName",
- "databaseRootPassword",
- "projectId",
- "databaseName",
- "databaseUser",
- "databasePassword"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.one": {
- "get": {
- "operationId": "mariadb-one",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mariadbId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.start": {
- "post": {
- "operationId": "mariadb-start",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.stop": {
- "post": {
- "operationId": "mariadb-stop",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveExternalPort": {
- "post": {
- "operationId": "mariadb-saveExternalPort",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- }
- },
- "required": ["mariadbId", "externalPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.deploy": {
- "post": {
- "operationId": "mariadb-deploy",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.changeStatus": {
- "post": {
- "operationId": "mariadb-changeStatus",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- }
- },
- "required": ["mariadbId", "applicationStatus"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.remove": {
- "post": {
- "operationId": "mariadb-remove",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.saveEnvironment": {
- "post": {
- "operationId": "mariadb-saveEnvironment",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "env": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.reload": {
- "post": {
- "operationId": "mariadb-reload",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string"
- },
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["mariadbId", "appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mariadb.update": {
- "post": {
- "operationId": "mariadb-update",
- "tags": ["mariadb"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mariadbId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "databaseName": {
- "type": "string",
- "minLength": 1
- },
- "databaseUser": {
- "type": "string",
- "minLength": 1
- },
- "databasePassword": {
- "type": "string"
- },
- "databaseRootPassword": {
- "type": "string"
- },
- "dockerImage": {
- "type": "string",
- "default": "mariadb:6"
- },
- "command": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "memoryReservation": {
- "type": "number",
- "nullable": true
- },
- "memoryLimit": {
- "type": "number",
- "nullable": true
- },
- "cpuReservation": {
- "type": "number",
- "nullable": true
- },
- "cpuLimit": {
- "type": "number",
- "nullable": true
- },
- "externalPort": {
- "type": "number",
- "nullable": true
- },
- "applicationStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "createdAt": {
- "type": "string"
- },
- "projectId": {
- "type": "string"
- }
- },
- "required": ["mariadbId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.create": {
- "post": {
- "operationId": "compose-create",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "projectId": {
- "type": "string"
- },
- "composeType": {
- "type": "string",
- "enum": ["docker-compose", "stack"]
- },
- "appName": {
- "type": "string"
- }
- },
- "required": ["name", "projectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.one": {
- "get": {
- "operationId": "compose-one",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.update": {
- "post": {
- "operationId": "compose-update",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "appName": {
- "type": "string"
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "env": {
- "type": "string",
- "nullable": true
- },
- "composeFile": {
- "type": "string"
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "sourceType": {
- "type": "string",
- "enum": ["git", "github", "gitlab", "bitbucket", "raw"]
- },
- "composeType": {
- "type": "string",
- "enum": ["docker-compose", "stack"]
- },
- "repository": {
- "type": "string",
- "nullable": true
- },
- "owner": {
- "type": "string",
- "nullable": true
- },
- "branch": {
- "type": "string",
- "nullable": true
- },
- "autoDeploy": {
- "type": "boolean",
- "nullable": true
- },
- "gitlabProjectId": {
- "type": "number",
- "nullable": true
- },
- "gitlabRepository": {
- "type": "string",
- "nullable": true
- },
- "gitlabOwner": {
- "type": "string",
- "nullable": true
- },
- "gitlabBranch": {
- "type": "string",
- "nullable": true
- },
- "gitlabPathNamespace": {
- "type": "string",
- "nullable": true
- },
- "bitbucketRepository": {
- "type": "string",
- "nullable": true
- },
- "bitbucketOwner": {
- "type": "string",
- "nullable": true
- },
- "bitbucketBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitUrl": {
- "type": "string",
- "nullable": true
- },
- "customGitBranch": {
- "type": "string",
- "nullable": true
- },
- "customGitSSHKeyId": {
- "type": "string",
- "nullable": true
- },
- "command": {
- "type": "string"
- },
- "composePath": {
- "type": "string",
- "minLength": 1
- },
- "composeStatus": {
- "type": "string",
- "enum": ["idle", "running", "done", "error"]
- },
- "projectId": {
- "type": "string"
- },
- "createdAt": {
- "type": "string"
- },
- "githubId": {
- "type": "string",
- "nullable": true
- },
- "gitlabId": {
- "type": "string",
- "nullable": true
- },
- "bitbucketId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.delete": {
- "post": {
- "operationId": "compose-delete",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.cleanQueues": {
- "post": {
- "operationId": "compose-cleanQueues",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.loadServices": {
- "get": {
- "operationId": "compose-loadServices",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "type",
- "in": "query",
- "required": false,
- "schema": {
- "anyOf": [
- {
- "not": {}
- },
- {
- "type": "string",
- "enum": ["fetch", "cache"]
- }
- ],
- "default": "cache"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.fetchSourceType": {
- "post": {
- "operationId": "compose-fetchSourceType",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.randomizeCompose": {
- "post": {
- "operationId": "compose-randomizeCompose",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- },
- "prefix": {
- "type": "string"
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getConvertedCompose": {
- "get": {
- "operationId": "compose-getConvertedCompose",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deploy": {
- "post": {
- "operationId": "compose-deploy",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.redeploy": {
- "post": {
- "operationId": "compose-redeploy",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.stop": {
- "post": {
- "operationId": "compose-stop",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getDefaultCommand": {
- "get": {
- "operationId": "compose-getDefaultCommand",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.refreshToken": {
- "post": {
- "operationId": "compose-refreshToken",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "composeId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["composeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.deployTemplate": {
- "post": {
- "operationId": "compose-deployTemplate",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "projectId": {
- "type": "string"
- },
- "id": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["projectId", "id"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.templates": {
- "get": {
- "operationId": "compose-templates",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/compose.getTags": {
- "get": {
- "operationId": "compose-getTags",
- "tags": ["compose"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.all": {
- "get": {
- "operationId": "user-all",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.byAuthId": {
- "get": {
- "operationId": "user-byAuthId",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "authId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/user.byUserId": {
- "get": {
- "operationId": "user-byUserId",
- "tags": ["user"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "userId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.create": {
- "post": {
- "operationId": "domain-create",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none"]
- },
- "composeId": {
- "type": "string",
- "nullable": true
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": ["compose", "application"],
- "nullable": true
- }
- },
- "required": ["host"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byApplicationId": {
- "get": {
- "operationId": "domain-byApplicationId",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.byComposeId": {
- "get": {
- "operationId": "domain-byComposeId",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.generateDomain": {
- "post": {
- "operationId": "domain-generateDomain",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appName": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["appName"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.update": {
- "post": {
- "operationId": "domain-update",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "host": {
- "type": "string",
- "minLength": 1
- },
- "path": {
- "type": "string",
- "minLength": 1,
- "nullable": true
- },
- "port": {
- "type": "number",
- "minimum": 1,
- "maximum": 65535,
- "nullable": true
- },
- "https": {
- "type": "boolean"
- },
- "certificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none"]
- },
- "serviceName": {
- "type": "string",
- "nullable": true
- },
- "domainType": {
- "type": "string",
- "enum": ["compose", "application"],
- "nullable": true
- },
- "domainId": {
- "type": "string"
- }
- },
- "required": ["host", "domainId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.one": {
- "get": {
- "operationId": "domain-one",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "domainId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/domain.delete": {
- "post": {
- "operationId": "domain-delete",
- "tags": ["domain"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "domainId": {
- "type": "string"
- }
- },
- "required": ["domainId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.create": {
- "post": {
- "operationId": "destination-create",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.testConnection": {
- "post": {
- "operationId": "destination-testConnection",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.one": {
- "get": {
- "operationId": "destination-one",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "destinationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.all": {
- "get": {
- "operationId": "destination-all",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.remove": {
- "post": {
- "operationId": "destination-remove",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "destinationId": {
- "type": "string"
- }
- },
- "required": ["destinationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/destination.update": {
- "post": {
- "operationId": "destination-update",
- "tags": ["destination"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "accessKey": {
- "type": "string"
- },
- "bucket": {
- "type": "string"
- },
- "region": {
- "type": "string"
- },
- "endpoint": {
- "type": "string"
- },
- "secretAccessKey": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- }
- },
- "required": [
- "name",
- "accessKey",
- "bucket",
- "region",
- "endpoint",
- "secretAccessKey",
- "destinationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.create": {
- "post": {
- "operationId": "backup-create",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "destinationId": {
- "type": "string"
- },
- "database": {
- "type": "string",
- "minLength": 1
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "databaseType": {
- "type": "string",
- "enum": ["postgres", "mariadb", "mysql", "mongo"]
- }
- },
- "required": [
- "schedule",
- "prefix",
- "destinationId",
- "database",
- "databaseType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.one": {
- "get": {
- "operationId": "backup-one",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "backupId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.update": {
- "post": {
- "operationId": "backup-update",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "schedule": {
- "type": "string"
- },
- "enabled": {
- "type": "boolean",
- "nullable": true
- },
- "prefix": {
- "type": "string",
- "minLength": 1
- },
- "backupId": {
- "type": "string"
- },
- "destinationId": {
- "type": "string"
- },
- "database": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "schedule",
- "prefix",
- "backupId",
- "destinationId",
- "database"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.remove": {
- "post": {
- "operationId": "backup-remove",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupPostgres": {
- "post": {
- "operationId": "backup-manualBackupPostgres",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMySql": {
- "post": {
- "operationId": "backup-manualBackupMySql",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMariadb": {
- "post": {
- "operationId": "backup-manualBackupMariadb",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/backup.manualBackupMongo": {
- "post": {
- "operationId": "backup-manualBackupMongo",
- "tags": ["backup"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "backupId": {
- "type": "string"
- }
- },
- "required": ["backupId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.all": {
- "get": {
- "operationId": "deployment-all",
- "tags": ["deployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "applicationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/deployment.allByCompose": {
- "get": {
- "operationId": "deployment-allByCompose",
- "tags": ["deployment"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "composeId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.create": {
- "post": {
- "operationId": "mounts-create",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": ["bind", "volume", "file"]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "serviceId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["type", "mountPath", "serviceId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.remove": {
- "post": {
- "operationId": "mounts-remove",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string"
- }
- },
- "required": ["mountId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.one": {
- "get": {
- "operationId": "mounts-one",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "mountId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/mounts.update": {
- "post": {
- "operationId": "mounts-update",
- "tags": ["mounts"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "mountId": {
- "type": "string",
- "minLength": 1
- },
- "type": {
- "type": "string",
- "enum": ["bind", "volume", "file"]
- },
- "hostPath": {
- "type": "string",
- "nullable": true
- },
- "volumeName": {
- "type": "string",
- "nullable": true
- },
- "filePath": {
- "type": "string",
- "nullable": true
- },
- "content": {
- "type": "string",
- "nullable": true
- },
- "serviceType": {
- "type": "string",
- "enum": [
- "application",
- "postgres",
- "mysql",
- "mariadb",
- "mongo",
- "redis",
- "compose"
- ],
- "default": "application"
- },
- "mountPath": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string",
- "nullable": true
- },
- "postgresId": {
- "type": "string",
- "nullable": true
- },
- "mariadbId": {
- "type": "string",
- "nullable": true
- },
- "mongoId": {
- "type": "string",
- "nullable": true
- },
- "mysqlId": {
- "type": "string",
- "nullable": true
- },
- "redisId": {
- "type": "string",
- "nullable": true
- },
- "composeId": {
- "type": "string",
- "nullable": true
- }
- },
- "required": ["mountId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.create": {
- "post": {
- "operationId": "certificates-create",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- },
- "certificateData": {
- "type": "string",
- "minLength": 1
- },
- "privateKey": {
- "type": "string",
- "minLength": 1
- },
- "certificatePath": {
- "type": "string"
- },
- "autoRenew": {
- "type": "boolean",
- "nullable": true
- }
- },
- "required": ["name", "certificateData", "privateKey"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.one": {
- "get": {
- "operationId": "certificates-one",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "certificateId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.remove": {
- "post": {
- "operationId": "certificates-remove",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "certificateId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["certificateId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/certificates.all": {
- "get": {
- "operationId": "certificates-all",
- "tags": ["certificates"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadServer": {
- "post": {
- "operationId": "settings-reloadServer",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.reloadTraefik": {
- "post": {
- "operationId": "settings-reloadTraefik",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.toggleDashboard": {
- "post": {
- "operationId": "settings-toggleDashboard",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDashboard": {
- "type": "boolean"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedImages": {
- "post": {
- "operationId": "settings-cleanUnusedImages",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanUnusedVolumes": {
- "post": {
- "operationId": "settings-cleanUnusedVolumes",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanStoppedContainers": {
- "post": {
- "operationId": "settings-cleanStoppedContainers",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerBuilder": {
- "post": {
- "operationId": "settings-cleanDockerBuilder",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanDockerPrune": {
- "post": {
- "operationId": "settings-cleanDockerPrune",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanAll": {
- "post": {
- "operationId": "settings-cleanAll",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanMonitoring": {
- "post": {
- "operationId": "settings-cleanMonitoring",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.saveSSHPrivateKey": {
- "post": {
- "operationId": "settings-saveSSHPrivateKey",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshPrivateKey": {
- "type": "string",
- "nullable": true
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.assignDomainServer": {
- "post": {
- "operationId": "settings-assignDomainServer",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "letsEncryptEmail": {
- "type": "string",
- "nullable": true
- },
- "host": {
- "type": "string",
- "nullable": true
- },
- "certificateType": {
- "type": "string",
- "enum": ["letsencrypt", "none"],
- "default": "none"
- }
- },
- "required": ["letsEncryptEmail", "host"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.cleanSSHPrivateKey": {
- "post": {
- "operationId": "settings-cleanSSHPrivateKey",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateDockerCleanup": {
- "post": {
- "operationId": "settings-updateDockerCleanup",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "enableDockerCleanup": {
- "type": "boolean"
- }
- },
- "required": ["enableDockerCleanup"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikConfig": {
- "get": {
- "operationId": "settings-readTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikConfig": {
- "post": {
- "operationId": "settings-updateTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readWebServerTraefikConfig": {
- "get": {
- "operationId": "settings-readWebServerTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateWebServerTraefikConfig": {
- "post": {
- "operationId": "settings-updateWebServerTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readMiddlewareTraefikConfig": {
- "get": {
- "operationId": "settings-readMiddlewareTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateMiddlewareTraefikConfig": {
- "post": {
- "operationId": "settings-updateMiddlewareTraefikConfig",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.checkAndUpdateImage": {
- "post": {
- "operationId": "settings-checkAndUpdateImage",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateServer": {
- "post": {
- "operationId": "settings-updateServer",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getDokployVersion": {
- "get": {
- "operationId": "settings-getDokployVersion",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readDirectories": {
- "get": {
- "operationId": "settings-readDirectories",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.updateTraefikFile": {
- "post": {
- "operationId": "settings-updateTraefikFile",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string",
- "minLength": 1
- },
- "traefikConfig": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["path", "traefikConfig"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikFile": {
- "get": {
- "operationId": "settings-readTraefikFile",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "path",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getIp": {
- "get": {
- "operationId": "settings-getIp",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.getOpenApiDocument": {
- "get": {
- "operationId": "settings-getOpenApiDocument",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.readTraefikEnv": {
- "get": {
- "operationId": "settings-readTraefikEnv",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.writeTraefikEnv": {
- "post": {
- "operationId": "settings-writeTraefikEnv",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "env": {
- "type": "string"
- }
- },
- "required": ["env"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/settings.haveTraefikDashboardPortEnabled": {
- "get": {
- "operationId": "settings-haveTraefikDashboardPortEnabled",
- "tags": ["settings"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.create": {
- "post": {
- "operationId": "security-create",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "applicationId": {
- "type": "string"
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["applicationId", "username", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.one": {
- "get": {
- "operationId": "security-one",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "securityId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.delete": {
- "post": {
- "operationId": "security-delete",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["securityId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/security.update": {
- "post": {
- "operationId": "security-update",
- "tags": ["security"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "securityId": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["securityId", "username", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.create": {
- "post": {
- "operationId": "redirects-create",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- },
- "applicationId": {
- "type": "string"
- }
- },
- "required": [
- "regex",
- "replacement",
- "permanent",
- "applicationId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.one": {
- "get": {
- "operationId": "redirects-one",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "redirectId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.delete": {
- "post": {
- "operationId": "redirects-delete",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["redirectId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/redirects.update": {
- "post": {
- "operationId": "redirects-update",
- "tags": ["redirects"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "redirectId": {
- "type": "string",
- "minLength": 1
- },
- "regex": {
- "type": "string",
- "minLength": 1
- },
- "replacement": {
- "type": "string",
- "minLength": 1
- },
- "permanent": {
- "type": "boolean"
- }
- },
- "required": ["redirectId", "regex", "replacement", "permanent"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.create": {
- "post": {
- "operationId": "port-create",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "publishedPort": {
- "type": "number"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": ["tcp", "udp"],
- "default": "tcp"
- },
- "applicationId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["publishedPort", "targetPort", "applicationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.one": {
- "get": {
- "operationId": "port-one",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "portId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.delete": {
- "post": {
- "operationId": "port-delete",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["portId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/port.update": {
- "post": {
- "operationId": "port-update",
- "tags": ["port"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "portId": {
- "type": "string",
- "minLength": 1
- },
- "publishedPort": {
- "type": "number"
- },
- "targetPort": {
- "type": "number"
- },
- "protocol": {
- "type": "string",
- "enum": ["tcp", "udp"],
- "default": "tcp"
- }
- },
- "required": ["portId", "publishedPort", "targetPort"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.create": {
- "post": {
- "operationId": "registry-create",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": ["selfHosted", "cloud"]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "registryName",
- "username",
- "password",
- "registryUrl",
- "registryType",
- "imagePrefix"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.remove": {
- "post": {
- "operationId": "registry-remove",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["registryId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.update": {
- "post": {
- "operationId": "registry-update",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryId": {
- "type": "string",
- "minLength": 1
- },
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string",
- "minLength": 1
- },
- "createdAt": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": ["selfHosted", "cloud"]
- },
- "adminId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["registryId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.all": {
- "get": {
- "operationId": "registry-all",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.one": {
- "get": {
- "operationId": "registry-one",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "registryId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.testRegistry": {
- "post": {
- "operationId": "registry-testRegistry",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryName": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "registryUrl": {
- "type": "string"
- },
- "registryType": {
- "type": "string",
- "enum": ["selfHosted", "cloud"]
- },
- "imagePrefix": {
- "type": "string",
- "nullable": true
- }
- },
- "required": [
- "registryName",
- "username",
- "password",
- "registryUrl",
- "registryType"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/registry.enableSelfHostedRegistry": {
- "post": {
- "operationId": "registry-enableSelfHostedRegistry",
- "tags": ["registry"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "registryUrl": {
- "type": "string",
- "minLength": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["registryUrl", "username", "password"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.getNodes": {
- "get": {
- "operationId": "cluster-getNodes",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.removeWorker": {
- "post": {
- "operationId": "cluster-removeWorker",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "nodeId": {
- "type": "string"
- }
- },
- "required": ["nodeId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addWorker": {
- "get": {
- "operationId": "cluster-addWorker",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/cluster.addManager": {
- "get": {
- "operationId": "cluster-addManager",
- "tags": ["cluster"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createSlack": {
- "post": {
- "operationId": "notification-createSlack",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "webhookUrl",
- "channel"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateSlack": {
- "post": {
- "operationId": "notification-updateSlack",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "slackId": {
- "type": "string"
- }
- },
- "required": ["notificationId", "slackId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testSlackConnection": {
- "post": {
- "operationId": "notification-testSlackConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "channel": {
- "type": "string"
- }
- },
- "required": ["webhookUrl", "channel"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createTelegram": {
- "post": {
- "operationId": "notification-createTelegram",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "botToken",
- "chatId"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateTelegram": {
- "post": {
- "operationId": "notification-updateTelegram",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "telegramId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["notificationId", "telegramId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testTelegramConnection": {
- "post": {
- "operationId": "notification-testTelegramConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "botToken": {
- "type": "string",
- "minLength": 1
- },
- "chatId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["botToken", "chatId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createDiscord": {
- "post": {
- "operationId": "notification-createDiscord",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "webhookUrl"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateDiscord": {
- "post": {
- "operationId": "notification-updateDiscord",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "discordId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["notificationId", "discordId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testDiscordConnection": {
- "post": {
- "operationId": "notification-testDiscordConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "webhookUrl": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["webhookUrl"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.createEmail": {
- "post": {
- "operationId": "notification-createEmail",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- }
- },
- "required": [
- "appBuildError",
- "databaseBackup",
- "dokployRestart",
- "name",
- "appDeploy",
- "dockerCleanup",
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "fromAddress",
- "toAddresses"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.updateEmail": {
- "post": {
- "operationId": "notification-updateEmail",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "appBuildError": {
- "type": "boolean"
- },
- "databaseBackup": {
- "type": "boolean"
- },
- "dokployRestart": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- },
- "appDeploy": {
- "type": "boolean"
- },
- "dockerCleanup": {
- "type": "boolean"
- },
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "notificationId": {
- "type": "string",
- "minLength": 1
- },
- "emailId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["notificationId", "emailId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.testEmailConnection": {
- "post": {
- "operationId": "notification-testEmailConnection",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "smtpServer": {
- "type": "string",
- "minLength": 1
- },
- "smtpPort": {
- "type": "number",
- "minimum": 1
- },
- "username": {
- "type": "string",
- "minLength": 1
- },
- "password": {
- "type": "string",
- "minLength": 1
- },
- "toAddresses": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "minItems": 1
- },
- "fromAddress": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": [
- "smtpServer",
- "smtpPort",
- "username",
- "password",
- "toAddresses",
- "fromAddress"
- ],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.remove": {
- "post": {
- "operationId": "notification-remove",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "notificationId": {
- "type": "string"
- }
- },
- "required": ["notificationId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.one": {
- "get": {
- "operationId": "notification-one",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "notificationId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/notification.all": {
- "get": {
- "operationId": "notification-all",
- "tags": ["notification"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.create": {
- "post": {
- "operationId": "sshKey-create",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "publicKey": {
- "type": "string"
- },
- "privateKey": {
- "type": "string"
- }
- },
- "required": ["name", "publicKey", "privateKey"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.remove": {
- "post": {
- "operationId": "sshKey-remove",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": ["sshKeyId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.one": {
- "get": {
- "operationId": "sshKey-one",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "sshKeyId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.all": {
- "get": {
- "operationId": "sshKey-all",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.generate": {
- "post": {
- "operationId": "sshKey-generate",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "enum": ["rsa", "ed25519"]
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/sshKey.update": {
- "post": {
- "operationId": "sshKey-update",
- "tags": ["sshKey"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "nullable": true
- },
- "lastUsedAt": {
- "type": "string",
- "nullable": true
- },
- "sshKeyId": {
- "type": "string"
- }
- },
- "required": ["sshKeyId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.getAll": {
- "get": {
- "operationId": "gitProvider-getAll",
- "tags": ["gitProvider"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitProvider.remove": {
- "post": {
- "operationId": "gitProvider-remove",
- "tags": ["gitProvider"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["gitProviderId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.create": {
- "post": {
- "operationId": "bitbucket-create",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string"
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "appPassword": {
- "type": "string"
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["authId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.one": {
- "get": {
- "operationId": "bitbucket-one",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.bitbucketProviders": {
- "get": {
- "operationId": "bitbucket-bitbucketProviders",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketRepositories": {
- "get": {
- "operationId": "bitbucket-getBitbucketRepositories",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "bitbucketId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.getBitbucketBranches": {
- "get": {
- "operationId": "bitbucket-getBitbucketBranches",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "bitbucketId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.testConnection": {
- "post": {
- "operationId": "bitbucket-testConnection",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "workspaceName": {
- "type": "string"
- }
- },
- "required": ["bitbucketId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/bitbucket.update": {
- "post": {
- "operationId": "bitbucket-update",
- "tags": ["bitbucket"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "bitbucketId": {
- "type": "string",
- "minLength": 1
- },
- "bitbucketUsername": {
- "type": "string"
- },
- "appPassword": {
- "type": "string",
- "nullable": true
- },
- "bitbucketWorkspaceName": {
- "type": "string"
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["bitbucketId", "gitProviderId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.create": {
- "post": {
- "operationId": "gitlab-create",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "authId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["authId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.one": {
- "get": {
- "operationId": "gitlab-one",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.gitlabProviders": {
- "get": {
- "operationId": "gitlab-gitlabProviders",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabRepositories": {
- "get": {
- "operationId": "gitlab-getGitlabRepositories",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "gitlabId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.getGitlabBranches": {
- "get": {
- "operationId": "gitlab-getGitlabBranches",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "id",
- "in": "query",
- "required": false,
- "schema": {
- "type": "number"
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string"
- }
- },
- {
- "name": "gitlabId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.testConnection": {
- "post": {
- "operationId": "gitlab-testConnection",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string"
- },
- "groupName": {
- "type": "string"
- }
- },
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/gitlab.update": {
- "post": {
- "operationId": "gitlab-update",
- "tags": ["gitlab"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "gitlabId": {
- "type": "string",
- "minLength": 1
- },
- "applicationId": {
- "type": "string"
- },
- "redirectUri": {
- "type": "string"
- },
- "secret": {
- "type": "string"
- },
- "accessToken": {
- "type": "string",
- "nullable": true
- },
- "refreshToken": {
- "type": "string",
- "nullable": true
- },
- "groupName": {
- "type": "string"
- },
- "expiresAt": {
- "type": "number",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string"
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["gitlabId", "gitProviderId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.one": {
- "get": {
- "operationId": "github-one",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubRepositories": {
- "get": {
- "operationId": "github-getGithubRepositories",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "githubId",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.getGithubBranches": {
- "get": {
- "operationId": "github-getGithubBranches",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [
- {
- "name": "repo",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "owner",
- "in": "query",
- "required": true,
- "schema": {
- "type": "string",
- "minLength": 1
- }
- },
- {
- "name": "githubId",
- "in": "query",
- "required": false,
- "schema": {
- "type": "string"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.githubProviders": {
- "get": {
- "operationId": "github-githubProviders",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.testConnection": {
- "post": {
- "operationId": "github-testConnection",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["githubId"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- },
- "/github.update": {
- "post": {
- "operationId": "github-update",
- "tags": ["github"],
- "security": [
- {
- "Authorization": []
- }
- ],
- "requestBody": {
- "required": true,
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "githubId": {
- "type": "string",
- "minLength": 1
- },
- "githubAppName": {
- "type": "string",
- "nullable": true
- },
- "githubAppId": {
- "type": "number",
- "nullable": true
- },
- "githubClientId": {
- "type": "string",
- "nullable": true
- },
- "githubClientSecret": {
- "type": "string",
- "nullable": true
- },
- "githubInstallationId": {
- "type": "string",
- "nullable": true
- },
- "githubPrivateKey": {
- "type": "string",
- "nullable": true
- },
- "githubWebhookSecret": {
- "type": "string",
- "nullable": true
- },
- "gitProviderId": {
- "type": "string",
- "minLength": 1
- },
- "name": {
- "type": "string",
- "minLength": 1
- }
- },
- "required": ["githubId", "gitProviderId", "name"],
- "additionalProperties": false
- }
- }
- }
- },
- "parameters": [],
- "responses": {
- "200": {
- "description": "Successful response",
- "content": {
- "application/json": {}
- }
- },
- "default": {
- "$ref": "#/components/responses/error"
- }
- }
- }
- }
- },
- "components": {
- "securitySchemes": {
- "Authorization": {
- "type": "http",
- "scheme": "bearer"
- }
- },
- "responses": {
- "error": {
- "description": "Error response",
- "content": {
- "application/json": {
- "schema": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- },
- "code": {
- "type": "string"
- },
- "issues": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- },
- "required": ["message"],
- "additionalProperties": false
- }
- }
- },
- "required": ["message", "code"],
- "additionalProperties": false
- }
- }
- }
- }
- }
- },
- "tags": [
- {
- "name": "admin"
- },
- {
- "name": "docker"
- },
- {
- "name": "compose"
- },
- {
- "name": "registry"
- },
- {
- "name": "cluster"
- },
- {
- "name": "user"
- },
- {
- "name": "domain"
- },
- {
- "name": "destination"
- },
- {
- "name": "backup"
- },
- {
- "name": "deployment"
- },
- {
- "name": "mounts"
- },
- {
- "name": "certificates"
- },
- {
- "name": "settings"
- },
- {
- "name": "security"
- },
- {
- "name": "redirects"
- },
- {
- "name": "port"
- },
- {
- "name": "project"
- },
- {
- "name": "application"
- },
- {
- "name": "mysql"
- },
- {
- "name": "postgres"
- },
- {
- "name": "redis"
- },
- {
- "name": "mongo"
- },
- {
- "name": "mariadb"
- },
- {
- "name": "sshRouter"
- },
- {
- "name": "gitProvider"
- },
- {
- "name": "bitbucket"
- },
- {
- "name": "github"
- },
- {
- "name": "gitlab"
- }
- ],
- "externalDocs": {
- "url": "http://localhost:3000/api/settings.getOpenApiDocument"
- }
-}
diff --git a/apps/docs/app/[lang]/[[...slug]]/page.tsx b/apps/docs/app/[lang]/[[...slug]]/page.tsx
deleted file mode 100644
index 8307d655d..000000000
--- a/apps/docs/app/[lang]/[[...slug]]/page.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-import { getLanguages, getPage } from "@/app/source";
-import { url, baseUrl } from "@/utils/metadata";
-import { DocsBody, DocsPage } from "fumadocs-ui/page";
-import type { Metadata } from "next";
-import { notFound, permanentRedirect } from "next/navigation";
-
-export default async function Page({
- params,
-}: {
- params: { lang: string; slug?: string[] };
-}) {
- const page = getPage(params.slug, params.lang);
-
- if (page == null) {
- permanentRedirect("/docs/core/get-started/introduction");
- }
-
- const MDX = page.data.exports.default;
-
- return (
-
-
- {page.data.title}
-
-
-
- );
-}
-
-export async function generateStaticParams() {
- return getLanguages().flatMap(({ language, pages }) =>
- pages.map((page) => ({
- lang: language,
- slug: page.slugs,
- })),
- );
-}
-
-export function generateMetadata({
- params,
-}: {
- params: { lang: string; slug?: string[] };
-}) {
- const page = getPage(params.slug, params.lang);
- if (page == null) {
- permanentRedirect("/docs/core/get-started/introduction");
- }
- return {
- title: page.data.title,
-
- description: page.data.description,
- robots: "index,follow",
- alternates: {
- canonical: new URL(`${baseUrl}${page.url}`).toString(),
- languages: {
- zh: `${baseUrl}/cn${page.url.replace("/cn", "")}`,
- en: `${baseUrl}/en${page.url.replace("/en", "")}`,
- },
- },
- openGraph: {
- title: page.data.title,
- description: page.data.description,
- url: new URL(`${baseUrl}`).toString(),
- images: [
- {
- url: new URL(
- `${baseUrl}/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.7cfd81d9.png&w=828&q=75`,
- ).toString(),
- width: 1200,
- height: 630,
- alt: page.data.title,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- creator: "@getdokploy",
- title: page.data.title,
- description: page.data.description,
- images: [
- {
- url: new URL(
- `${baseUrl}/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.7cfd81d9.png&w=828&q=75`,
- ).toString(),
- width: 1200,
- height: 630,
- alt: page.data.title,
- },
- ],
- },
- applicationName: "Dokploy Docs",
- keywords: [
- "dokploy",
- "vps",
- "open source",
- "cloud",
- "self hosting",
- "free",
- ],
- icons: {
- icon: "/icon.svg",
- },
- } satisfies Metadata;
-}
diff --git a/apps/docs/app/[lang]/layout.tsx b/apps/docs/app/[lang]/layout.tsx
deleted file mode 100644
index 675830267..000000000
--- a/apps/docs/app/[lang]/layout.tsx
+++ /dev/null
@@ -1,133 +0,0 @@
-import { RootToggle } from "fumadocs-ui/components/layout/root-toggle";
-import { I18nProvider } from "fumadocs-ui/i18n";
-import { DocsLayout } from "fumadocs-ui/layout";
-import { RootProvider } from "fumadocs-ui/provider";
-import { Inter } from "next/font/google";
-import type { ReactNode } from "react";
-import { baseOptions } from "../layout.config";
-import { pageTree } from "../source";
-import "../global.css";
-import GoogleAnalytics from "@/components/analytics/google";
-import {
- LibraryIcon,
- type LucideIcon,
- PlugZapIcon,
- TerminalIcon,
-} from "lucide-react";
-import Script from "next/script";
-const inter = Inter({
- subsets: ["latin"],
-});
-
-interface Mode {
- param: string;
- name: string;
- package: string;
- description: string;
- icon: LucideIcon;
-}
-
-const modes: Mode[] = [
- {
- param: "core/get-started/introduction",
- name: "Core",
- package: "Dokploy",
- description: "The core",
- icon: LibraryIcon,
- },
- {
- param: "cli",
- name: "CLI",
- package: "fumadocs-ui",
- description: "Interactive CLI",
- icon: TerminalIcon,
- },
- {
- param: "api",
- name: "API",
- package: "fumadocs-mdx",
- description: "API Documentation",
- icon: PlugZapIcon,
- },
-];
-
-export default function Layout({
- params,
- children,
-}: {
- params: { lang: string };
- children: ReactNode;
-}) {
- return (
-
-
-
-
-
-
- {
- return {
- url: `/${params.lang}/docs/${mode.param}`,
- icon: (
-
- ),
- title: mode.name,
- description: mode.description,
- };
- })}
- />
- ),
- }}
- {...baseOptions}
- >
- {children}
-
-
-
-
-
- );
-}
diff --git a/apps/docs/app/api/search/route.ts b/apps/docs/app/api/search/route.ts
deleted file mode 100644
index e07858503..000000000
--- a/apps/docs/app/api/search/route.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { getPages } from "@/app/source";
-import { createI18nSearchAPI } from "fumadocs-core/search/server";
-
-import { languages } from "@/i18n";
-
-export const { GET } = createI18nSearchAPI("advanced", {
- indexes: languages.map((lang) => {
- return {
- language: lang,
- indexes: getPages(lang).map((page) => ({
- id: page.url,
- url: page.url,
- title: page.data.title,
- structuredData: page.data.exports.structuredData,
- })),
- };
- }),
-});
diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css
deleted file mode 100644
index bdb514ed8..000000000
--- a/apps/docs/app/global.css
+++ /dev/null
@@ -1,27 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-.api {
- --primary: var(--api-color);
- }
-
- .core {
- --primary: var(--core-color);
- }
-
- .cli {
- --primary: var(--cli-color);
- }
-
- :root {
- --core-color: 250 80% 54%;
- --cli-color: 0 0% 9%;
- --api-color: 220deg 91% 54%;
- }
-
- .dark {
- --headless-color: 250 100% 80%;
- --cli-color: 0 0% 100%;
- --api-color: 217deg 92% 76%;
- }
\ No newline at end of file
diff --git a/apps/docs/app/icon.svg b/apps/docs/app/icon.svg
deleted file mode 100644
index 3a8930d5e..000000000
--- a/apps/docs/app/icon.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx
deleted file mode 100644
index 9d69e87a0..000000000
--- a/apps/docs/app/layout.config.tsx
+++ /dev/null
@@ -1,76 +0,0 @@
-import type { BaseLayoutProps } from "fumadocs-ui/layout";
-import { GlobeIcon, HeartIcon } from "lucide-react";
-
-export const Logo = () => {
- return (
-
-
-
-
-
-
-
- );
-};
-
-export const baseOptions: BaseLayoutProps = {
- githubUrl: "https://github.com/dokploy/dokploy",
- nav: {
- url: "/get-started/introduction",
- title: (
- <>
-
- Dokploy
- >
- ),
- },
- links: [
- {
- text: "Website",
- url: "https://dokploy.com",
- active: "nested-url",
- icon: ,
- },
- {
- text: "Discord",
- url: "https://discord.com/invite/2tBnJ3jDJc",
- active: "nested-url",
- icon: (
- <>
-
-
-
- >
- ),
- },
- {
- text: "Support",
- url: "https://opencollective.com/dokploy",
- active: "nested-url",
- icon: (
- <>
-
- >
- ),
- },
- ],
-};
diff --git a/apps/docs/app/robots.ts b/apps/docs/app/robots.ts
deleted file mode 100644
index 3b0070464..000000000
--- a/apps/docs/app/robots.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import type { MetadataRoute } from "next";
-
-export default function robots(): MetadataRoute.Robots {
- return {
- rules: {
- userAgent: "*",
- allow: "/",
- },
- sitemap: "https://docs.dokploy.com/sitemap.xml",
- };
-}
diff --git a/apps/docs/app/sitemap.ts b/apps/docs/app/sitemap.ts
deleted file mode 100644
index 1451430d6..000000000
--- a/apps/docs/app/sitemap.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { url } from "@/utils/metadata";
-import type { MetadataRoute } from "next";
-import { getPages } from "./source";
-
-export default async function sitemap(): Promise {
- return [
- ...getPages().map((page) => {
- return {
- url: url(`/en${page.url}`),
- lastModified: page.data.exports.lastModified
- ? new Date(page.data.exports.lastModified)
- : undefined,
- changeFrequency: "weekly",
- priority: page.url === "/docs/core/get-started/introduction" ? 1 : 0.8,
- };
- }),
- ];
-}
diff --git a/apps/docs/app/source.ts b/apps/docs/app/source.ts
deleted file mode 100644
index 4aa62edee..000000000
--- a/apps/docs/app/source.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { map } from "@/.map";
-import { languages } from "@/i18n";
-import { loader } from "fumadocs-core/source";
-import { createMDXSource } from "fumadocs-mdx";
-
-export const { getPage, getPages, pageTree, getLanguages } = loader({
- baseUrl: "/",
- languages,
- source: createMDXSource(map),
-});
diff --git a/apps/docs/components/analytics/google.tsx b/apps/docs/components/analytics/google.tsx
deleted file mode 100644
index 338dce784..000000000
--- a/apps/docs/components/analytics/google.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-"use client";
-
-import { useEffect } from "react";
-import initializeGA from ".";
-
-export default function GoogleAnalytics() {
- useEffect(() => {
- // @ts-ignore
- if (!window.GA_INITIALIZED) {
- initializeGA();
- // @ts-ignore
- window.GA_INITIALIZED = true;
- }
- }, []);
-
- return null;
-}
diff --git a/apps/docs/components/analytics/index.ts b/apps/docs/components/analytics/index.ts
deleted file mode 100644
index 0665eec89..000000000
--- a/apps/docs/components/analytics/index.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-"use client";
-
-import ReactGA from "react-ga4";
-
-const initializeGA = () => {
- // Replace with your Measurement ID
- // It ideally comes from an environment variable
- ReactGA.initialize("G-HZ71HG38HN");
-
- // Don't forget to remove the console.log() statements
- // when you are done
-};
-
-interface Props {
- category: string;
- action: string;
- label: string;
-}
-const trackGAEvent = ({ category, action, label }: Props) => {
- console.log("GA event:", category, ":", action, ":", label);
- // Send GA4 Event
- ReactGA.event({
- category: category,
- action: action,
- label: label,
- });
-};
-
-export default initializeGA;
-export { initializeGA, trackGAEvent };
diff --git a/apps/docs/content/docs/api/index.cn.mdx b/apps/docs/content/docs/api/index.cn.mdx
deleted file mode 100644
index 13dea591e..000000000
--- a/apps/docs/content/docs/api/index.cn.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
----
-title: Dokploy API
-description: 如何与 Dokploy API 进行交互,面向管理员和用户
----
-
-在某些情况下,您可能需要直接与 Dokploy API 进行交互。以下是管理员和用户如何做到这一点的指南。
-
-## 对于管理员
-
-1. 通过访问 `your-vps-ip:3000/swagger` 进入 Swagger UI。
-2. 使用 Swagger 界面与 API 进行交互。
-3. 默认情况下,Swagger UI 的访问受到限制,只有经过身份验证的管理员才能访问 API。
-
-## 对于用户
-
-1. 默认情况下,用户无法直接访问 API。
-2. 管理员可以授予用户以下访问权限:
- - 生成访问令牌
- - 访问 Swagger UI
-3. 如果您需要访问权限,请联系您的管理员。
-
-注意:API 提供了高级功能。确保您理解所执行的操作,以避免对系统造成意外更改。
-
-## 用法
-
-默认情况下,OpenApi 基础 URL 为 `http://localhost:3000/api`,您需要将其替换为 Dokploy 实例的 IP 或域名。
-
-### 身份验证
-
-API 使用 JWT 令牌进行身份验证。您可以通过访问 `/settings/profile` 页面并进入 API/CLI 部分生成令牌。
-
-以下是一个经过身份验证的请求示例:
-```bash
-curl -X 'GET' \
- 'https://dokploy.com/api/project.all' \
- -H 'accept: application/json' \
- -H 'Authorization: Bearer YOUR-TOKEN'
-```
-然后您将收到类似以下内容的响应:
-
-```json
-[
- {
- "projectId": "klZKsyw5g-QT_jrWJ5T-w",
- "name": "随机",
- "description": "",
- "createdAt": "2024-06-19T15:05:58.785Z",
- "adminId": "_WrKZbs7iJAA3p4N2Yfyu",
- "applications": [],
- "mariadb": [],
- "mongo": [],
- "mysql": [
- {
- "mysqlId": "N3cudwO46TiDXzBm4SaQ1",
- "name": "mysql",
- "appName": "random-mysql-924715",
- "description": "",
- "databaseName": "mysql",
- "databaseUser": "mysql",
- "databasePassword": "h13BzO6y3KYSHaQg",
- "databaseRootPassword": "mM1b7JeoPA7jArxj",
- "dockerImage": "mysql:8",
- "command": null,
- "env": null,
- "memoryReservation": null,
- "memoryLimit": null,
- "cpuReservation": null,
- "cpuLimit": null,
- "externalPort": null,
- "applicationStatus": "完成",
- "createdAt": "2024-06-24T01:55:40.378Z",
- "projectId": "klZKsyw5g-QT_jrWJ5T-w"
- }
- ],
- "postgres": [],
- "redis": [
- {
- "redisId": "TtFK5S4QFaIjaNGOb8Ku-",
- "name": "redis",
- "appName": "random-redis-7eec62",
- "description": "",
- "databasePassword": "Yvb8gqClfomjcue8",
- "dockerImage": "redis:7",
- "command": null,
- "env": null,
- "memoryReservation": null,
- "memoryLimit": null,
- "cpuReservation": null,
- "cpuLimit": null,
- "externalPort": 6379,
- "createdAt": "2024-06-26T06:43:20.570Z",
- "applicationStatus": "完成",
- "projectId": "klZKsyw5g-QT_jrWJ5T-w"
- }
- ],
- "compose": []
- }
-]
-```
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/index.mdx b/apps/docs/content/docs/api/index.mdx
deleted file mode 100644
index 2303d3a19..000000000
--- a/apps/docs/content/docs/api/index.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
----
-title: Dokploy API
-description: How to interact with the dokploy API for administrators and users
----
-
-In some cases, you may need to interact directly with the dokploy API. Here's how both administrators and users can do this.
-
-## For Administrators
-
-1. Access the Swagger UI by navigating to `your-vps-ip:3000/swagger`.
-2. Use the Swagger interface to interact with the API.
-3. By default, access to the Swagger UI is restricted, and only authenticated administrators can access the API.
-
-## For Users
-
-1. By default, users do not have direct access to the API.
-2. Administrators can grant users access to:
- - Generate access tokens
- - Access the Swagger UI
-3. If you need access, contact your administrator.
-
-Note: The API provides advanced functionalities. Make sure you understand the operations you're performing to avoid unintended changes to the system.
-
-## Usage
-
-By default the OpenApi base url is `http://localhost:3000/api`, you need to replace with the ip of your dokploy instance or the domain name.
-
-### Authentication
-
-The API uses JWT tokens for authentication. You can generate a token by going to the `/settings/profile` page and go to API/CLI Section and generate the token.
-
-Let's take a example of authenticated request:
-```bash
-curl -X 'GET' \
- 'https://dokploy.com/api/project.all' \
- -H 'accept: application/json'
- -H 'Authorization: Bearer YOUR-TOKEN'
-```
-then you will get the something like this:
-
-```json
-[
- {
- "projectId": "klZKsyw5g-QT_jrWJ5T-w",
- "name": "Random",
- "description": "",
- "createdAt": "2024-06-19T15:05:58.785Z",
- "adminId": "_WrKZbs7iJAA3p4N2Yfyu",
- "applications": [],
- "mariadb": [],
- "mongo": [],
- "mysql": [
- {
- "mysqlId": "N3cudwO46TiDXzBm4SaQ1",
- "name": "mysql",
- "appName": "random-mysql-924715",
- "description": "",
- "databaseName": "mysql",
- "databaseUser": "mysql",
- "databasePassword": "h13BzO6y3KYSHaQg",
- "databaseRootPassword": "mM1b7JeoPA7jArxj",
- "dockerImage": "mysql:8",
- "command": null,
- "env": null,
- "memoryReservation": null,
- "memoryLimit": null,
- "cpuReservation": null,
- "cpuLimit": null,
- "externalPort": null,
- "applicationStatus": "done",
- "createdAt": "2024-06-24T01:55:40.378Z",
- "projectId": "klZKsyw5g-QT_jrWJ5T-w"
- }
- ],
- "postgres": [],
- "redis": [
- {
- "redisId": "TtFK5S4QFaIjaNGOb8Ku-",
- "name": "redis",
- "appName": "random-redis-7eec62",
- "description": "",
- "databasePassword": "Yvb8gqClfomjcue8",
- "dockerImage": "redis:7",
- "command": null,
- "env": null,
- "memoryReservation": null,
- "memoryLimit": null,
- "cpuReservation": null,
- "cpuLimit": null,
- "externalPort": 6379,
- "createdAt": "2024-06-26T06:43:20.570Z",
- "applicationStatus": "done",
- "projectId": "klZKsyw5g-QT_jrWJ5T-w"
- }
- ],
- "compose": []
- },
-]
-```
\ No newline at end of file
diff --git a/apps/docs/content/docs/api/meta.cn.json b/apps/docs/content/docs/api/meta.cn.json
deleted file mode 100644
index 9e512b78f..000000000
--- a/apps/docs/content/docs/api/meta.cn.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "title": "CLI",
- "root": true,
- "pages": [
- "---入门---",
- "index",
- "---API---",
- "reference-api/reference-admin",
- "reference-api/reference-application",
- "reference-api/reference-auth",
- "reference-api/reference-backup",
- "reference-api/reference-certificates",
- "reference-api/reference-cluster",
- "reference-api/reference-compose",
- "reference-api/reference-deployment",
- "reference-api/reference-destination",
- "reference-api/reference-docker",
- "reference-api/reference-domain",
- "reference-api/reference-mariadb",
- "reference-api/reference-mongo",
- "reference-api/reference-mounts",
- "reference-api/reference-mysql",
- "reference-api/reference-port",
- "reference-api/reference-postgres",
- "reference-api/reference-project",
- "reference-api/reference-redirects",
- "reference-api/reference-redis",
- "reference-api/reference-registry",
- "reference-api/reference-security",
- "reference-api/reference-settings",
- "reference-api/reference-user"
- ]
-}
diff --git a/apps/docs/content/docs/api/meta.json b/apps/docs/content/docs/api/meta.json
deleted file mode 100644
index 09421f252..000000000
--- a/apps/docs/content/docs/api/meta.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "title": "CLI",
- "root": true,
- "pages": [
- "---Get Started---",
- "index",
- "---API---",
- "reference-api/reference-admin",
- "reference-api/reference-application",
- "reference-api/reference-auth",
- "reference-api/reference-backup",
- "reference-api/reference-certificates",
- "reference-api/reference-cluster",
- "reference-api/reference-compose",
- "reference-api/reference-deployment",
- "reference-api/reference-destination",
- "reference-api/reference-docker",
- "reference-api/reference-domain",
- "reference-api/reference-mariadb",
- "reference-api/reference-mongo",
- "reference-api/reference-mounts",
- "reference-api/reference-mysql",
- "reference-api/reference-port",
- "reference-api/reference-postgres",
- "reference-api/reference-project",
- "reference-api/reference-redirects",
- "reference-api/reference-redis",
- "reference-api/reference-registry",
- "reference-api/reference-security",
- "reference-api/reference-settings",
- "reference-api/reference-sshKey",
- "reference-api/reference-gitProvider",
- "reference-api/reference-bitbucket",
- "reference-api/reference-github",
- "reference-api/reference-gitlab",
- "reference-api/reference-user"
- ]
-}
diff --git a/apps/docs/content/docs/api/reference-api/reference-admin.mdx b/apps/docs/content/docs/api/reference-api/reference-admin.mdx
deleted file mode 100644
index a3514229b..000000000
--- a/apps/docs/content/docs/api/reference-api/reference-admin.mdx
+++ /dev/null
@@ -1,565 +0,0 @@
----
-title: admin
-full: true
----
-
-import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api";
-
-
-
-
-
-
-
-## admin-one
-
-### Authorization
-
-"} required={true}>
-
-In: `header`
-
-
-
-| Status code | Description |
-| ----------- | ----------- |
-| `200` | Successful response |
-| `default` | Error response |
-
-
-
-
-
-
-
-