Merge pull request #98 from Dokploy/feat/v0.26.0

Feat/v0.26.0
This commit is contained in:
Mauricio Siu
2025-12-08 14:38:31 -06:00
committed by GitHub
230 changed files with 9847 additions and 18327 deletions

View File

@@ -2,8 +2,6 @@
/node_modules
# generated content
.contentlayer
.content-collections
.source
# test & build

View File

@@ -1,26 +1,121 @@
# docs-v2
# Dokploy Documentation (New)
This is a Next.js application generated with
[Create Fumadocs](https://github.com/fuma-nama/fumadocs).
This is a fresh Fumadocs project with the complete Dokploy documentation migrated from the old docs project.
Run development server:
## Features
-**Modern Fumadocs Setup** - Built with the latest Fumadocs version
- 🎨 **Ocean Theme** - Beautiful ocean-themed UI
- 📱 **Responsive Design** - Works perfectly on all devices
- 🔍 **Advanced Search** - Built-in search functionality
- 🌙 **Dark Mode** - Full dark mode support
- 📚 **Complete Documentation** - All docs migrated including:
- Core documentation
- API references
- CLI documentation
- Remote Servers section
- Examples and tutorials
## Getting Started
### Development
Run the development server:
```bash
npm run dev
# or
# From workspace root
pnpm docs-new:dev
# Or from this directory
pnpm dev
# or
yarn dev
```
Open http://localhost:3000 with your browser to see the result.
The site will be available at `http://localhost:3000`
## Learn More
### Build
To learn more about Next.js and Fumadocs, take a look at the following
resources:
Build the documentation for production:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js
features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
- [Fumadocs](https://fumadocs.vercel.app) - learn about Fumadocs
```bash
# From workspace root
pnpm docs-new:build
# Or from this directory
pnpm build
```
### Type Checking
Run type checking:
```bash
# From workspace root
pnpm docs-new:typecheck
# Or from this directory
pnpm run types:check
```
## Structure
```
apps/docs-new/
├── app/ # Next.js app directory
│ ├── (home)/ # Home page
│ ├── docs/ # Documentation pages
│ │ ├── [[...slug]]/ # Dynamic doc pages
│ │ └── layout.tsx # Docs layout
│ ├── api/ # API routes
│ └── layout.tsx # Root layout
├── content/ # MDX documentation content
│ └── docs/ # All documentation files
├── lib/ # Utilities
│ ├── source.ts # Content source configuration
│ └── layout.shared.tsx # Shared layout options
├── public/ # Static assets
└── source.config.ts # Fumadocs configuration
```
## Customization
### Theme
The project uses the **Ocean theme**. To change it, edit `app/global.css`:
```css
@import 'fumadocs-ui/css/ocean.css'; /* Change this to another theme */
```
Available themes: `neutral`, `black`, `vitepress`, `dusk`, `catppuccin`, `ocean`, `purple`
### Layout Configuration
Edit `lib/layout.shared.tsx` to customize:
- Navigation title
- Links
- GitHub URL
- Other layout options
### Content
Add or edit documentation in the `content/docs/` directory. The structure follows Fumadocs conventions with `meta.json` files for navigation.
## Key Differences from Old Docs
1. **Modern API** - Uses `fumadocs-mdx:collections/server` instead of legacy approach
2. **Better Type Safety** - Full TypeScript support with proper types
3. **Simpler Configuration** - Less boilerplate, more conventions
4. **Built-in Features** - Search, OG images, and more work out of the box
5. **No Build Errors** - Clean slate without legacy issues
## Documentation
- [Fumadocs Documentation](https://fumadocs.dev)
- [Fumadocs Themes](https://fumadocs.dev/docs/ui/theme)
- [Fumadocs Layouts](https://fumadocs.dev/docs/ui/blocks/layout)
## Notes
- The `.source` directory is auto-generated - don't edit it manually
- Run `pnpm run postinstall` after making changes to content structure
- Restart dev server after adding new MDX files

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,21 @@
import { source } from "@/lib/source";
import { createFromSource } from "fumadocs-core/search/server";
import type { InferPageType } from "fumadocs-core/source";
export const { GET } = createFromSource(source);
export const { GET } = createFromSource(source, {
// https://docs.orama.com/docs/orama-js/supported-languages
language: "english",
// Configure tag filter based on the first slug (core, cli, api)
buildIndex(page: InferPageType<typeof source>) {
const tag = page.slugs[0] || "all";
return {
title: page.data.title,
description: page.data.description,
url: page.url,
id: page.url,
structuredData: page.data.structuredData,
// Assign tag based on the first slug (core, cli, api)
tag,
} as any;
},
});

View File

@@ -1,117 +1,54 @@
import { source } from "@/lib/source";
import { openapi } from "@/lib/source";
import { baseUrl } from "@/utils/metadata";
import { ImageZoom } from "fumadocs-ui/components/image-zoom";
import defaultMdxComponents from "fumadocs-ui/mdx";
import { getPageImage, source } from "@/lib/source";
import { getMDXComponents } from "@/mdx-components";
import {
DocsBody,
DocsDescription,
DocsPage,
DocsTitle,
} from "fumadocs-ui/page";
import { notFound, permanentRedirect } from "next/navigation";
DocsBody,
DocsDescription,
DocsPage,
DocsTitle,
} from "fumadocs-ui/layouts/docs/page";
import { createRelativeLink } from "fumadocs-ui/mdx";
import type { Metadata } from "next";
import { notFound } from "next/navigation";
export default async function Page(props: {
params: Promise<{ slug?: string[] }>;
}) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) {
permanentRedirect("/docs/core");
}
export default async function Page(props: PageProps<"/docs/[[...slug]]">) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();
const MDX = page.data.body;
const MDX = page.data.body;
return (
<DocsPage toc={page.data.toc} full={page.data.full}>
<DocsTitle>{page.data.title}</DocsTitle>
<DocsDescription>{page.data.description}</DocsDescription>
<DocsBody>
<MDX
components={{
...defaultMdxComponents,
ImageZoom: (props) => <ImageZoom {...(props as any)} />,
p: ({ children }) => (
<p className="text-[#3E4342] dark:text-muted-foreground">
{children}
</p>
),
li: ({ children, id }) => (
<li
{...{ id }}
className="text-[#3E4342] dark:text-muted-foreground"
>
{children}
</li>
),
APIPage: openapi.APIPage,
}}
/>
</DocsBody>
</DocsPage>
);
return (
<DocsPage toc={page.data.toc} full={page.data.full}>
<DocsTitle>{page.data.title}</DocsTitle>
<DocsDescription>{page.data.description}</DocsDescription>
<DocsBody>
<MDX
components={getMDXComponents({
// this allows you to link to other pages with relative file paths
a: createRelativeLink(source, page),
})}
/>
</DocsBody>
</DocsPage>
);
}
export async function generateStaticParams() {
return source.generateParams();
return source.generateParams();
}
export async function generateMetadata(props: {
params: Promise<{ slug?: string[] }>;
}) {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();
export async function generateMetadata(
props: PageProps<"/docs/[[...slug]]">,
): Promise<Metadata> {
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) notFound();
return {
title: page.data.title,
description: page.data.description,
robots: "index,follow",
alternates: {
canonical: new URL(`${baseUrl}${page.url}`).toString(),
languages: {
en: `${baseUrl}/${page.url}`,
},
},
openGraph: {
title: page.data.title,
description: page.data.description,
url: new URL(`${baseUrl}`).toString(),
images: [
{
url: new URL(`${baseUrl}/logo.png`).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}/logo.png`).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",
},
};
return {
title: page.data.title,
description: page.data.description,
openGraph: {
images: getPageImage(page).url,
},
};
}

View File

@@ -1,22 +1,11 @@
import { baseOptions } from "@/app/layout.config";
import { baseOptions } from "@/lib/layout.shared";
import { source } from "@/lib/source";
import { baseUrl, createMetadata } from "@/utils/metadata";
import { DocsLayout } from "fumadocs-ui/layouts/docs";
import type { ReactNode } from "react";
export const metadata = createMetadata({
title: {
template: "%s | Dokploy",
default: "Dokploy",
},
description: "The Open Source Alternative to Vercel, Heroku, and Netlify",
metadataBase: new URL(baseUrl),
});
export default function Layout({ children }: { children: ReactNode }) {
return (
<DocsLayout tree={source.pageTree} {...baseOptions}>
{children}
</DocsLayout>
);
export default function Layout({ children }: LayoutProps<"/docs">) {
return (
<DocsLayout tree={source.pageTree} {...baseOptions()}>
{children}
</DocsLayout>
);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 730 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
apps/docs/app/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,18 +1,123 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'tailwindcss';
@import 'fumadocs-ui/css/solar.css';
@import 'fumadocs-ui/css/preset.css';
@import 'fumadocs-openapi/css/preset.css';
@import "tw-animate-css";
@custom-variant dark (&:is(.dark *));
@theme inline {
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
}
:root {
--radius: 0.625rem;
--background: oklch(1 0 0);
--foreground: oklch(0.145 0 0);
--card: oklch(1 0 0);
--card-foreground: oklch(0.145 0 0);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.145 0 0);
--primary: oklch(0.205 0 0);
--primary-foreground: oklch(0.985 0 0);
--secondary: oklch(0.97 0 0);
--secondary-foreground: oklch(0.205 0 0);
--muted: oklch(0.97 0 0);
--muted-foreground: oklch(0.556 0 0);
--accent: oklch(0.97 0 0);
--accent-foreground: oklch(0.205 0 0);
--destructive: oklch(0.577 0.245 27.325);
--border: oklch(0.922 0 0);
--input: oklch(0.922 0 0);
--ring: oklch(0.708 0 0);
--chart-1: oklch(0.646 0.222 41.116);
--chart-2: oklch(0.6 0.118 184.704);
--chart-3: oklch(0.398 0.07 227.392);
--chart-4: oklch(0.828 0.189 84.429);
--chart-5: oklch(0.769 0.188 70.08);
--sidebar: oklch(0.985 0 0);
--sidebar-foreground: oklch(0.145 0 0);
--sidebar-primary: oklch(0.205 0 0);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.97 0 0);
--sidebar-accent-foreground: oklch(0.205 0 0);
--sidebar-border: oklch(0.922 0 0);
--sidebar-ring: oklch(0.708 0 0);
}
:root {
--fd-background: 0 0% 0%;
--background: 0 0% 100%;
--card: 0 0% 97.6%;
.dark {
--background: oklch(0.145 0 0);
--foreground: oklch(0.985 0 0);
--card: oklch(0.205 0 0);
--card-foreground: oklch(0.985 0 0);
--popover: oklch(0.205 0 0);
--popover-foreground: oklch(0.985 0 0);
--primary: oklch(0.922 0 0);
--primary-foreground: oklch(0.205 0 0);
--secondary: oklch(0.269 0 0);
--secondary-foreground: oklch(0.985 0 0);
--muted: oklch(0.269 0 0);
--muted-foreground: oklch(0.708 0 0);
--accent: oklch(0.269 0 0);
--accent-foreground: oklch(0.985 0 0);
--destructive: oklch(0.704 0.191 22.216);
--border: oklch(1 0 0 / 10%);
--input: oklch(1 0 0 / 15%);
--ring: oklch(0.556 0 0);
--chart-1: oklch(0.488 0.243 264.376);
--chart-2: oklch(0.696 0.17 162.48);
--chart-3: oklch(0.769 0.188 70.08);
--chart-4: oklch(0.627 0.265 303.9);
--chart-5: oklch(0.645 0.246 16.439);
--sidebar: oklch(0.205 0 0);
--sidebar-foreground: oklch(0.985 0 0);
--sidebar-primary: oklch(0.488 0.243 264.376);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.269 0 0);
--sidebar-accent-foreground: oklch(0.985 0 0);
--sidebar-border: oklch(1 0 0 / 10%);
--sidebar-ring: oklch(0.556 0 0);
}
@layer base {
* {
@apply border-border outline-ring/50;
}
.dark{
--fd-background: 0 0% 100%;
--background: 0 0% 0%;
--card: 0 0% 6.0%;
body {
@apply bg-background text-foreground;
}
}

View File

@@ -1,122 +0,0 @@
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
import {
Github,
GlobeIcon,
HeartIcon,
Rss,
LogIn,
UserPlus,
} from "lucide-react";
import Link from "next/link";
/**
* Shared layout configurations
*
* you can configure layouts individually from:
* Home Layout: app/(home)/layout.tsx
* Docs Layout: app/docs/layout.tsx
*/
export const Logo = () => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 559 446"
className="!size-8 lg:!size-10"
>
<path
className="fill-primary stroke-primary"
d="M390 56v12c.1 2.3.5 4 1 6a73 73 0 0 0 12 24c2 2.3 5.7 4 7 7 4 3.4 9.6 6.8 14 9 1.7.6 5.7 1.1 7 2 1.9 1.3 2.9 2.3 0 4v1c-.6 1.8-1.9 3.5-3 5q-3 4-7 7c-4.3 3.2-9.5 6.8-15 7h-1q-2 1.6-5 2h-4c-5.2.7-12.9 2.2-18 0h-6c-1.6 0-3-.8-4-1h-3a17 17 0 0 1-6-2h-1c-2.5-.1-4-1.2-6-2l-4-1c-8.4-2-20.3-6.6-27-12h-1c-4.6-1-9.5-4.3-13.7-6.3s-10.5-3-13.3-6.7h-1c-4-1-8.9-3.5-12-6h-1c-6.8-1.6-13.6-6-20-9-6.5-2.8-14.6-5.7-20-10h-1c-7-1.2-15.4-4-22-6h-97c-5.3 4.3-13.7 4.3-18.7 10.3S90.8 101 88 108c-.4 1.5-.8 2.3-1 4-.2 1.6-.8 4-1 5v51c.2 1.2.8 3.2 1 5 .2 2 .5 3.2 1 5a79 79 0 0 0 6 12c.8.7 1.4 2.2 2 3 1.8 2 4.9 3.4 6 6 9.5 8.3 23.5 10.3 33 18h1c5.1 1.2 12 4.8 16 8h1c4 1 8.9 3.5 12 6h1q4.6 1.2 8 4h1c2 .1 2.6 1.3 4 2 1.6.8 2.7.7 4 2h1q2.5.3 4 2h1c3 .7 6.7 2 9 4h1c4.7.8 13.4 3.1 17 6h1c2.5.1 4 1.3 6 2 1.8.4 3 .8 5 1q3 .4 5 1c1.6-.2 2 0 3 1h1q2.5-.5 4 1h1q2.5-.5 4 1h1c2.2-.2 4.5-.3 6 1h1q4-.4 7 1h45c1.2-.2 3.1-1 5-1h6c1.5-.6 2.9-1.3 5-1h1q1.5-1.4 4-1h1q1.5-1.4 4-1h1c2.4-1.3 5-1.6 8-2l5-1c2-.7 3.6-1.6 6-2 4-.7 7.2-1.7 11-3 2.3-1 4.2-2.5 7-3h1q1.5-1.7 4-2h1c1.9-1.5 3.9-2 6-3q2.9-1.6 6-3a95 95 0 0 0 11-5c4.4-2.8 8.9-6 14-8 0 0 .6.2 1 0 1.8-2.8 7-4.8 10-6 0 0 .6.2 1 0 1.5-2.4 5.3-4 8-5 0 0 .6.2 1 0 1.5-2.4 5.3-4 8-5 0 0 .6.2 1 0 1.3-2 3.8-3.1 6-4 0 0 .6.2 1 0 2-3 7.7-5.6 11-7l5-2c6.3-3.8 11.8-9.6 18-14v-1c0-1.9-.4-4.2 0-6-1-4.5-3.9-5.5-7-8h-1c-1.2 0-2.8-.2-4 0-8.9 1.7-16.5 11.3-25.2 14.8-8.8 3.4-16.9 10.7-25.8 14.2h-1c-10.9 10.6-29.2 16-42.7 23.3S343.7 234.6 328 235h-1q-1.5 1.4-4 1h-1q-1.5 1.4-4 1h-1c-1.5 1.3-3.9 1.2-6 1h-1c-1.7 1.3-4.6 1.2-7 1-1 .2-2.4 1-4 1h-5c-6.6 0-13.4.4-20 0-1.9-.1-2.7.3-4-1h-8c-2.8-.2-5.7-1.3-8-2h-2q-5.7.4-10-2h-1q-4.5 0-8-2h-1a10 10 0 0 1-6-2h-1c-5.9-.2-12-3.8-17-6l-4-1c-1.7-.5-2.8-.7-4-2h-1q-2.5-.2-4-2h-1q-3.4-.9-6-3h-1c-3.5-.8-7.3-2.9-10-5h-1c-1.7 0-2.2-.7-3-2h-1c-11.6-2.7-23.2-11.5-34.2-15.8-11-4.2-25.9-9.2-29.8-21.2h4c16.2 0 32.8-1 49 0 1.7.1 3 .8 4 1 2.1.4 3.4-.5 5 1h1c3.6.1 8.4 1.8 11 4h1a45 45 0 0 1 18 8h1q4.6 1.2 8 4h1c4.2 1 8.3 3.4 12 5q3.4 1.2 7 2c5.7 1.3 13 2.3 18 5h1c3.7-.2 7 1.1 10 2h9c1.6 0 3 .8 4 1h32c2.2-1.6 6-1 9-1h1a63 63 0 0 1 22-4 22 22 0 0 1 8-2c1.7-1.4 3.7-1.6 6-2a81 81 0 0 0 12-3c2.3-1 4.2-2.5 7-3h1q1.5-1.7 4-2h1c1.9-1.5 3.6-2.2 6-3l3-1c4.1-2.3 8.4-5.2 13-7 0 0 .6.2 1 0 1.5-2.4 6.3-5 9-6 0 0 .6.2 1 0 5.3-8.1 17.6-12.5 24.8-20.2C439.9 144 445 133 452 126v-1a12 12 0 0 1 2-5c2.1-2.2 8.9-1 12-1q2 .2 4 0c1-.2 2.3-1.2 4-1h1q2.1-1.5 5-2h1q2.1-1.9 5-3s.6.2 1 0c9-9.3 18-15.4 23-28 1.1-2.8 3.5-6.4 4-9 .2-1 .2-3 0-4-1.5-6-12.3-2.4-15.7 2.3S484.7 80 479 80h-7c-7.8 4.3-19.3 5.7-23 16a37 37 0 0 0-22-24c-1.5-.5-2.5-.7-4-1-2.1-.5-3.6-.2-5-2h-1a22 22 0 0 1-12-8c-2-2.9-3.4-6.5-6-9h-1c-3.9-.6-6.1 1-8 4m-181 45h1c2.2-.2 4.5-.3 6 1h1q2.5-.5 4 1h1a33 33 0 0 1 17 7h1c4.4 1 8.2 4.1 12 6 2.1 1 4.1 1.5 6 3h1c4 1 8.9 3.5 12 6h1c4 1 8.9 3.5 12 6h1c4 1 8.9 3.5 12 6h1a61 61 0 0 1 21 10h1c3.5.8 7.3 2.9 10 5h1c6.1 1.4 12.3 5 18 7 1.8.4 3 .8 5 1 1.8.2 3.7.8 5 1q2.5-.5 4 1h6c2.5 0 4 .3 6 1h3q-.7 2.1-3 2a46 46 0 0 1-16 7l-10 3c-2 .8-3.4 1.9-6 2h-1c-2.6 2.1-7.5 3-11 3h-1c-3.1 2.5-10.7 3.5-15 3h-1c-1.5 1.3-3.9 1.2-6 1-1 .2-2.4 1-4 1h-11c-3.8.4-8.3.4-12 0h-9c-2.3 0-4.3-.7-6-1h-3c-1.8 0-2.9-.7-4-1-3.5-.8-7-.7-10-2h-1c-4.1-.7-9.8-1.4-13-4h-1q-4-.6-7-3h-1q-2.5-.2-4-2h-1q-3.4-.9-6-3h-1c-7.2-1.7-13.3-5.9-20.2-8.8-7-2.8-16.2-4.3-22.8-7.2h-11c-14 0-28.9.3-42-1-2.3 0-4.8.3-7 0a6 6 0 0 1-5-5c-1.8-4.8-.4-10.4 0-15 0-4.3-.4-8.7 0-13 .2-3.2 2.2-7.3 4-10q2-3 5-5c2.1-2 5.4-2.3 8-3 15.6-3.9 36.3-1 53-1 5.2 0 12-.5 17 0s12.2-1.8 16 1Z"
/>
<path
className="fill-primary stroke-primary"
d="M162 132v1c1.8 2.9 4.5 5.3 8 6 .3-.2 3.7-.2 4 0 7-1.4 9.2-8.8 7-15v-1a14 14 0 0 0-7-4c-.3.2-3.7.2-4 0-6.5 1.3-8.6 6.8-8 13Z"
/>
<path
className="fill-primary stroke-primary"
d="M465 211h-1c-18.2 14.6-41.2 24.6-60 39-19 14.2-42.7 29.3-66 34l-4 1c-2.4 1-4 2-7 2h-1q-3.5 2-8 2h-1c-1.3 1.2-3 1.1-5 1h-2q-2.6 1.1-6 1h-2c-3 1.2-6.5 1-10 1-6.3.6-13.8.6-20 0-3.4 0-8.4.9-11-1h-1c-2.2.2-4.5.3-6-1h-1c-2 .2-3.7.2-5-1h-1c-7.6.5-16.5-3.4-23-6l-4-1a129 129 0 0 1-36.2-15.8c-10.4-6.6-23.2-12.8-32.5-20.5-9.2-7.7-23.8-12.8-30.3-22.7h-1c-2.3-1.4-4.5-2.7-6-5h-1c-4-2.5-8.5-5.2-12-8h-9a9 9 0 0 0-6 7c.3 3.3 0 6.7 0 10v9c.2 1.6 1 3.8 1 6v3c.2 1 1.2 2.2 1 4v1c1.2 1.2.8 2.2 1 4 .8 6.7 3 12.6 5 19 1.7 4.3 4.2 9.1 5 14v1q1.8 1.5 2 4v1a36 36 0 0 1 5 10c.7 2 1 3 2 5 8 12.7 15.7 25.5 25.8 37.3 10 11.7 20.8 20.6 32.4 30.4 11.7 9.9 28.3 14 39.8 23.3h1q2.5.3 4 2h1c2.8.4 4.8 2 7 3l7 2c5.7 1.3 13 2.3 18 5h1c2.1-.3 3.6.8 5 1h3c2.8.2 5.8 1 8 2h8c2.1 0 4.6.8 6 1h21c1.2-.2 3.2-1 5-1h9c3.3-1 7-2.4 11-2h1c2.7-2.2 7.4-2.4 11-3a55 55 0 0 0 8-2c6.5-2.6 13.9-6.3 21-8h1c8.5-6.8 20.6-9.7 29.2-16.8 8.7-7 18.3-12.8 26.8-20.2 4.4-3.8 9-9 13-13 14.8-14.8 20.7-34.6 33-50v-1q.9-3.4 3-6v-1q.3-2.5 2-4v-1c.5-3.3 2-8.6 4-11v-1q0-3.5 2-6v-1c1.1-6.7 2.4-15 5-21v-1c-.2-2-.2-3.7 1-5v-8c0-5.3-.5-10.8 0-16a14 14 0 0 0-4-6c-1-.5-1.1-.4-2-1h-6q-2.1 1.5-5 2m-6 38c-2.1 13.4-21.2 20.3-31 30-10 9.5-23.7 19-35 27-11.5 8-25.1 19.7-39 23h-1a22 22 0 0 1-10 4h-1a25 25 0 0 1-12 4h-1q-3.5 2-8 2h-1c-1.1 1.1-2.3 1-4 1h-2c-1.2.4-2.2 1-4 1h-2c-1.8.7-3.6 1.3-6 1h-1c-1.2 1.2-2.3 1-4 1h-5c-5.7.6-12.3.8-18 0h-4c-1.9 0-2.7-.6-4-1h-6c-1.9 0-2.7.3-4-1h-1q-2.5.5-4-1h-1c-8.1.5-16.8-3.6-24.2-5.8S210 329.8 204 325h-1c-12.8-5-27.1-15.6-37.7-24.3S138.8 284.2 131 273c-.3-.2-1 0-1 0-5.7-4.4-16.6-10-19-17-.9-2.6-1-5.4-2-8-.8-2.2-2.5-5-2-8a667 667 0 0 0 88 56h1q3.4.9 6 3h1c2.8.4 4.8 2 7 3q5 1.8 10 3l6 2q2.9.6 6 1 3 .4 5 1c1.6-.2 2 0 3 1h1c2-.2 3.7-.2 5 1h1c2.2-.3 3.4.4 5 1h8c1.6 0 3 .9 4 1h40c1.8-1.3 4.6-1.2 7-1h1c1.2-1.2 3.2-1.2 5-1h1c1.2-1.2 3.2-1.2 5-1h1c1.1-1.1 2.3-1 4-1h2c3.5-1.7 6.9-2.3 11-3l4-1c3.4-1.4 7.1-3 11-4 1.5-.4 2.5-.5 4-1 1.4-.7 2-1.9 4-2h1q2.6-2.1 6-3h1c2.5-2 6-3.8 9-5l3-1c1.4-.9 2-2.5 4-3h1q1.4-2.2 4-3h1c7.3-7.7 19-13.2 27.7-19.3 8.8-6.1 18.2-15 28.3-18.7.4-.2 1 0 1 0q3.8-3.9 9-6c1.3 2.5-.5 6.7-1 10m-20 55c-.2.4 0 1 0 1-3.4 9.6-12.7 19-19 27a88 88 0 0 1-12 12 214 214 0 0 1-26.7 20.3c-9.5 5.8-20 14.8-31.3 16.7h-1a22 22 0 0 1-10 4h-1c-3.2 2.6-8.9 3.3-13 4h-1q-1.5 1.4-4 1h-1q-1.5 1.4-4 1h-1c-4.9 2.3-10.5 1-16 2-1 .2-2.5 1-4 1-6.2.4-12.8.3-19 0-1.8 0-3.8-.8-5-1h-4c-1.6 0-3-.9-4-1h-4c-3.9-.3-8.8-1.3-12-3h-1c-3.3-.5-7.5-1-10-3h-1c-3.6-.1-8.4-1.8-11-4h-1c-3.9-.6-8-2.6-11-5h-1c-16.1-3.8-32.2-18.9-45-29a200 200 0 0 1-40-51c17.7 11.5 35 25.5 52 38h1c4 1.6 12.8 5.4 15 9h1c4.6 1 10.4 4.1 14 7h1q2.5.3 4 2h1c3.3.5 8.6 2 11 4h1q3.5 0 6 2h1q2.5-.5 4 1h1q2.5-.5 4 1h1c3.8-.2 7.9 1 11 2h9c1.6 0 3 .8 4 1h32c1.2-.2 3.2-1 5-1h8a139 139 0 0 1 20-4l5-1c2-.7 3.7-1.5 6-2l4-1c1.5-.6 3-1.7 5-2h1q3-2.4 7-3h1q2.6-2.1 6-3h1c11.7-9.4 27.6-14.6 39-25 11.6-10.3 25-18.5 37-28a15 15 0 0 1-5 10Z"
/>
</svg>
);
};
export const baseOptions: BaseLayoutProps = {
nav: {
// title: "Dokploy",
children: (
<Link href="/docs/core" className="flex items-center gap-2">
<Logo />
<span className="text-foreground font-semibold">Dokploy</span>
</Link>
),
},
links: [
{
text: "Login",
url: "https://app.dokploy.com/",
active: "nested-url",
icon: <LogIn />,
},
{
text: "Sign Up",
url: "https://app.dokploy.com/register",
active: "nested-url",
icon: <UserPlus />,
},
{
text: "Website",
url: "https://dokploy.com",
active: "nested-url",
icon: <GlobeIcon />,
},
{
text: "Discord",
url: "https://discord.com/invite/2tBnJ3jDJc",
active: "nested-url",
icon: (
<>
<svg
role="img"
className="size-6 "
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z" />
</svg>
</>
),
},
{
text: "Support",
url: "https://opencollective.com/dokploy",
active: "nested-url",
icon: (
<>
<HeartIcon fill="currentColor" />
</>
),
},
{
text: "Github",
url: "https://github.com/dokploy/dokploy",
active: "nested-url",
icon: (
<>
<Github fill="currentColor" />
</>
),
},
{
text: "Blog",
url: "https://dokploy.com/blog",
active: "nested-url",
icon: (
<>
<Rss />
</>
),
},
],
};

View File

@@ -1,24 +1,50 @@
import { RootProvider } from "fumadocs-ui/provider/next";
import "./global.css";
import { RootProvider } from "fumadocs-ui/provider";
import { Inter } from "next/font/google";
import type { ReactNode } from "react";
import SearchDialog from "@/components/SearchDialog";
import { GoogleAnalytics } from "@next/third-parties/google";
import type { Metadata } from "next";
import { Inter } from "next/font/google";
const inter = Inter({
subsets: ["latin"],
subsets: ["latin"],
});
export default async function Layout({
children,
...rest
}: {
children: ReactNode;
}) {
return (
<html lang="en" className={inter.className} suppressHydrationWarning>
<body className="flex flex-col min-h-screen">
<GoogleAnalytics gaId="G-HZ71HG38HN" />
<RootProvider>{children}</RootProvider>
</body>
</html>
);
export const metadata: Metadata = {
title: {
default: "Dokploy Documentation",
template: "%s | Dokploy",
},
description:
"Open Source Alternative to Vercel, Netlify and Heroku. Deploy your applications with ease.",
keywords: [
"dokploy",
"deployment",
"docker",
"hosting",
"devops",
"open source",
],
authors: [{ name: "Dokploy Team" }],
openGraph: {
title: "Dokploy Documentation",
description: "Open Source Alternative to Vercel, Netlify and Heroku",
type: "website",
},
};
export default function Layout({ children }: LayoutProps<"/">) {
return (
<html lang="en" className={inter.className} suppressHydrationWarning>
<body className="flex flex-col min-h-screen">
<GoogleAnalytics gaId="G-HZ71HG38HN" />
<RootProvider
search={{
SearchDialog,
}}
>
{children}
</RootProvider>
</body>
</html>
);
}

View File

@@ -0,0 +1,10 @@
import { getLLMText, source } from "@/lib/source";
export const revalidate = false;
export async function GET() {
const scan = source.getPages().map(getLLMText);
const scanned = await Promise.all(scan);
return new Response(scanned.join("\n\n"));
}

View File

@@ -0,0 +1,34 @@
import { getPageImage, source } from "@/lib/source";
import { generate as DefaultImage } from "fumadocs-ui/og";
import { notFound } from "next/navigation";
import { ImageResponse } from "next/og";
export const revalidate = false;
export async function GET(
_req: Request,
{ params }: RouteContext<"/og/docs/[...slug]">,
) {
const { slug } = await params;
const page = source.getPage(slug.slice(0, -1));
if (!page) notFound();
return new ImageResponse(
<DefaultImage
title={page.data.title}
description={page.data.description}
site="My App"
/>,
{
width: 1200,
height: 630,
},
);
}
export function generateStaticParams() {
return source.getPages().map((page) => ({
lang: page.locale,
slug: getPageImage(page).segments,
}));
}

View File

@@ -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",
};
}

View File

@@ -1,19 +0,0 @@
import { source } from "@/lib/source";
import { url } from "@/utils/metadata";
import type { MetadataRoute } from "next";
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
return [
...(await Promise.all(
source.getPages().map(async (page) => {
const { lastModified } = page.data;
return {
url: url(page.url),
lastModified: lastModified ? new Date(lastModified) : undefined,
changeFrequency: "weekly",
priority: 0.5,
} as MetadataRoute.Sitemap[number];
}),
)),
];
}

22
apps/docs/components.json Normal file
View File

@@ -0,0 +1,22 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "",
"css": "app/global.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {}
}

View File

@@ -0,0 +1,27 @@
import type { ComponentPropsWithoutRef } from "react";
export function Logo(props: ComponentPropsWithoutRef<"svg">) {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 559 446"
className="h-6 w-6"
{...props}
>
<path
className="fill-fd-foreground"
d="M390 56v12c.1 2.3.5 4 1 6a73 73 0 0 0 12 24c2 2.3 5.7 4 7 7 4 3.4 9.6 6.8 14 9 1.7.6 5.7 1.1 7 2 1.9 1.3 2.9 2.3 0 4v1c-.6 1.8-1.9 3.5-3 5q-3 4-7 7c-4.3 3.2-9.5 6.8-15 7h-1q-2 1.6-5 2h-4c-5.2.7-12.9 2.2-18 0h-6c-1.6 0-3-.8-4-1h-3a17 17 0 0 1-6-2h-1c-2.5-.1-4-1.2-6-2l-4-1c-8.4-2-20.3-6.6-27-12h-1c-4.6-1-9.5-4.3-13.7-6.3s-10.5-3-13.3-6.7h-1c-4-1-8.9-3.5-12-6h-1c-6.8-1.6-13.6-6-20-9-6.5-2.8-14.6-5.7-20-10h-1c-7-1.2-15.4-4-22-6h-97c-5.3 4.3-13.7 4.3-18.7 10.3S90.8 101 88 108c-.4 1.5-.8 2.3-1 4-.2 1.6-.8 4-1 5v51c.2 1.2.8 3.2 1 5 .2 2 .5 3.2 1 5a79 79 0 0 0 6 12c.8.7 1.4 2.2 2 3 1.8 2 4.9 3.4 6 6 9.5 8.3 23.5 10.3 33 18h1c5.1 1.2 12 4.8 16 8h1c4 1 8.9 3.5 12 6h1q4.6 1.2 8 4h1c2 .1 2.6 1.3 4 2 1.6.8 2.7.7 4 2h1q2.5.3 4 2h1c3 .7 6.7 2 9 4h1c4.7.8 13.4 3.1 17 6h1c2.5.1 4 1.3 6 2 1.8.4 3 .8 5 1q3 .4 5 1c1.6-.2 2 0 3 1h1q2.5-.5 4 1h1q2.5-.5 4 1h1c2.2-.2 4.5-.3 6 1h1q4-.4 7 1h45c1.2-.2 3.1-1 5-1h6c1.5-.6 2.9-1.3 5-1h1q1.5-1.4 4-1h1q1.5-1.4 4-1h1c2.4-1.3 5-1.6 8-2l5-1c2-.7 3.6-1.6 6-2 4-.7 7.2-1.7 11-3 2.3-1 4.2-2.5 7-3h1q1.5-1.7 4-2h1c1.9-1.5 3.9-2 6-3q2.9-1.6 6-3a95 95 0 0 0 11-5c4.4-2.8 8.9-6 14-8 0 0 .6.2 1 0 1.8-2.8 7-4.8 10-6 0 0 .6.2 1 0 1.5-2.4 5.3-4 8-5 0 0 .6.2 1 0 1.5-2.4 5.3-4 8-5 0 0 .6.2 1 0 1.3-2 3.8-3.1 6-4 0 0 .6.2 1 0 2-3 7.7-5.6 11-7l5-2c6.3-3.8 11.8-9.6 18-14v-1c0-1.9-.4-4.2 0-6-1-4.5-3.9-5.5-7-8h-1c-1.2 0-2.8-.2-4 0-8.9 1.7-16.5 11.3-25.2 14.8-8.8 3.4-16.9 10.7-25.8 14.2h-1c-10.9 10.6-29.2 16-42.7 23.3S343.7 234.6 328 235h-1q-1.5 1.4-4 1h-1q-1.5 1.4-4 1h-1c-1.5 1.3-3.9 1.2-6 1h-1c-1.7 1.3-4.6 1.2-7 1-1 .2-2.4 1-4 1h-5c-6.6 0-13.4.4-20 0-1.9-.1-2.7.3-4-1h-8c-2.8-.2-5.7-1.3-8-2h-2q-5.7.4-10-2h-1q-4.5 0-8-2h-1a10 10 0 0 1-6-2h-1c-5.9-.2-12-3.8-17-6l-4-1c-1.7-.5-2.8-.7-4-2h-1q-2.5-.2-4-2h-1q-3.4-.9-6-3h-1c-3.5-.8-7.3-2.9-10-5h-1c-1.7 0-2.2-.7-3-2h-1c-11.6-2.7-23.2-11.5-34.2-15.8-11-4.2-25.9-9.2-29.8-21.2h4c16.2 0 32.8-1 49 0 1.7.1 3 .8 4 1 2.1.4 3.4-.5 5 1h1c3.6.1 8.4 1.8 11 4h1a45 45 0 0 1 18 8h1q4.6 1.2 8 4h1c4.2 1 8.3 3.4 12 5q3.4 1.2 7 2c5.7 1.3 13 2.3 18 5h1c3.7-.2 7 1.1 10 2h9c1.6 0 3 .8 4 1h32c2.2-1.6 6-1 9-1h1a63 63 0 0 1 22-4 22 22 0 0 1 8-2c1.7-1.4 3.7-1.6 6-2a81 81 0 0 0 12-3c2.3-1 4.2-2.5 7-3h1q1.5-1.7 4-2h1c1.9-1.5 3.6-2.2 6-3l3-1c4.1-2.3 8.4-5.2 13-7 0 0 .6.2 1 0 1.5-2.4 6.3-5 9-6 0 0 .6.2 1 0 5.3-8.1 17.6-12.5 24.8-20.2C439.9 144 445 133 452 126v-1a12 12 0 0 1 2-5c2.1-2.2 8.9-1 12-1q2 .2 4 0c1-.2 2.3-1.2 4-1h1q2.1-1.5 5-2h1q2.1-1.9 5-3s.6.2 1 0c9-9.3 18-15.4 23-28 1.1-2.8 3.5-6.4 4-9 .2-1 .2-3 0-4-1.5-6-12.3-2.4-15.7 2.3S484.7 80 479 80h-7c-7.8 4.3-19.3 5.7-23 16a37 37 0 0 0-22-24c-1.5-.5-2.5-.7-4-1-2.1-.5-3.6-.2-5-2h-1a22 22 0 0 1-12-8c-2-2.9-3.4-6.5-6-9h-1c-3.9-.6-6.1 1-8 4m-181 45h1c2.2-.2 4.5-.3 6 1h1q2.5-.5 4 1h1a33 33 0 0 1 17 7h1c4.4 1 8.2 4.1 12 6 2.1 1 4.1 1.5 6 3h1c4 1 8.9 3.5 12 6h1c4 1 8.9 3.5 12 6h1c4 1 8.9 3.5 12 6h1a61 61 0 0 1 21 10h1c3.5.8 7.3 2.9 10 5h1c6.1 1.4 12.3 5 18 7 1.8.4 3 .8 5 1 1.8.2 3.7.8 5 1q2.5-.5 4 1h6c2.5 0 4 .3 6 1h3q-.7 2.1-3 2a46 46 0 0 1-16 7l-10 3c-2 .8-3.4 1.9-6 2h-1c-2.6 2.1-7.5 3-11 3h-1c-3.1 2.5-10.7 3.5-15 3h-1c-1.5 1.3-3.9 1.2-6 1-1 .2-2.4 1-4 1h-11c-3.8.4-8.3.4-12 0h-9c-2.3 0-4.3-.7-6-1h-3c-1.8 0-2.9-.7-4-1-3.5-.8-7-.7-10-2h-1c-4.1-.7-9.8-1.4-13-4h-1q-4-.6-7-3h-1q-2.5-.2-4-2h-1q-3.4-.9-6-3h-1c-7.2-1.7-13.3-5.9-20.2-8.8-7-2.8-16.2-4.3-22.8-7.2h-11c-14 0-28.9.3-42-1-2.3 0-4.8.3-7 0a6 6 0 0 1-5-5c-1.8-4.8-.4-10.4 0-15 0-4.3-.4-8.7 0-13 .2-3.2 2.2-7.3 4-10q2-3 5-5c2.1-2 5.4-2.3 8-3 15.6-3.9 36.3-1 53-1 5.2 0 12-.5 17 0s12.2-1.8 16 1Z"
/>
<path
className="fill-fd-foreground"
d="M162 132v1c1.8 2.9 4.5 5.3 8 6 .3-.2 3.7-.2 4 0 7-1.4 9.2-8.8 7-15v-1a14 14 0 0 0-7-4c-.3.2-3.7.2-4 0-6.5 1.3-8.6 6.8-8 13Z"
/>
<path
className="fill-fd-foreground"
d="M465 211h-1c-18.2 14.6-41.2 24.6-60 39-19 14.2-42.7 29.3-66 34l-4 1c-2.4 1-4 2-7 2h-1q-3.5 2-8 2h-1c-1.3 1.2-3 1.1-5 1h-2q-2.6 1.1-6 1h-2c-3 1.2-6.5 1-10 1-6.3.6-13.8.6-20 0-3.4 0-8.4.9-11-1h-1c-2.2.2-4.5.3-6-1h-1c-2 .2-3.7.2-5-1h-1c-7.6.5-16.5-3.4-23-6l-4-1a129 129 0 0 1-36.2-15.8c-10.4-6.6-23.2-12.8-32.5-20.5-9.2-7.7-23.8-12.8-30.3-22.7h-1c-2.3-1.4-4.5-2.7-6-5h-1c-4-2.5-8.5-5.2-12-8h-9a9 9 0 0 0-6 7c.3 3.3 0 6.7 0 10v9c.2 1.6 1 3.8 1 6v3c.2 1 1.2 2.2 1 4v1c1.2 1.2.8 2.2 1 4 .8 6.7 3 12.6 5 19 1.7 4.3 4.2 9.1 5 14v1q1.8 1.5 2 4v1a36 36 0 0 1 5 10c.7 2 1 3 2 5 8 12.7 15.7 25.5 25.8 37.3 10 11.7 20.8 20.6 32.4 30.4 11.7 9.9 28.3 14 39.8 23.3h1q2.5.3 4 2h1c2.8.4 4.8 2 7 3l7 2c5.7 1.3 13 2.3 18 5h1c2.1-.3 3.6.8 5 1h3c2.8.2 5.8 1 8 2h8c2.1 0 4.6.8 6 1h21c1.2-.2 3.2-1 5-1h9c3.3-1 7-2.4 11-2h1c2.7-2.2 7.4-2.4 11-3a55 55 0 0 0 8-2c6.5-2.6 13.9-6.3 21-8h1c8.5-6.8 20.6-9.7 29.2-16.8 8.7-7 18.3-12.8 26.8-20.2 4.4-3.8 9-9 13-13 14.8-14.8 20.7-34.6 33-50v-1q.9-3.4 3-6v-1q.3-2.5 2-4v-1c.5-3.3 2-8.6 4-11v-1q0-3.5 2-6v-1c1.1-6.7 2.4-15 5-21v-1c-.2-2-.2-3.7 1-5v-8c0-5.3-.5-10.8 0-16a14 14 0 0 0-4-6c-1-.5-1.1-.4-2-1h-6q-2.1 1.5-5 2m-6 38c-2.1 13.4-21.2 20.3-31 30-10 9.5-23.7 19-35 27-11.5 8-25.1 19.7-39 23h-1a22 22 0 0 1-10 4h-1a25 25 0 0 1-12 4h-1q-3.5 2-8 2h-1c-1.1 1.1-2.3 1-4 1h-2c-1.2.4-2.2 1-4 1h-2c-1.8.7-3.6 1.3-6 1h-1c-1.2 1.2-2.3 1-4 1h-5c-5.7.6-12.3.8-18 0h-4c-1.9 0-2.7-.6-4-1h-6c-1.9 0-2.7.3-4-1h-1q-2.5.5-4-1h-1c-8.1.5-16.8-3.6-24.2-5.8S210 329.8 204 325h-1c-12.8-5-27.1-15.6-37.7-24.3S138.8 284.2 131 273c-.3-.2-1 0-1 0-5.7-4.4-16.6-10-19-17-.9-2.6-1-5.4-2-8-.8-2.2-2.5-5-2-8a667 667 0 0 0 88 56h1q3.4.9 6 3h1c2.8.4 4.8 2 7 3q5 1.8 10 3l6 2q2.9.6 6 1 3 .4 5 1c1.6-.2 2 0 3 1h1c2-.2 3.7-.2 5 1h1c2.2-.3 3.4.4 5 1h8c1.6 0 3 .9 4 1h40c1.8-1.3 4.6-1.2 7-1h1c1.2-1.2 3.2-1.2 5-1h1c1.2-1.2 3.2-1.2 5-1h1c1.1-1.1 2.3-1 4-1h2c3.5-1.7 6.9-2.3 11-3l4-1c3.4-1.4 7.1-3 11-4 1.5-.4 2.5-.5 4-1 1.4-.7 2-1.9 4-2h1q2.6-2.1 6-3h1c2.5-2 6-3.8 9-5l3-1c1.4-.9 2-2.5 4-3h1q1.4-2.2 4-3h1c7.3-7.7 19-13.2 27.7-19.3 8.8-6.1 18.2-15 28.3-18.7.4-.2 1 0 1 0q3.8-3.9 9-6c1.3 2.5-.5 6.7-1 10m-20 55c-.2.4 0 1 0 1-3.4 9.6-12.7 19-19 27a88 88 0 0 1-12 12 214 214 0 0 1-26.7 20.3c-9.5 5.8-20 14.8-31.3 16.7h-1a22 22 0 0 1-10 4h-1c-3.2 2.6-8.9 3.3-13 4h-1q-1.5 1.4-4 1h-1q-1.5 1.4-4 1h-1c-4.9 2.3-10.5 1-16 2-1 .2-2.5 1-4 1-6.2.4-12.8.3-19 0-1.8 0-3.8-.8-5-1h-4c-1.6 0-3-.9-4-1h-4c-3.9-.3-8.8-1.3-12-3h-1c-3.3-.5-7.5-1-10-3h-1c-3.6-.1-8.4-1.8-11-4h-1c-3.9-.6-8-2.6-11-5h-1c-16.1-3.8-32.2-18.9-45-29a200 200 0 0 1-40-51c17.7 11.5 35 25.5 52 38h1c4 1.6 12.8 5.4 15 9h1c4.6 1 10.4 4.1 14 7h1q2.5.3 4 2h1c3.3.5 8.6 2 11 4h1q3.5 0 6 2h1q2.5-.5 4 1h1q2.5-.5 4 1h1c3.8-.2 7.9 1 11 2h9c1.6 0 3 .8 4 1h32c1.2-.2 3.2-1 5-1h8a139 139 0 0 1 20-4l5-1c2-.7 3.7-1.5 6-2l4-1c1.5-.6 3-1.7 5-2h1q3-2.4 7-3h1q2.6-2.1 6-3h1c11.7-9.4 27.6-14.6 39-25 11.6-10.3 25-18.5 37-28a15 15 0 0 1-5 10Z"
/>
</svg>
);
}

View File

@@ -0,0 +1,95 @@
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { Menu } from "lucide-react";
import { Github, Globe, Heart, LogIn, Rss, UserPlus } from "lucide-react";
export function NavLinks() {
const links = [
{
text: "Login",
url: "https://app.dokploy.com/",
icon: LogIn,
},
{
text: "Sign Up",
url: "https://app.dokploy.com/register",
icon: UserPlus,
},
{
text: "Website",
url: "https://dokploy.com",
icon: Globe,
},
{
text: "Discord",
url: "https://discord.com/invite/2tBnJ3jDJc",
icon: () => (
<svg
role="img"
className="size-4"
fill="currentColor"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z" />
</svg>
),
},
{
text: "Support",
url: "https://opencollective.com/dokploy",
icon: Heart,
},
{
text: "Github",
url: "https://github.com/dokploy/dokploy",
icon: Github,
},
{
text: "Blog",
url: "https://dokploy.com/blog",
icon: Rss,
},
];
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<button
className="inline-flex items-center justify-center rounded-md p-2 hover:bg-fd-accent hover:text-fd-accent-foreground transition-colors"
aria-label="Quick links menu"
>
<Menu className="size-4" />
</button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end" className="w-56">
{links.map((link, index) => {
const IconComponent = link.icon;
const showSeparator = index === 2;
return (
<div key={link.text}>
<DropdownMenuItem asChild>
<a
href={link.url}
target="_blank"
rel="noopener noreferrer"
className="flex items-center gap-3 cursor-pointer"
>
<IconComponent className="size-4 text-fd-muted-foreground" />
<span>{link.text}</span>
</a>
</DropdownMenuItem>
{showSeparator && <DropdownMenuSeparator />}
</div>
);
})}
</DropdownMenuContent>
</DropdownMenu>
);
}

View File

@@ -0,0 +1,54 @@
"use client";
import { useDocsSearch } from "fumadocs-core/search/client";
import {
SearchDialog,
SearchDialogClose,
SearchDialogContent,
SearchDialogFooter,
SearchDialogHeader,
SearchDialogIcon,
SearchDialogInput,
SearchDialogList,
SearchDialogOverlay,
type SharedProps,
TagsList,
TagsListItem,
} from "fumadocs-ui/components/dialog/search";
import { useState } from "react";
export default function CustomSearchDialog(props: SharedProps) {
const [tag, setTag] = useState<string | undefined>("all");
// When tag is "all", don't filter by tag (pass undefined)
const { search, setSearch, query } = useDocsSearch({
type: "fetch",
tag: tag === "all" ? undefined : tag,
});
return (
<SearchDialog
search={search}
onSearchChange={setSearch}
isLoading={query.isLoading}
{...props}
>
<SearchDialogOverlay />
<SearchDialogContent>
<SearchDialogHeader>
<SearchDialogIcon />
<SearchDialogInput />
<SearchDialogClose />
</SearchDialogHeader>
<SearchDialogList items={query.data !== "empty" ? query.data : null} />
<SearchDialogFooter>
<TagsList tag={tag} onTagChange={setTag}>
<TagsListItem value="all">All</TagsListItem>
<TagsListItem value="core">Core</TagsListItem>
<TagsListItem value="cli">CLI</TagsListItem>
<TagsListItem value="api">API</TagsListItem>
</TagsList>
</SearchDialogFooter>
</SearchDialogContent>
</SearchDialog>
);
}

View File

@@ -0,0 +1,257 @@
"use client";
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
import type * as React from "react";
import { cn } from "@/lib/utils";
function DropdownMenu({
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {
return <DropdownMenuPrimitive.Root data-slot="dropdown-menu" {...props} />;
}
function DropdownMenuPortal({
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {
return (
<DropdownMenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
);
}
function DropdownMenuTrigger({
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {
return (
<DropdownMenuPrimitive.Trigger
data-slot="dropdown-menu-trigger"
{...props}
/>
);
}
function DropdownMenuContent({
className,
sideOffset = 4,
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {
return (
<DropdownMenuPrimitive.Portal>
<DropdownMenuPrimitive.Content
data-slot="dropdown-menu-content"
sideOffset={sideOffset}
className={cn(
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
className,
)}
{...props}
/>
</DropdownMenuPrimitive.Portal>
);
}
function DropdownMenuGroup({
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {
return (
<DropdownMenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />
);
}
function DropdownMenuItem({
className,
inset,
variant = "default",
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
inset?: boolean;
variant?: "default" | "destructive";
}) {
return (
<DropdownMenuPrimitive.Item
data-slot="dropdown-menu-item"
data-inset={inset}
data-variant={variant}
className={cn(
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
className,
)}
{...props}
/>
);
}
function DropdownMenuCheckboxItem({
className,
children,
checked,
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {
return (
<DropdownMenuPrimitive.CheckboxItem
data-slot="dropdown-menu-checkbox-item"
className={cn(
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
className,
)}
checked={checked}
{...props}
>
<span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
<DropdownMenuPrimitive.ItemIndicator>
<CheckIcon className="size-4" />
</DropdownMenuPrimitive.ItemIndicator>
</span>
{children}
</DropdownMenuPrimitive.CheckboxItem>
);
}
function DropdownMenuRadioGroup({
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {
return (
<DropdownMenuPrimitive.RadioGroup
data-slot="dropdown-menu-radio-group"
{...props}
/>
);
}
function DropdownMenuRadioItem({
className,
children,
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {
return (
<DropdownMenuPrimitive.RadioItem
data-slot="dropdown-menu-radio-item"
className={cn(
"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
className,
)}
{...props}
>
<span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
<DropdownMenuPrimitive.ItemIndicator>
<CircleIcon className="size-2 fill-current" />
</DropdownMenuPrimitive.ItemIndicator>
</span>
{children}
</DropdownMenuPrimitive.RadioItem>
);
}
function DropdownMenuLabel({
className,
inset,
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
inset?: boolean;
}) {
return (
<DropdownMenuPrimitive.Label
data-slot="dropdown-menu-label"
data-inset={inset}
className={cn(
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
className,
)}
{...props}
/>
);
}
function DropdownMenuSeparator({
className,
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {
return (
<DropdownMenuPrimitive.Separator
data-slot="dropdown-menu-separator"
className={cn("bg-border -mx-1 my-1 h-px", className)}
{...props}
/>
);
}
function DropdownMenuShortcut({
className,
...props
}: React.ComponentProps<"span">) {
return (
<span
data-slot="dropdown-menu-shortcut"
className={cn(
"text-muted-foreground ml-auto text-xs tracking-widest",
className,
)}
{...props}
/>
);
}
function DropdownMenuSub({
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {
return <DropdownMenuPrimitive.Sub data-slot="dropdown-menu-sub" {...props} />;
}
function DropdownMenuSubTrigger({
className,
inset,
children,
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
inset?: boolean;
}) {
return (
<DropdownMenuPrimitive.SubTrigger
data-slot="dropdown-menu-sub-trigger"
data-inset={inset}
className={cn(
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
className,
)}
{...props}
>
{children}
<ChevronRightIcon className="ml-auto size-4" />
</DropdownMenuPrimitive.SubTrigger>
);
}
function DropdownMenuSubContent({
className,
...props
}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {
return (
<DropdownMenuPrimitive.SubContent
data-slot="dropdown-menu-sub-content"
className={cn(
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
className,
)}
{...props}
/>
);
}
export {
DropdownMenu,
DropdownMenuPortal,
DropdownMenuTrigger,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuLabel,
DropdownMenuItem,
DropdownMenuCheckboxItem,
DropdownMenuRadioGroup,
DropdownMenuRadioItem,
DropdownMenuSeparator,
DropdownMenuShortcut,
DropdownMenuSub,
DropdownMenuSubTrigger,
DropdownMenuSubContent,
};

View File

@@ -0,0 +1,19 @@
---
title: Admin
full: true
_openapi:
method: POST
toc:
- depth: 2
title: Admin setup Monitoring
url: '#admin-setup-monitoring'
structuredData:
headings:
- content: Admin setup Monitoring
id: admin-setup-monitoring
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/admin.setupMonitoring","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,58 @@
---
title: Ai
full: true
_openapi:
toc:
- depth: 2
title: Ai one
url: '#ai-one'
- depth: 2
title: Ai get Models
url: '#ai-get-models'
- depth: 2
title: Ai create
url: '#ai-create'
- depth: 2
title: Ai update
url: '#ai-update'
- depth: 2
title: Ai get All
url: '#ai-get-all'
- depth: 2
title: Ai get
url: '#ai-get'
- depth: 2
title: Ai delete
url: '#ai-delete'
- depth: 2
title: Ai suggest
url: '#ai-suggest'
- depth: 2
title: Ai deploy
url: '#ai-deploy'
structuredData:
headings:
- content: Ai one
id: ai-one
- content: Ai get Models
id: ai-get-models
- content: Ai create
id: ai-create
- content: Ai update
id: ai-update
- content: Ai get All
id: ai-get-all
- content: Ai get
id: ai-get
- content: Ai delete
id: ai-delete
- content: Ai suggest
id: ai-suggest
- content: Ai deploy
id: ai-deploy
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/ai.one","method":"get"},{"path":"/ai.getModels","method":"get"},{"path":"/ai.create","method":"post"},{"path":"/ai.update","method":"post"},{"path":"/ai.getAll","method":"get"},{"path":"/ai.get","method":"get"},{"path":"/ai.delete","method":"post"},{"path":"/ai.suggest","method":"post"},{"path":"/ai.deploy","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,148 @@
---
title: Application
full: true
_openapi:
toc:
- depth: 2
title: Application create
url: '#application-create'
- depth: 2
title: Application one
url: '#application-one'
- depth: 2
title: Application reload
url: '#application-reload'
- depth: 2
title: Application delete
url: '#application-delete'
- depth: 2
title: Application stop
url: '#application-stop'
- depth: 2
title: Application start
url: '#application-start'
- depth: 2
title: Application redeploy
url: '#application-redeploy'
- depth: 2
title: Application save Environment
url: '#application-save-environment'
- depth: 2
title: Application save Build Type
url: '#application-save-build-type'
- depth: 2
title: Application save Github Provider
url: '#application-save-github-provider'
- depth: 2
title: Application save Gitlab Provider
url: '#application-save-gitlab-provider'
- depth: 2
title: Application save Bitbucket Provider
url: '#application-save-bitbucket-provider'
- depth: 2
title: Application save Gitea Provider
url: '#application-save-gitea-provider'
- depth: 2
title: Application save Docker Provider
url: '#application-save-docker-provider'
- depth: 2
title: Application save Git Provider
url: '#application-save-git-provider'
- depth: 2
title: Application disconnect Git Provider
url: '#application-disconnect-git-provider'
- depth: 2
title: Application mark Running
url: '#application-mark-running'
- depth: 2
title: Application update
url: '#application-update'
- depth: 2
title: Application refresh Token
url: '#application-refresh-token'
- depth: 2
title: Application deploy
url: '#application-deploy'
- depth: 2
title: Application clean Queues
url: '#application-clean-queues'
- depth: 2
title: Application kill Build
url: '#application-kill-build'
- depth: 2
title: Application read Traefik Config
url: '#application-read-traefik-config'
- depth: 2
title: Application update Traefik Config
url: '#application-update-traefik-config'
- depth: 2
title: Application read App Monitoring
url: '#application-read-app-monitoring'
- depth: 2
title: Application move
url: '#application-move'
- depth: 2
title: Application cancel Deployment
url: '#application-cancel-deployment'
structuredData:
headings:
- content: Application create
id: application-create
- content: Application one
id: application-one
- content: Application reload
id: application-reload
- content: Application delete
id: application-delete
- content: Application stop
id: application-stop
- content: Application start
id: application-start
- content: Application redeploy
id: application-redeploy
- content: Application save Environment
id: application-save-environment
- content: Application save Build Type
id: application-save-build-type
- content: Application save Github Provider
id: application-save-github-provider
- content: Application save Gitlab Provider
id: application-save-gitlab-provider
- content: Application save Bitbucket Provider
id: application-save-bitbucket-provider
- content: Application save Gitea Provider
id: application-save-gitea-provider
- content: Application save Docker Provider
id: application-save-docker-provider
- content: Application save Git Provider
id: application-save-git-provider
- content: Application disconnect Git Provider
id: application-disconnect-git-provider
- content: Application mark Running
id: application-mark-running
- content: Application update
id: application-update
- content: Application refresh Token
id: application-refresh-token
- content: Application deploy
id: application-deploy
- content: Application clean Queues
id: application-clean-queues
- content: Application kill Build
id: application-kill-build
- content: Application read Traefik Config
id: application-read-traefik-config
- content: Application update Traefik Config
id: application-update-traefik-config
- content: Application read App Monitoring
id: application-read-app-monitoring
- content: Application move
id: application-move
- content: Application cancel Deployment
id: application-cancel-deployment
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/application.create","method":"post"},{"path":"/application.one","method":"get"},{"path":"/application.reload","method":"post"},{"path":"/application.delete","method":"post"},{"path":"/application.stop","method":"post"},{"path":"/application.start","method":"post"},{"path":"/application.redeploy","method":"post"},{"path":"/application.saveEnvironment","method":"post"},{"path":"/application.saveBuildType","method":"post"},{"path":"/application.saveGithubProvider","method":"post"},{"path":"/application.saveGitlabProvider","method":"post"},{"path":"/application.saveBitbucketProvider","method":"post"},{"path":"/application.saveGiteaProvider","method":"post"},{"path":"/application.saveDockerProvider","method":"post"},{"path":"/application.saveGitProvider","method":"post"},{"path":"/application.disconnectGitProvider","method":"post"},{"path":"/application.markRunning","method":"post"},{"path":"/application.update","method":"post"},{"path":"/application.refreshToken","method":"post"},{"path":"/application.deploy","method":"post"},{"path":"/application.cleanQueues","method":"post"},{"path":"/application.killBuild","method":"post"},{"path":"/application.readTraefikConfig","method":"get"},{"path":"/application.updateTraefikConfig","method":"post"},{"path":"/application.readAppMonitoring","method":"get"},{"path":"/application.move","method":"post"},{"path":"/application.cancelDeployment","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,68 @@
---
title: Backup
full: true
_openapi:
toc:
- depth: 2
title: Backup create
url: '#backup-create'
- depth: 2
title: Backup one
url: '#backup-one'
- depth: 2
title: Backup update
url: '#backup-update'
- depth: 2
title: Backup remove
url: '#backup-remove'
- depth: 2
title: Backup manual Backup Postgres
url: '#backup-manual-backup-postgres'
- depth: 2
title: Backup manual Backup My Sql
url: '#backup-manual-backup-my-sql'
- depth: 2
title: Backup manual Backup Mariadb
url: '#backup-manual-backup-mariadb'
- depth: 2
title: Backup manual Backup Compose
url: '#backup-manual-backup-compose'
- depth: 2
title: Backup manual Backup Mongo
url: '#backup-manual-backup-mongo'
- depth: 2
title: Backup manual Backup Web Server
url: '#backup-manual-backup-web-server'
- depth: 2
title: Backup list Backup Files
url: '#backup-list-backup-files'
structuredData:
headings:
- content: Backup create
id: backup-create
- content: Backup one
id: backup-one
- content: Backup update
id: backup-update
- content: Backup remove
id: backup-remove
- content: Backup manual Backup Postgres
id: backup-manual-backup-postgres
- content: Backup manual Backup My Sql
id: backup-manual-backup-my-sql
- content: Backup manual Backup Mariadb
id: backup-manual-backup-mariadb
- content: Backup manual Backup Compose
id: backup-manual-backup-compose
- content: Backup manual Backup Mongo
id: backup-manual-backup-mongo
- content: Backup manual Backup Web Server
id: backup-manual-backup-web-server
- content: Backup list Backup Files
id: backup-list-backup-files
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/backup.create","method":"post"},{"path":"/backup.one","method":"get"},{"path":"/backup.update","method":"post"},{"path":"/backup.remove","method":"post"},{"path":"/backup.manualBackupPostgres","method":"post"},{"path":"/backup.manualBackupMySql","method":"post"},{"path":"/backup.manualBackupMariadb","method":"post"},{"path":"/backup.manualBackupCompose","method":"post"},{"path":"/backup.manualBackupMongo","method":"post"},{"path":"/backup.manualBackupWebServer","method":"post"},{"path":"/backup.listBackupFiles","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,48 @@
---
title: Bitbucket
full: true
_openapi:
toc:
- depth: 2
title: Bitbucket create
url: '#bitbucket-create'
- depth: 2
title: Bitbucket one
url: '#bitbucket-one'
- depth: 2
title: Bitbucket bitbucket Providers
url: '#bitbucket-bitbucket-providers'
- depth: 2
title: Bitbucket get Bitbucket Repositories
url: '#bitbucket-get-bitbucket-repositories'
- depth: 2
title: Bitbucket get Bitbucket Branches
url: '#bitbucket-get-bitbucket-branches'
- depth: 2
title: Bitbucket test Connection
url: '#bitbucket-test-connection'
- depth: 2
title: Bitbucket update
url: '#bitbucket-update'
structuredData:
headings:
- content: Bitbucket create
id: bitbucket-create
- content: Bitbucket one
id: bitbucket-one
- content: Bitbucket bitbucket Providers
id: bitbucket-bitbucket-providers
- content: Bitbucket get Bitbucket Repositories
id: bitbucket-get-bitbucket-repositories
- content: Bitbucket get Bitbucket Branches
id: bitbucket-get-bitbucket-branches
- content: Bitbucket test Connection
id: bitbucket-test-connection
- content: Bitbucket update
id: bitbucket-update
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/bitbucket.create","method":"post"},{"path":"/bitbucket.one","method":"get"},{"path":"/bitbucket.bitbucketProviders","method":"get"},{"path":"/bitbucket.getBitbucketRepositories","method":"get"},{"path":"/bitbucket.getBitbucketBranches","method":"get"},{"path":"/bitbucket.testConnection","method":"post"},{"path":"/bitbucket.update","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,33 @@
---
title: Certificates
full: true
_openapi:
toc:
- depth: 2
title: Certificates create
url: '#certificates-create'
- depth: 2
title: Certificates one
url: '#certificates-one'
- depth: 2
title: Certificates remove
url: '#certificates-remove'
- depth: 2
title: Certificates all
url: '#certificates-all'
structuredData:
headings:
- content: Certificates create
id: certificates-create
- content: Certificates one
id: certificates-one
- content: Certificates remove
id: certificates-remove
- content: Certificates all
id: certificates-all
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/certificates.create","method":"post"},{"path":"/certificates.one","method":"get"},{"path":"/certificates.remove","method":"post"},{"path":"/certificates.all","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,33 @@
---
title: Cluster
full: true
_openapi:
toc:
- depth: 2
title: Cluster get Nodes
url: '#cluster-get-nodes'
- depth: 2
title: Cluster remove Worker
url: '#cluster-remove-worker'
- depth: 2
title: Cluster add Worker
url: '#cluster-add-worker'
- depth: 2
title: Cluster add Manager
url: '#cluster-add-manager'
structuredData:
headings:
- content: Cluster get Nodes
id: cluster-get-nodes
- content: Cluster remove Worker
id: cluster-remove-worker
- content: Cluster add Worker
id: cluster-add-worker
- content: Cluster add Manager
id: cluster-add-manager
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/cluster.getNodes","method":"get"},{"path":"/cluster.removeWorker","method":"post"},{"path":"/cluster.addWorker","method":"get"},{"path":"/cluster.addManager","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,143 @@
---
title: Compose
full: true
_openapi:
toc:
- depth: 2
title: Compose create
url: '#compose-create'
- depth: 2
title: Compose one
url: '#compose-one'
- depth: 2
title: Compose update
url: '#compose-update'
- depth: 2
title: Compose delete
url: '#compose-delete'
- depth: 2
title: Compose clean Queues
url: '#compose-clean-queues'
- depth: 2
title: Compose kill Build
url: '#compose-kill-build'
- depth: 2
title: Compose load Services
url: '#compose-load-services'
- depth: 2
title: Compose load Mounts By Service
url: '#compose-load-mounts-by-service'
- depth: 2
title: Compose fetch Source Type
url: '#compose-fetch-source-type'
- depth: 2
title: Compose randomize Compose
url: '#compose-randomize-compose'
- depth: 2
title: Compose isolated Deployment
url: '#compose-isolated-deployment'
- depth: 2
title: Compose get Converted Compose
url: '#compose-get-converted-compose'
- depth: 2
title: Compose deploy
url: '#compose-deploy'
- depth: 2
title: Compose redeploy
url: '#compose-redeploy'
- depth: 2
title: Compose stop
url: '#compose-stop'
- depth: 2
title: Compose start
url: '#compose-start'
- depth: 2
title: Compose get Default Command
url: '#compose-get-default-command'
- depth: 2
title: Compose refresh Token
url: '#compose-refresh-token'
- depth: 2
title: Compose deploy Template
url: '#compose-deploy-template'
- depth: 2
title: Compose templates
url: '#compose-templates'
- depth: 2
title: Compose get Tags
url: '#compose-get-tags'
- depth: 2
title: Compose disconnect Git Provider
url: '#compose-disconnect-git-provider'
- depth: 2
title: Compose move
url: '#compose-move'
- depth: 2
title: Compose process Template
url: '#compose-process-template'
- depth: 2
title: Compose import
url: '#compose-import'
- depth: 2
title: Compose cancel Deployment
url: '#compose-cancel-deployment'
structuredData:
headings:
- content: Compose create
id: compose-create
- content: Compose one
id: compose-one
- content: Compose update
id: compose-update
- content: Compose delete
id: compose-delete
- content: Compose clean Queues
id: compose-clean-queues
- content: Compose kill Build
id: compose-kill-build
- content: Compose load Services
id: compose-load-services
- content: Compose load Mounts By Service
id: compose-load-mounts-by-service
- content: Compose fetch Source Type
id: compose-fetch-source-type
- content: Compose randomize Compose
id: compose-randomize-compose
- content: Compose isolated Deployment
id: compose-isolated-deployment
- content: Compose get Converted Compose
id: compose-get-converted-compose
- content: Compose deploy
id: compose-deploy
- content: Compose redeploy
id: compose-redeploy
- content: Compose stop
id: compose-stop
- content: Compose start
id: compose-start
- content: Compose get Default Command
id: compose-get-default-command
- content: Compose refresh Token
id: compose-refresh-token
- content: Compose deploy Template
id: compose-deploy-template
- content: Compose templates
id: compose-templates
- content: Compose get Tags
id: compose-get-tags
- content: Compose disconnect Git Provider
id: compose-disconnect-git-provider
- content: Compose move
id: compose-move
- content: Compose process Template
id: compose-process-template
- content: Compose import
id: compose-import
- content: Compose cancel Deployment
id: compose-cancel-deployment
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/compose.create","method":"post"},{"path":"/compose.one","method":"get"},{"path":"/compose.update","method":"post"},{"path":"/compose.delete","method":"post"},{"path":"/compose.cleanQueues","method":"post"},{"path":"/compose.killBuild","method":"post"},{"path":"/compose.loadServices","method":"get"},{"path":"/compose.loadMountsByService","method":"get"},{"path":"/compose.fetchSourceType","method":"post"},{"path":"/compose.randomizeCompose","method":"post"},{"path":"/compose.isolatedDeployment","method":"post"},{"path":"/compose.getConvertedCompose","method":"get"},{"path":"/compose.deploy","method":"post"},{"path":"/compose.redeploy","method":"post"},{"path":"/compose.stop","method":"post"},{"path":"/compose.start","method":"post"},{"path":"/compose.getDefaultCommand","method":"get"},{"path":"/compose.refreshToken","method":"post"},{"path":"/compose.deployTemplate","method":"post"},{"path":"/compose.templates","method":"get"},{"path":"/compose.getTags","method":"get"},{"path":"/compose.disconnectGitProvider","method":"post"},{"path":"/compose.move","method":"post"},{"path":"/compose.processTemplate","method":"post"},{"path":"/compose.import","method":"post"},{"path":"/compose.cancelDeployment","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,38 @@
---
title: Deployment
full: true
_openapi:
toc:
- depth: 2
title: Deployment all
url: '#deployment-all'
- depth: 2
title: Deployment all By Compose
url: '#deployment-all-by-compose'
- depth: 2
title: Deployment all By Server
url: '#deployment-all-by-server'
- depth: 2
title: Deployment all By Type
url: '#deployment-all-by-type'
- depth: 2
title: Deployment kill Process
url: '#deployment-kill-process'
structuredData:
headings:
- content: Deployment all
id: deployment-all
- content: Deployment all By Compose
id: deployment-all-by-compose
- content: Deployment all By Server
id: deployment-all-by-server
- content: Deployment all By Type
id: deployment-all-by-type
- content: Deployment kill Process
id: deployment-kill-process
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/deployment.all","method":"get"},{"path":"/deployment.allByCompose","method":"get"},{"path":"/deployment.allByServer","method":"get"},{"path":"/deployment.allByType","method":"get"},{"path":"/deployment.killProcess","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,43 @@
---
title: Destination
full: true
_openapi:
toc:
- depth: 2
title: Destination create
url: '#destination-create'
- depth: 2
title: Destination test Connection
url: '#destination-test-connection'
- depth: 2
title: Destination one
url: '#destination-one'
- depth: 2
title: Destination all
url: '#destination-all'
- depth: 2
title: Destination remove
url: '#destination-remove'
- depth: 2
title: Destination update
url: '#destination-update'
structuredData:
headings:
- content: Destination create
id: destination-create
- content: Destination test Connection
id: destination-test-connection
- content: Destination one
id: destination-one
- content: Destination all
id: destination-all
- content: Destination remove
id: destination-remove
- content: Destination update
id: destination-update
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/destination.create","method":"post"},{"path":"/destination.testConnection","method":"post"},{"path":"/destination.one","method":"get"},{"path":"/destination.all","method":"get"},{"path":"/destination.remove","method":"post"},{"path":"/destination.update","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,48 @@
---
title: Docker
full: true
_openapi:
toc:
- depth: 2
title: Docker get Containers
url: '#docker-get-containers'
- depth: 2
title: Docker restart Container
url: '#docker-restart-container'
- depth: 2
title: Docker get Config
url: '#docker-get-config'
- depth: 2
title: Docker get Containers By App Name Match
url: '#docker-get-containers-by-app-name-match'
- depth: 2
title: Docker get Containers By App Label
url: '#docker-get-containers-by-app-label'
- depth: 2
title: Docker get Stack Containers By App Name
url: '#docker-get-stack-containers-by-app-name'
- depth: 2
title: Docker get Service Containers By App Name
url: '#docker-get-service-containers-by-app-name'
structuredData:
headings:
- content: Docker get Containers
id: docker-get-containers
- content: Docker restart Container
id: docker-restart-container
- content: Docker get Config
id: docker-get-config
- content: Docker get Containers By App Name Match
id: docker-get-containers-by-app-name-match
- content: Docker get Containers By App Label
id: docker-get-containers-by-app-label
- content: Docker get Stack Containers By App Name
id: docker-get-stack-containers-by-app-name
- content: Docker get Service Containers By App Name
id: docker-get-service-containers-by-app-name
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/docker.getContainers","method":"get"},{"path":"/docker.restartContainer","method":"post"},{"path":"/docker.getConfig","method":"get"},{"path":"/docker.getContainersByAppNameMatch","method":"get"},{"path":"/docker.getContainersByAppLabel","method":"get"},{"path":"/docker.getStackContainersByAppName","method":"get"},{"path":"/docker.getServiceContainersByAppName","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,58 @@
---
title: Domain
full: true
_openapi:
toc:
- depth: 2
title: Domain create
url: '#domain-create'
- depth: 2
title: Domain by Application Id
url: '#domain-by-application-id'
- depth: 2
title: Domain by Compose Id
url: '#domain-by-compose-id'
- depth: 2
title: Domain generate Domain
url: '#domain-generate-domain'
- depth: 2
title: Domain can Generate Traefik Me Domains
url: '#domain-can-generate-traefik-me-domains'
- depth: 2
title: Domain update
url: '#domain-update'
- depth: 2
title: Domain one
url: '#domain-one'
- depth: 2
title: Domain delete
url: '#domain-delete'
- depth: 2
title: Domain validate Domain
url: '#domain-validate-domain'
structuredData:
headings:
- content: Domain create
id: domain-create
- content: Domain by Application Id
id: domain-by-application-id
- content: Domain by Compose Id
id: domain-by-compose-id
- content: Domain generate Domain
id: domain-generate-domain
- content: Domain can Generate Traefik Me Domains
id: domain-can-generate-traefik-me-domains
- content: Domain update
id: domain-update
- content: Domain one
id: domain-one
- content: Domain delete
id: domain-delete
- content: Domain validate Domain
id: domain-validate-domain
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/domain.create","method":"post"},{"path":"/domain.byApplicationId","method":"get"},{"path":"/domain.byComposeId","method":"get"},{"path":"/domain.generateDomain","method":"post"},{"path":"/domain.canGenerateTraefikMeDomains","method":"get"},{"path":"/domain.update","method":"post"},{"path":"/domain.one","method":"get"},{"path":"/domain.delete","method":"post"},{"path":"/domain.validateDomain","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,43 @@
---
title: Environment
full: true
_openapi:
toc:
- depth: 2
title: Environment create
url: '#environment-create'
- depth: 2
title: Environment one
url: '#environment-one'
- depth: 2
title: Environment by Project Id
url: '#environment-by-project-id'
- depth: 2
title: Environment remove
url: '#environment-remove'
- depth: 2
title: Environment update
url: '#environment-update'
- depth: 2
title: Environment duplicate
url: '#environment-duplicate'
structuredData:
headings:
- content: Environment create
id: environment-create
- content: Environment one
id: environment-one
- content: Environment by Project Id
id: environment-by-project-id
- content: Environment remove
id: environment-remove
- content: Environment update
id: environment-update
- content: Environment duplicate
id: environment-duplicate
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/environment.create","method":"post"},{"path":"/environment.one","method":"get"},{"path":"/environment.byProjectId","method":"get"},{"path":"/environment.remove","method":"post"},{"path":"/environment.update","method":"post"},{"path":"/environment.duplicate","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,53 @@
---
title: Gitea
full: true
_openapi:
toc:
- depth: 2
title: Gitea create
url: '#gitea-create'
- depth: 2
title: Gitea one
url: '#gitea-one'
- depth: 2
title: Gitea gitea Providers
url: '#gitea-gitea-providers'
- depth: 2
title: Gitea get Gitea Repositories
url: '#gitea-get-gitea-repositories'
- depth: 2
title: Gitea get Gitea Branches
url: '#gitea-get-gitea-branches'
- depth: 2
title: Gitea test Connection
url: '#gitea-test-connection'
- depth: 2
title: Gitea update
url: '#gitea-update'
- depth: 2
title: Gitea get Gitea Url
url: '#gitea-get-gitea-url'
structuredData:
headings:
- content: Gitea create
id: gitea-create
- content: Gitea one
id: gitea-one
- content: Gitea gitea Providers
id: gitea-gitea-providers
- content: Gitea get Gitea Repositories
id: gitea-get-gitea-repositories
- content: Gitea get Gitea Branches
id: gitea-get-gitea-branches
- content: Gitea test Connection
id: gitea-test-connection
- content: Gitea update
id: gitea-update
- content: Gitea get Gitea Url
id: gitea-get-gitea-url
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/gitea.create","method":"post"},{"path":"/gitea.one","method":"get"},{"path":"/gitea.giteaProviders","method":"get"},{"path":"/gitea.getGiteaRepositories","method":"get"},{"path":"/gitea.getGiteaBranches","method":"get"},{"path":"/gitea.testConnection","method":"post"},{"path":"/gitea.update","method":"post"},{"path":"/gitea.getGiteaUrl","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,43 @@
---
title: Github
full: true
_openapi:
toc:
- depth: 2
title: Github one
url: '#github-one'
- depth: 2
title: Github get Github Repositories
url: '#github-get-github-repositories'
- depth: 2
title: Github get Github Branches
url: '#github-get-github-branches'
- depth: 2
title: Github github Providers
url: '#github-github-providers'
- depth: 2
title: Github test Connection
url: '#github-test-connection'
- depth: 2
title: Github update
url: '#github-update'
structuredData:
headings:
- content: Github one
id: github-one
- content: Github get Github Repositories
id: github-get-github-repositories
- content: Github get Github Branches
id: github-get-github-branches
- content: Github github Providers
id: github-github-providers
- content: Github test Connection
id: github-test-connection
- content: Github update
id: github-update
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/github.one","method":"get"},{"path":"/github.getGithubRepositories","method":"get"},{"path":"/github.getGithubBranches","method":"get"},{"path":"/github.githubProviders","method":"get"},{"path":"/github.testConnection","method":"post"},{"path":"/github.update","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,48 @@
---
title: Gitlab
full: true
_openapi:
toc:
- depth: 2
title: Gitlab create
url: '#gitlab-create'
- depth: 2
title: Gitlab one
url: '#gitlab-one'
- depth: 2
title: Gitlab gitlab Providers
url: '#gitlab-gitlab-providers'
- depth: 2
title: Gitlab get Gitlab Repositories
url: '#gitlab-get-gitlab-repositories'
- depth: 2
title: Gitlab get Gitlab Branches
url: '#gitlab-get-gitlab-branches'
- depth: 2
title: Gitlab test Connection
url: '#gitlab-test-connection'
- depth: 2
title: Gitlab update
url: '#gitlab-update'
structuredData:
headings:
- content: Gitlab create
id: gitlab-create
- content: Gitlab one
id: gitlab-one
- content: Gitlab gitlab Providers
id: gitlab-gitlab-providers
- content: Gitlab get Gitlab Repositories
id: gitlab-get-gitlab-repositories
- content: Gitlab get Gitlab Branches
id: gitlab-get-gitlab-branches
- content: Gitlab test Connection
id: gitlab-test-connection
- content: Gitlab update
id: gitlab-update
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/gitlab.create","method":"post"},{"path":"/gitlab.one","method":"get"},{"path":"/gitlab.gitlabProviders","method":"get"},{"path":"/gitlab.getGitlabRepositories","method":"get"},{"path":"/gitlab.getGitlabBranches","method":"get"},{"path":"/gitlab.testConnection","method":"post"},{"path":"/gitlab.update","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,23 @@
---
title: Git Provider
full: true
_openapi:
toc:
- depth: 2
title: Git Provider get All
url: '#git-provider-get-all'
- depth: 2
title: Git Provider remove
url: '#git-provider-remove'
structuredData:
headings:
- content: Git Provider get All
id: git-provider-get-all
- content: Git Provider remove
id: git-provider-remove
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/gitProvider.getAll","method":"get"},{"path":"/gitProvider.remove","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,78 @@
---
title: Mariadb
full: true
_openapi:
toc:
- depth: 2
title: Mariadb create
url: '#mariadb-create'
- depth: 2
title: Mariadb one
url: '#mariadb-one'
- depth: 2
title: Mariadb start
url: '#mariadb-start'
- depth: 2
title: Mariadb stop
url: '#mariadb-stop'
- depth: 2
title: Mariadb save External Port
url: '#mariadb-save-external-port'
- depth: 2
title: Mariadb deploy
url: '#mariadb-deploy'
- depth: 2
title: Mariadb change Status
url: '#mariadb-change-status'
- depth: 2
title: Mariadb remove
url: '#mariadb-remove'
- depth: 2
title: Mariadb save Environment
url: '#mariadb-save-environment'
- depth: 2
title: Mariadb reload
url: '#mariadb-reload'
- depth: 2
title: Mariadb update
url: '#mariadb-update'
- depth: 2
title: Mariadb move
url: '#mariadb-move'
- depth: 2
title: Mariadb rebuild
url: '#mariadb-rebuild'
structuredData:
headings:
- content: Mariadb create
id: mariadb-create
- content: Mariadb one
id: mariadb-one
- content: Mariadb start
id: mariadb-start
- content: Mariadb stop
id: mariadb-stop
- content: Mariadb save External Port
id: mariadb-save-external-port
- content: Mariadb deploy
id: mariadb-deploy
- content: Mariadb change Status
id: mariadb-change-status
- content: Mariadb remove
id: mariadb-remove
- content: Mariadb save Environment
id: mariadb-save-environment
- content: Mariadb reload
id: mariadb-reload
- content: Mariadb update
id: mariadb-update
- content: Mariadb move
id: mariadb-move
- content: Mariadb rebuild
id: mariadb-rebuild
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/mariadb.create","method":"post"},{"path":"/mariadb.one","method":"get"},{"path":"/mariadb.start","method":"post"},{"path":"/mariadb.stop","method":"post"},{"path":"/mariadb.saveExternalPort","method":"post"},{"path":"/mariadb.deploy","method":"post"},{"path":"/mariadb.changeStatus","method":"post"},{"path":"/mariadb.remove","method":"post"},{"path":"/mariadb.saveEnvironment","method":"post"},{"path":"/mariadb.reload","method":"post"},{"path":"/mariadb.update","method":"post"},{"path":"/mariadb.move","method":"post"},{"path":"/mariadb.rebuild","method":"post"}]} showTitle={true} />

View File

@@ -1,7 +1,7 @@
{
"title": "API",
"description": "API Documentation",
"icon": "Building2",
"description": "RESTful API reference for programmatic access to Dokploy",
"icon": "Code",
"root": true,
"pages": ["---Get Started---", "index", "---API---", "...", "---Reference---"]
"pages": ["---Get Started---", "index", "---Reference---", "..."]
}

View File

@@ -0,0 +1,78 @@
---
title: Mongo
full: true
_openapi:
toc:
- depth: 2
title: Mongo create
url: '#mongo-create'
- depth: 2
title: Mongo one
url: '#mongo-one'
- depth: 2
title: Mongo start
url: '#mongo-start'
- depth: 2
title: Mongo stop
url: '#mongo-stop'
- depth: 2
title: Mongo save External Port
url: '#mongo-save-external-port'
- depth: 2
title: Mongo deploy
url: '#mongo-deploy'
- depth: 2
title: Mongo change Status
url: '#mongo-change-status'
- depth: 2
title: Mongo reload
url: '#mongo-reload'
- depth: 2
title: Mongo remove
url: '#mongo-remove'
- depth: 2
title: Mongo save Environment
url: '#mongo-save-environment'
- depth: 2
title: Mongo update
url: '#mongo-update'
- depth: 2
title: Mongo move
url: '#mongo-move'
- depth: 2
title: Mongo rebuild
url: '#mongo-rebuild'
structuredData:
headings:
- content: Mongo create
id: mongo-create
- content: Mongo one
id: mongo-one
- content: Mongo start
id: mongo-start
- content: Mongo stop
id: mongo-stop
- content: Mongo save External Port
id: mongo-save-external-port
- content: Mongo deploy
id: mongo-deploy
- content: Mongo change Status
id: mongo-change-status
- content: Mongo reload
id: mongo-reload
- content: Mongo remove
id: mongo-remove
- content: Mongo save Environment
id: mongo-save-environment
- content: Mongo update
id: mongo-update
- content: Mongo move
id: mongo-move
- content: Mongo rebuild
id: mongo-rebuild
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/mongo.create","method":"post"},{"path":"/mongo.one","method":"get"},{"path":"/mongo.start","method":"post"},{"path":"/mongo.stop","method":"post"},{"path":"/mongo.saveExternalPort","method":"post"},{"path":"/mongo.deploy","method":"post"},{"path":"/mongo.changeStatus","method":"post"},{"path":"/mongo.reload","method":"post"},{"path":"/mongo.remove","method":"post"},{"path":"/mongo.saveEnvironment","method":"post"},{"path":"/mongo.update","method":"post"},{"path":"/mongo.move","method":"post"},{"path":"/mongo.rebuild","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,38 @@
---
title: Mounts
full: true
_openapi:
toc:
- depth: 2
title: Mounts create
url: '#mounts-create'
- depth: 2
title: Mounts remove
url: '#mounts-remove'
- depth: 2
title: Mounts one
url: '#mounts-one'
- depth: 2
title: Mounts update
url: '#mounts-update'
- depth: 2
title: Mounts all Named By Application Id
url: '#mounts-all-named-by-application-id'
structuredData:
headings:
- content: Mounts create
id: mounts-create
- content: Mounts remove
id: mounts-remove
- content: Mounts one
id: mounts-one
- content: Mounts update
id: mounts-update
- content: Mounts all Named By Application Id
id: mounts-all-named-by-application-id
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/mounts.create","method":"post"},{"path":"/mounts.remove","method":"post"},{"path":"/mounts.one","method":"get"},{"path":"/mounts.update","method":"post"},{"path":"/mounts.allNamedByApplicationId","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,78 @@
---
title: Mysql
full: true
_openapi:
toc:
- depth: 2
title: Mysql create
url: '#mysql-create'
- depth: 2
title: Mysql one
url: '#mysql-one'
- depth: 2
title: Mysql start
url: '#mysql-start'
- depth: 2
title: Mysql stop
url: '#mysql-stop'
- depth: 2
title: Mysql save External Port
url: '#mysql-save-external-port'
- depth: 2
title: Mysql deploy
url: '#mysql-deploy'
- depth: 2
title: Mysql change Status
url: '#mysql-change-status'
- depth: 2
title: Mysql reload
url: '#mysql-reload'
- depth: 2
title: Mysql remove
url: '#mysql-remove'
- depth: 2
title: Mysql save Environment
url: '#mysql-save-environment'
- depth: 2
title: Mysql update
url: '#mysql-update'
- depth: 2
title: Mysql move
url: '#mysql-move'
- depth: 2
title: Mysql rebuild
url: '#mysql-rebuild'
structuredData:
headings:
- content: Mysql create
id: mysql-create
- content: Mysql one
id: mysql-one
- content: Mysql start
id: mysql-start
- content: Mysql stop
id: mysql-stop
- content: Mysql save External Port
id: mysql-save-external-port
- content: Mysql deploy
id: mysql-deploy
- content: Mysql change Status
id: mysql-change-status
- content: Mysql reload
id: mysql-reload
- content: Mysql remove
id: mysql-remove
- content: Mysql save Environment
id: mysql-save-environment
- content: Mysql update
id: mysql-update
- content: Mysql move
id: mysql-move
- content: Mysql rebuild
id: mysql-rebuild
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/mysql.create","method":"post"},{"path":"/mysql.one","method":"get"},{"path":"/mysql.start","method":"post"},{"path":"/mysql.stop","method":"post"},{"path":"/mysql.saveExternalPort","method":"post"},{"path":"/mysql.deploy","method":"post"},{"path":"/mysql.changeStatus","method":"post"},{"path":"/mysql.reload","method":"post"},{"path":"/mysql.remove","method":"post"},{"path":"/mysql.saveEnvironment","method":"post"},{"path":"/mysql.update","method":"post"},{"path":"/mysql.move","method":"post"},{"path":"/mysql.rebuild","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,58 @@
---
title: Organization
full: true
_openapi:
toc:
- depth: 2
title: Organization create
url: '#organization-create'
- depth: 2
title: Organization all
url: '#organization-all'
- depth: 2
title: Organization one
url: '#organization-one'
- depth: 2
title: Organization update
url: '#organization-update'
- depth: 2
title: Organization delete
url: '#organization-delete'
- depth: 2
title: Organization all Invitations
url: '#organization-all-invitations'
- depth: 2
title: Organization remove Invitation
url: '#organization-remove-invitation'
- depth: 2
title: Organization update Member Role
url: '#organization-update-member-role'
- depth: 2
title: Organization set Default
url: '#organization-set-default'
structuredData:
headings:
- content: Organization create
id: organization-create
- content: Organization all
id: organization-all
- content: Organization one
id: organization-one
- content: Organization update
id: organization-update
- content: Organization delete
id: organization-delete
- content: Organization all Invitations
id: organization-all-invitations
- content: Organization remove Invitation
id: organization-remove-invitation
- content: Organization update Member Role
id: organization-update-member-role
- content: Organization set Default
id: organization-set-default
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/organization.create","method":"post"},{"path":"/organization.all","method":"get"},{"path":"/organization.one","method":"get"},{"path":"/organization.update","method":"post"},{"path":"/organization.delete","method":"post"},{"path":"/organization.allInvitations","method":"get"},{"path":"/organization.removeInvitation","method":"post"},{"path":"/organization.updateMemberRole","method":"post"},{"path":"/organization.setDefault","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,33 @@
---
title: Port
full: true
_openapi:
toc:
- depth: 2
title: Port create
url: '#port-create'
- depth: 2
title: Port one
url: '#port-one'
- depth: 2
title: Port delete
url: '#port-delete'
- depth: 2
title: Port update
url: '#port-update'
structuredData:
headings:
- content: Port create
id: port-create
- content: Port one
id: port-one
- content: Port delete
id: port-delete
- content: Port update
id: port-update
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/port.create","method":"post"},{"path":"/port.one","method":"get"},{"path":"/port.delete","method":"post"},{"path":"/port.update","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,78 @@
---
title: Postgres
full: true
_openapi:
toc:
- depth: 2
title: Postgres create
url: '#postgres-create'
- depth: 2
title: Postgres one
url: '#postgres-one'
- depth: 2
title: Postgres start
url: '#postgres-start'
- depth: 2
title: Postgres stop
url: '#postgres-stop'
- depth: 2
title: Postgres save External Port
url: '#postgres-save-external-port'
- depth: 2
title: Postgres deploy
url: '#postgres-deploy'
- depth: 2
title: Postgres change Status
url: '#postgres-change-status'
- depth: 2
title: Postgres remove
url: '#postgres-remove'
- depth: 2
title: Postgres save Environment
url: '#postgres-save-environment'
- depth: 2
title: Postgres reload
url: '#postgres-reload'
- depth: 2
title: Postgres update
url: '#postgres-update'
- depth: 2
title: Postgres move
url: '#postgres-move'
- depth: 2
title: Postgres rebuild
url: '#postgres-rebuild'
structuredData:
headings:
- content: Postgres create
id: postgres-create
- content: Postgres one
id: postgres-one
- content: Postgres start
id: postgres-start
- content: Postgres stop
id: postgres-stop
- content: Postgres save External Port
id: postgres-save-external-port
- content: Postgres deploy
id: postgres-deploy
- content: Postgres change Status
id: postgres-change-status
- content: Postgres remove
id: postgres-remove
- content: Postgres save Environment
id: postgres-save-environment
- content: Postgres reload
id: postgres-reload
- content: Postgres update
id: postgres-update
- content: Postgres move
id: postgres-move
- content: Postgres rebuild
id: postgres-rebuild
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/postgres.create","method":"post"},{"path":"/postgres.one","method":"get"},{"path":"/postgres.start","method":"post"},{"path":"/postgres.stop","method":"post"},{"path":"/postgres.saveExternalPort","method":"post"},{"path":"/postgres.deploy","method":"post"},{"path":"/postgres.changeStatus","method":"post"},{"path":"/postgres.remove","method":"post"},{"path":"/postgres.saveEnvironment","method":"post"},{"path":"/postgres.reload","method":"post"},{"path":"/postgres.update","method":"post"},{"path":"/postgres.move","method":"post"},{"path":"/postgres.rebuild","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,43 @@
---
title: Project
full: true
_openapi:
toc:
- depth: 2
title: Project create
url: '#project-create'
- depth: 2
title: Project one
url: '#project-one'
- depth: 2
title: Project all
url: '#project-all'
- depth: 2
title: Project remove
url: '#project-remove'
- depth: 2
title: Project update
url: '#project-update'
- depth: 2
title: Project duplicate
url: '#project-duplicate'
structuredData:
headings:
- content: Project create
id: project-create
- content: Project one
id: project-one
- content: Project all
id: project-all
- content: Project remove
id: project-remove
- content: Project update
id: project-update
- content: Project duplicate
id: project-duplicate
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/project.create","method":"post"},{"path":"/project.one","method":"get"},{"path":"/project.all","method":"get"},{"path":"/project.remove","method":"post"},{"path":"/project.update","method":"post"},{"path":"/project.duplicate","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,33 @@
---
title: Redirects
full: true
_openapi:
toc:
- depth: 2
title: Redirects create
url: '#redirects-create'
- depth: 2
title: Redirects one
url: '#redirects-one'
- depth: 2
title: Redirects delete
url: '#redirects-delete'
- depth: 2
title: Redirects update
url: '#redirects-update'
structuredData:
headings:
- content: Redirects create
id: redirects-create
- content: Redirects one
id: redirects-one
- content: Redirects delete
id: redirects-delete
- content: Redirects update
id: redirects-update
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/redirects.create","method":"post"},{"path":"/redirects.one","method":"get"},{"path":"/redirects.delete","method":"post"},{"path":"/redirects.update","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,78 @@
---
title: Redis
full: true
_openapi:
toc:
- depth: 2
title: Redis create
url: '#redis-create'
- depth: 2
title: Redis one
url: '#redis-one'
- depth: 2
title: Redis start
url: '#redis-start'
- depth: 2
title: Redis reload
url: '#redis-reload'
- depth: 2
title: Redis stop
url: '#redis-stop'
- depth: 2
title: Redis save External Port
url: '#redis-save-external-port'
- depth: 2
title: Redis deploy
url: '#redis-deploy'
- depth: 2
title: Redis change Status
url: '#redis-change-status'
- depth: 2
title: Redis remove
url: '#redis-remove'
- depth: 2
title: Redis save Environment
url: '#redis-save-environment'
- depth: 2
title: Redis update
url: '#redis-update'
- depth: 2
title: Redis move
url: '#redis-move'
- depth: 2
title: Redis rebuild
url: '#redis-rebuild'
structuredData:
headings:
- content: Redis create
id: redis-create
- content: Redis one
id: redis-one
- content: Redis start
id: redis-start
- content: Redis reload
id: redis-reload
- content: Redis stop
id: redis-stop
- content: Redis save External Port
id: redis-save-external-port
- content: Redis deploy
id: redis-deploy
- content: Redis change Status
id: redis-change-status
- content: Redis remove
id: redis-remove
- content: Redis save Environment
id: redis-save-environment
- content: Redis update
id: redis-update
- content: Redis move
id: redis-move
- content: Redis rebuild
id: redis-rebuild
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/redis.create","method":"post"},{"path":"/redis.one","method":"get"},{"path":"/redis.start","method":"post"},{"path":"/redis.reload","method":"post"},{"path":"/redis.stop","method":"post"},{"path":"/redis.saveExternalPort","method":"post"},{"path":"/redis.deploy","method":"post"},{"path":"/redis.changeStatus","method":"post"},{"path":"/redis.remove","method":"post"},{"path":"/redis.saveEnvironment","method":"post"},{"path":"/redis.update","method":"post"},{"path":"/redis.move","method":"post"},{"path":"/redis.rebuild","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,43 @@
---
title: Registry
full: true
_openapi:
toc:
- depth: 2
title: Registry create
url: '#registry-create'
- depth: 2
title: Registry remove
url: '#registry-remove'
- depth: 2
title: Registry update
url: '#registry-update'
- depth: 2
title: Registry all
url: '#registry-all'
- depth: 2
title: Registry one
url: '#registry-one'
- depth: 2
title: Registry test Registry
url: '#registry-test-registry'
structuredData:
headings:
- content: Registry create
id: registry-create
- content: Registry remove
id: registry-remove
- content: Registry update
id: registry-update
- content: Registry all
id: registry-all
- content: Registry one
id: registry-one
- content: Registry test Registry
id: registry-test-registry
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/registry.create","method":"post"},{"path":"/registry.remove","method":"post"},{"path":"/registry.update","method":"post"},{"path":"/registry.all","method":"get"},{"path":"/registry.one","method":"get"},{"path":"/registry.testRegistry","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,23 @@
---
title: Rollback
full: true
_openapi:
toc:
- depth: 2
title: Rollback delete
url: '#rollback-delete'
- depth: 2
title: Rollback rollback
url: '#rollback-rollback'
structuredData:
headings:
- content: Rollback delete
id: rollback-delete
- content: Rollback rollback
id: rollback-rollback
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/rollback.delete","method":"post"},{"path":"/rollback.rollback","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,43 @@
---
title: Schedule
full: true
_openapi:
toc:
- depth: 2
title: Schedule create
url: '#schedule-create'
- depth: 2
title: Schedule update
url: '#schedule-update'
- depth: 2
title: Schedule delete
url: '#schedule-delete'
- depth: 2
title: Schedule list
url: '#schedule-list'
- depth: 2
title: Schedule one
url: '#schedule-one'
- depth: 2
title: Schedule run Manually
url: '#schedule-run-manually'
structuredData:
headings:
- content: Schedule create
id: schedule-create
- content: Schedule update
id: schedule-update
- content: Schedule delete
id: schedule-delete
- content: Schedule list
id: schedule-list
- content: Schedule one
id: schedule-one
- content: Schedule run Manually
id: schedule-run-manually
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/schedule.create","method":"post"},{"path":"/schedule.update","method":"post"},{"path":"/schedule.delete","method":"post"},{"path":"/schedule.list","method":"get"},{"path":"/schedule.one","method":"get"},{"path":"/schedule.runManually","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,33 @@
---
title: Security
full: true
_openapi:
toc:
- depth: 2
title: Security create
url: '#security-create'
- depth: 2
title: Security one
url: '#security-one'
- depth: 2
title: Security delete
url: '#security-delete'
- depth: 2
title: Security update
url: '#security-update'
structuredData:
headings:
- content: Security create
id: security-create
- content: Security one
id: security-one
- content: Security delete
id: security-delete
- content: Security update
id: security-update
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/security.create","method":"post"},{"path":"/security.one","method":"get"},{"path":"/security.delete","method":"post"},{"path":"/security.update","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,93 @@
---
title: Server
full: true
_openapi:
toc:
- depth: 2
title: Server create
url: '#server-create'
- depth: 2
title: Server one
url: '#server-one'
- depth: 2
title: Server get Default Command
url: '#server-get-default-command'
- depth: 2
title: Server all
url: '#server-all'
- depth: 2
title: Server count
url: '#server-count'
- depth: 2
title: Server with S S H Key
url: '#server-with-s-s-h-key'
- depth: 2
title: Server build Servers
url: '#server-build-servers'
- depth: 2
title: Server setup
url: '#server-setup'
- depth: 2
title: Server validate
url: '#server-validate'
- depth: 2
title: Server security
url: '#server-security'
- depth: 2
title: Server setup Monitoring
url: '#server-setup-monitoring'
- depth: 2
title: Server remove
url: '#server-remove'
- depth: 2
title: Server update
url: '#server-update'
- depth: 2
title: Server public Ip
url: '#server-public-ip'
- depth: 2
title: Server get Server Time
url: '#server-get-server-time'
- depth: 2
title: Server get Server Metrics
url: '#server-get-server-metrics'
structuredData:
headings:
- content: Server create
id: server-create
- content: Server one
id: server-one
- content: Server get Default Command
id: server-get-default-command
- content: Server all
id: server-all
- content: Server count
id: server-count
- content: Server with S S H Key
id: server-with-s-s-h-key
- content: Server build Servers
id: server-build-servers
- content: Server setup
id: server-setup
- content: Server validate
id: server-validate
- content: Server security
id: server-security
- content: Server setup Monitoring
id: server-setup-monitoring
- content: Server remove
id: server-remove
- content: Server update
id: server-update
- content: Server public Ip
id: server-public-ip
- content: Server get Server Time
id: server-get-server-time
- content: Server get Server Metrics
id: server-get-server-metrics
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/server.create","method":"post"},{"path":"/server.one","method":"get"},{"path":"/server.getDefaultCommand","method":"get"},{"path":"/server.all","method":"get"},{"path":"/server.count","method":"get"},{"path":"/server.withSSHKey","method":"get"},{"path":"/server.buildServers","method":"get"},{"path":"/server.setup","method":"post"},{"path":"/server.validate","method":"get"},{"path":"/server.security","method":"get"},{"path":"/server.setupMonitoring","method":"post"},{"path":"/server.remove","method":"post"},{"path":"/server.update","method":"post"},{"path":"/server.publicIp","method":"get"},{"path":"/server.getServerTime","method":"get"},{"path":"/server.getServerMetrics","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,243 @@
---
title: Settings
full: true
_openapi:
toc:
- depth: 2
title: Settings reload Server
url: '#settings-reload-server'
- depth: 2
title: Settings clean Redis
url: '#settings-clean-redis'
- depth: 2
title: Settings reload Redis
url: '#settings-reload-redis'
- depth: 2
title: Settings reload Traefik
url: '#settings-reload-traefik'
- depth: 2
title: Settings toggle Dashboard
url: '#settings-toggle-dashboard'
- depth: 2
title: Settings clean Unused Images
url: '#settings-clean-unused-images'
- depth: 2
title: Settings clean Unused Volumes
url: '#settings-clean-unused-volumes'
- depth: 2
title: Settings clean Stopped Containers
url: '#settings-clean-stopped-containers'
- depth: 2
title: Settings clean Docker Builder
url: '#settings-clean-docker-builder'
- depth: 2
title: Settings clean Docker Prune
url: '#settings-clean-docker-prune'
- depth: 2
title: Settings clean All
url: '#settings-clean-all'
- depth: 2
title: Settings clean Monitoring
url: '#settings-clean-monitoring'
- depth: 2
title: Settings save S S H Private Key
url: '#settings-save-s-s-h-private-key'
- depth: 2
title: Settings assign Domain Server
url: '#settings-assign-domain-server'
- depth: 2
title: Settings clean S S H Private Key
url: '#settings-clean-s-s-h-private-key'
- depth: 2
title: Settings update Docker Cleanup
url: '#settings-update-docker-cleanup'
- depth: 2
title: Settings read Traefik Config
url: '#settings-read-traefik-config'
- depth: 2
title: Settings update Traefik Config
url: '#settings-update-traefik-config'
- depth: 2
title: Settings read Web Server Traefik Config
url: '#settings-read-web-server-traefik-config'
- depth: 2
title: Settings update Web Server Traefik Config
url: '#settings-update-web-server-traefik-config'
- depth: 2
title: Settings read Middleware Traefik Config
url: '#settings-read-middleware-traefik-config'
- depth: 2
title: Settings update Middleware Traefik Config
url: '#settings-update-middleware-traefik-config'
- depth: 2
title: Settings get Update Data
url: '#settings-get-update-data'
- depth: 2
title: Settings update Server
url: '#settings-update-server'
- depth: 2
title: Settings get Dokploy Version
url: '#settings-get-dokploy-version'
- depth: 2
title: Settings get Release Tag
url: '#settings-get-release-tag'
- depth: 2
title: Settings read Directories
url: '#settings-read-directories'
- depth: 2
title: Settings update Traefik File
url: '#settings-update-traefik-file'
- depth: 2
title: Settings read Traefik File
url: '#settings-read-traefik-file'
- depth: 2
title: Settings get Ip
url: '#settings-get-ip'
- depth: 2
title: Settings get Open Api Document
url: '#settings-get-open-api-document'
- depth: 2
title: Settings read Traefik Env
url: '#settings-read-traefik-env'
- depth: 2
title: Settings write Traefik Env
url: '#settings-write-traefik-env'
- depth: 2
title: Settings have Traefik Dashboard Port Enabled
url: '#settings-have-traefik-dashboard-port-enabled'
- depth: 2
title: Settings have Activate Requests
url: '#settings-have-activate-requests'
- depth: 2
title: Settings toggle Requests
url: '#settings-toggle-requests'
- depth: 2
title: Settings is Cloud
url: '#settings-is-cloud'
- depth: 2
title: Settings is User Subscribed
url: '#settings-is-user-subscribed'
- depth: 2
title: Settings health
url: '#settings-health'
- depth: 2
title: Settings setup G P U
url: '#settings-setup-g-p-u'
- depth: 2
title: Settings check G P U Status
url: '#settings-check-g-p-u-status'
- depth: 2
title: Settings update Traefik Ports
url: '#settings-update-traefik-ports'
- depth: 2
title: Settings get Traefik Ports
url: '#settings-get-traefik-ports'
- depth: 2
title: Settings update Log Cleanup
url: '#settings-update-log-cleanup'
- depth: 2
title: Settings get Log Cleanup Status
url: '#settings-get-log-cleanup-status'
- depth: 2
title: Settings get Dokploy Cloud Ips
url: '#settings-get-dokploy-cloud-ips'
structuredData:
headings:
- content: Settings reload Server
id: settings-reload-server
- content: Settings clean Redis
id: settings-clean-redis
- content: Settings reload Redis
id: settings-reload-redis
- content: Settings reload Traefik
id: settings-reload-traefik
- content: Settings toggle Dashboard
id: settings-toggle-dashboard
- content: Settings clean Unused Images
id: settings-clean-unused-images
- content: Settings clean Unused Volumes
id: settings-clean-unused-volumes
- content: Settings clean Stopped Containers
id: settings-clean-stopped-containers
- content: Settings clean Docker Builder
id: settings-clean-docker-builder
- content: Settings clean Docker Prune
id: settings-clean-docker-prune
- content: Settings clean All
id: settings-clean-all
- content: Settings clean Monitoring
id: settings-clean-monitoring
- content: Settings save S S H Private Key
id: settings-save-s-s-h-private-key
- content: Settings assign Domain Server
id: settings-assign-domain-server
- content: Settings clean S S H Private Key
id: settings-clean-s-s-h-private-key
- content: Settings update Docker Cleanup
id: settings-update-docker-cleanup
- content: Settings read Traefik Config
id: settings-read-traefik-config
- content: Settings update Traefik Config
id: settings-update-traefik-config
- content: Settings read Web Server Traefik Config
id: settings-read-web-server-traefik-config
- content: Settings update Web Server Traefik Config
id: settings-update-web-server-traefik-config
- content: Settings read Middleware Traefik Config
id: settings-read-middleware-traefik-config
- content: Settings update Middleware Traefik Config
id: settings-update-middleware-traefik-config
- content: Settings get Update Data
id: settings-get-update-data
- content: Settings update Server
id: settings-update-server
- content: Settings get Dokploy Version
id: settings-get-dokploy-version
- content: Settings get Release Tag
id: settings-get-release-tag
- content: Settings read Directories
id: settings-read-directories
- content: Settings update Traefik File
id: settings-update-traefik-file
- content: Settings read Traefik File
id: settings-read-traefik-file
- content: Settings get Ip
id: settings-get-ip
- content: Settings get Open Api Document
id: settings-get-open-api-document
- content: Settings read Traefik Env
id: settings-read-traefik-env
- content: Settings write Traefik Env
id: settings-write-traefik-env
- content: Settings have Traefik Dashboard Port Enabled
id: settings-have-traefik-dashboard-port-enabled
- content: Settings have Activate Requests
id: settings-have-activate-requests
- content: Settings toggle Requests
id: settings-toggle-requests
- content: Settings is Cloud
id: settings-is-cloud
- content: Settings is User Subscribed
id: settings-is-user-subscribed
- content: Settings health
id: settings-health
- content: Settings setup G P U
id: settings-setup-g-p-u
- content: Settings check G P U Status
id: settings-check-g-p-u-status
- content: Settings update Traefik Ports
id: settings-update-traefik-ports
- content: Settings get Traefik Ports
id: settings-get-traefik-ports
- content: Settings update Log Cleanup
id: settings-update-log-cleanup
- content: Settings get Log Cleanup Status
id: settings-get-log-cleanup-status
- content: Settings get Dokploy Cloud Ips
id: settings-get-dokploy-cloud-ips
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/settings.reloadServer","method":"post"},{"path":"/settings.cleanRedis","method":"post"},{"path":"/settings.reloadRedis","method":"post"},{"path":"/settings.reloadTraefik","method":"post"},{"path":"/settings.toggleDashboard","method":"post"},{"path":"/settings.cleanUnusedImages","method":"post"},{"path":"/settings.cleanUnusedVolumes","method":"post"},{"path":"/settings.cleanStoppedContainers","method":"post"},{"path":"/settings.cleanDockerBuilder","method":"post"},{"path":"/settings.cleanDockerPrune","method":"post"},{"path":"/settings.cleanAll","method":"post"},{"path":"/settings.cleanMonitoring","method":"post"},{"path":"/settings.saveSSHPrivateKey","method":"post"},{"path":"/settings.assignDomainServer","method":"post"},{"path":"/settings.cleanSSHPrivateKey","method":"post"},{"path":"/settings.updateDockerCleanup","method":"post"},{"path":"/settings.readTraefikConfig","method":"get"},{"path":"/settings.updateTraefikConfig","method":"post"},{"path":"/settings.readWebServerTraefikConfig","method":"get"},{"path":"/settings.updateWebServerTraefikConfig","method":"post"},{"path":"/settings.readMiddlewareTraefikConfig","method":"get"},{"path":"/settings.updateMiddlewareTraefikConfig","method":"post"},{"path":"/settings.getUpdateData","method":"post"},{"path":"/settings.updateServer","method":"post"},{"path":"/settings.getDokployVersion","method":"get"},{"path":"/settings.getReleaseTag","method":"get"},{"path":"/settings.readDirectories","method":"get"},{"path":"/settings.updateTraefikFile","method":"post"},{"path":"/settings.readTraefikFile","method":"get"},{"path":"/settings.getIp","method":"get"},{"path":"/settings.getOpenApiDocument","method":"get"},{"path":"/settings.readTraefikEnv","method":"get"},{"path":"/settings.writeTraefikEnv","method":"post"},{"path":"/settings.haveTraefikDashboardPortEnabled","method":"get"},{"path":"/settings.haveActivateRequests","method":"get"},{"path":"/settings.toggleRequests","method":"post"},{"path":"/settings.isCloud","method":"get"},{"path":"/settings.isUserSubscribed","method":"get"},{"path":"/settings.health","method":"get"},{"path":"/settings.setupGPU","method":"post"},{"path":"/settings.checkGPUStatus","method":"get"},{"path":"/settings.updateTraefikPorts","method":"post"},{"path":"/settings.getTraefikPorts","method":"get"},{"path":"/settings.updateLogCleanup","method":"post"},{"path":"/settings.getLogCleanupStatus","method":"get"},{"path":"/settings.getDokployCloudIps","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,13 @@
---
title: Ssh Router
full: true
_openapi:
toc: []
structuredData:
headings: []
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[]} showTitle={true} />

View File

@@ -0,0 +1,28 @@
---
title: Swarm
full: true
_openapi:
toc:
- depth: 2
title: Swarm get Nodes
url: '#swarm-get-nodes'
- depth: 2
title: Swarm get Node Info
url: '#swarm-get-node-info'
- depth: 2
title: Swarm get Node Apps
url: '#swarm-get-node-apps'
structuredData:
headings:
- content: Swarm get Nodes
id: swarm-get-nodes
- content: Swarm get Node Info
id: swarm-get-node-info
- content: Swarm get Node Apps
id: swarm-get-node-apps
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/swarm.getNodes","method":"get"},{"path":"/swarm.getNodeInfo","method":"get"},{"path":"/swarm.getNodeApps","method":"get"}]} showTitle={true} />

View File

@@ -0,0 +1,103 @@
---
title: User
full: true
_openapi:
toc:
- depth: 2
title: User all
url: '#user-all'
- depth: 2
title: User one
url: '#user-one'
- depth: 2
title: User get
url: '#user-get'
- depth: 2
title: User have Root Access
url: '#user-have-root-access'
- depth: 2
title: User get Backups
url: '#user-get-backups'
- depth: 2
title: User get Server Metrics
url: '#user-get-server-metrics'
- depth: 2
title: User update
url: '#user-update'
- depth: 2
title: User get User By Token
url: '#user-get-user-by-token'
- depth: 2
title: User get Metrics Token
url: '#user-get-metrics-token'
- depth: 2
title: User remove
url: '#user-remove'
- depth: 2
title: User assign Permissions
url: '#user-assign-permissions'
- depth: 2
title: User get Invitations
url: '#user-get-invitations'
- depth: 2
title: User get Container Metrics
url: '#user-get-container-metrics'
- depth: 2
title: User generate Token
url: '#user-generate-token'
- depth: 2
title: User delete Api Key
url: '#user-delete-api-key'
- depth: 2
title: User create Api Key
url: '#user-create-api-key'
- depth: 2
title: User check User Organizations
url: '#user-check-user-organizations'
- depth: 2
title: User send Invitation
url: '#user-send-invitation'
structuredData:
headings:
- content: User all
id: user-all
- content: User one
id: user-one
- content: User get
id: user-get
- content: User have Root Access
id: user-have-root-access
- content: User get Backups
id: user-get-backups
- content: User get Server Metrics
id: user-get-server-metrics
- content: User update
id: user-update
- content: User get User By Token
id: user-get-user-by-token
- content: User get Metrics Token
id: user-get-metrics-token
- content: User remove
id: user-remove
- content: User assign Permissions
id: user-assign-permissions
- content: User get Invitations
id: user-get-invitations
- content: User get Container Metrics
id: user-get-container-metrics
- content: User generate Token
id: user-generate-token
- content: User delete Api Key
id: user-delete-api-key
- content: User create Api Key
id: user-create-api-key
- content: User check User Organizations
id: user-check-user-organizations
- content: User send Invitation
id: user-send-invitation
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/user.all","method":"get"},{"path":"/user.one","method":"get"},{"path":"/user.get","method":"get"},{"path":"/user.haveRootAccess","method":"get"},{"path":"/user.getBackups","method":"get"},{"path":"/user.getServerMetrics","method":"get"},{"path":"/user.update","method":"post"},{"path":"/user.getUserByToken","method":"get"},{"path":"/user.getMetricsToken","method":"get"},{"path":"/user.remove","method":"post"},{"path":"/user.assignPermissions","method":"post"},{"path":"/user.getInvitations","method":"get"},{"path":"/user.getContainerMetrics","method":"get"},{"path":"/user.generateToken","method":"post"},{"path":"/user.deleteApiKey","method":"post"},{"path":"/user.createApiKey","method":"post"},{"path":"/user.checkUserOrganizations","method":"get"},{"path":"/user.sendInvitation","method":"post"}]} showTitle={true} />

View File

@@ -0,0 +1,43 @@
---
title: Volume Backups
full: true
_openapi:
toc:
- depth: 2
title: Volume Backups list
url: '#volume-backups-list'
- depth: 2
title: Volume Backups create
url: '#volume-backups-create'
- depth: 2
title: Volume Backups one
url: '#volume-backups-one'
- depth: 2
title: Volume Backups delete
url: '#volume-backups-delete'
- depth: 2
title: Volume Backups update
url: '#volume-backups-update'
- depth: 2
title: Volume Backups run Manually
url: '#volume-backups-run-manually'
structuredData:
headings:
- content: Volume Backups list
id: volume-backups-list
- content: Volume Backups create
id: volume-backups-create
- content: Volume Backups one
id: volume-backups-one
- content: Volume Backups delete
id: volume-backups-delete
- content: Volume Backups update
id: volume-backups-update
- content: Volume Backups run Manually
id: volume-backups-run-manually
contents: []
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
<APIPage document={"./public/openapi.json"} webhooks={[]} operations={[{"path":"/volumeBackups.list","method":"get"},{"path":"/volumeBackups.create","method":"post"},{"path":"/volumeBackups.one","method":"get"},{"path":"/volumeBackups.delete","method":"post"},{"path":"/volumeBackups.update","method":"post"},{"path":"/volumeBackups.runManually","method":"post"}]} showTitle={true} />

View File

@@ -1,7 +1,7 @@
{
"title": "CLI",
"description": "CLI Documentation",
"icon": "Building2",
"description": "Command-line interface for managing Dokploy from your terminal",
"icon": "SquareTerminal",
"root": true,
"pages": [
"---Get Started---",

Some files were not shown because too many files have changed in this diff Show More