mirror of
https://github.com/Dokploy/website
synced 2025-06-26 18:16:01 +00:00
feat: add SEO
This commit is contained in:
@@ -1,8 +1,18 @@
|
||||
import { baseOptions } from "@/app/layout.config";
|
||||
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}>
|
||||
|
||||
5
apps/docs-v2/app/icon.svg
Normal file
5
apps/docs-v2/app/icon.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="6323" height="5778" viewBox="0 0 6323 5778" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4638.51 44.5295C4616.52 81.8286 4611.45 115.575 4619.9 213.263C4636.82 433.505 4772.12 710.584 4924.33 842.019C5002.12 909.512 5196.61 1012.53 5245.66 1012.53C5284.56 1012.53 5282.87 1019.63 5213.53 1129.75C5140.8 1243.43 5024.11 1339.34 4890.5 1389.07C4743.36 1445.91 4455.85 1453.01 4234.3 1405.06C4016.13 1357.1 3931.57 1323.35 3211.11 977.006C2265.71 522.312 2253.87 516.984 2125.34 481.461C2017.1 451.267 1917.32 445.938 1316.93 435.281C853.533 428.177 601.539 429.953 538.964 444.162C334.325 485.013 156.745 632.434 70.4925 829.586C12.9907 961.021 -7.30411 1191.92 2.84328 1589.78C7.91697 1841.99 16.3731 1911.26 46.8153 2005.39C114.465 2213.2 226.086 2342.86 422.269 2445.88C1594.29 3055.1 1969.74 3206.07 2529.54 3294.88C2732.49 3326.85 3258.46 3330.4 3459.72 3303.76C3755.69 3261.13 4107.46 3161.66 4403.43 3033.78C4540.42 2975.17 4904.03 2776.24 5220.29 2587.97C5910.31 2177.68 6006.71 2111.96 6037.16 2030.26C6070.98 1934.35 5988.11 1811.79 5888.33 1811.79C5851.12 1811.79 5862.96 1806.47 5426.62 2069.34C4352.69 2715.85 4026.28 2865.05 3485.09 2957.41C3162.06 3014.24 2587.04 2987.6 2274.17 2902.35C1924.08 2806.44 1839.52 2770.91 1051.41 2383.71C552.493 2140.38 444.255 2079.99 395.209 2023.16C363.076 1984.08 336.016 1945.01 336.016 1934.35C336.016 1920.14 467.932 1916.59 787.575 1921.92L1240.82 1929.02L1435.32 2001.84C1541.86 2040.92 1744.81 2126.17 1883.49 2190.11C2296.15 2381.94 2610.72 2451.21 3058.9 2451.21C3490.16 2451.21 3872.38 2374.83 4305.33 2198.99C4910.8 1955.66 5342.06 1596.88 5545.01 1172.38C5565.3 1127.98 5585.6 1090.68 5587.29 1087.13C5590.67 1083.57 5660.01 1074.69 5742.88 1065.81C5940.76 1046.28 6084.51 978.782 6221.5 842.019L6322.97 740.779V520.536V302.071L6253.63 353.579C6177.53 412.192 6062.52 444.162 5920.46 444.162C5795.31 444.162 5661.7 508.104 5568.69 614.672L5497.65 692.823L5487.51 646.643C5451.99 500.999 5304.85 364.236 5115.44 300.294C4956.46 248.786 4893.88 206.159 4831.31 108.471C4800.87 64.0671 4770.42 21.4395 4760.28 14.335C4721.38 -14.0833 4665.57 1.90186 4638.51 44.5295ZM2057.69 806.496C2162.55 834.914 2250.49 873.99 2517.7 1007.2C2605.65 1051.6 2796.76 1142.19 2940.51 1211.46C3084.27 1280.73 3332.88 1397.95 3490.16 1472.55C3948.49 1691.02 4049.96 1726.54 4301.95 1754.96L4437.25 1770.94L4310.41 1833.11C4153.12 1911.26 4016.13 1960.99 3804.73 2016.05C3512.15 2090.65 3402.22 2104.86 3050.44 2104.86C2590.43 2103.08 2370.57 2056.9 1974.82 1872.18C1413.33 1611.09 1386.27 1603.99 801.104 1589.78C457.784 1580.9 356.311 1572.01 336.016 1552.48C278.514 1492.09 303.882 1019.63 373.223 914.841C412.121 854.452 474.697 806.496 552.493 779.854C577.862 770.973 904.27 767.421 1278.03 772.749C1814.15 778.078 1978.2 785.182 2057.69 806.496Z" fill="white"/>
|
||||
<path d="M1266.2 1060.49C1173.18 1097.79 1129.21 1207.91 1171.49 1294.94C1222.22 1394.4 1332.15 1417.49 1413.33 1342.89C1477.6 1286.06 1479.29 1174.16 1418.41 1112C1374.44 1065.82 1308.48 1042.73 1266.2 1060.49Z" fill="white"/>
|
||||
<path d="M87.4063 2513.37C7.91846 2548.89 -8.99385 2616.39 4.536 2836.63C19.7571 3072.86 46.8168 3222.05 124.613 3488.48C427.344 4532.85 1129.2 5287.71 2106.74 5623.4C2641.17 5806.35 3236.48 5827.66 3752.3 5682.01C4596.23 5445.79 5315 4836.57 5692.15 4040.86C5886.64 3630.57 6018.55 3111.93 6018.55 2753.15C6018.55 2582.64 5991.49 2518.7 5910.31 2497.39C5820.68 2474.3 5575.45 2609.28 5164.48 2911.23C4484.61 3410.32 4229.23 3563.07 3890.98 3676.75C3635.61 3763.78 3466.49 3797.52 3194.2 3818.84C2651.31 3863.24 2057.69 3731.81 1570.62 3458.28C1394.73 3358.82 846.769 2980.5 581.246 2772.69C285.28 2540.01 270.059 2529.36 199.028 2508.04C155.056 2495.61 124.613 2497.39 87.4063 2513.37ZM5678.62 3076.41C5661.7 3138.57 5646.48 3202.52 5646.48 3218.5C5646.48 3236.26 5626.19 3262.9 5600.82 3280.67C5573.76 3296.65 5482.43 3371.25 5396.18 3445.85C5308.24 3518.67 5198.31 3611.03 5150.95 3650.1C5101.91 3689.18 4990.28 3781.54 4902.34 3856.14C4699.39 4026.65 4406.81 4236.23 4242.76 4330.37C4085.48 4420.95 3767.52 4532.85 3532.44 4582.58C2847.5 4724.67 2054.31 4570.15 1516.5 4190.05C1173.18 3946.72 412.123 3314.41 388.445 3254.02C363.077 3182.98 330.944 3042.66 337.708 3021.35C341.091 3012.47 417.196 3060.42 505.14 3129.69C1056.48 3559.52 1563.85 3863.24 1942.69 3992.9C2328.29 4124.34 2565.06 4163.41 2991.25 4163.41C3380.23 4163.41 3628.84 4126.11 3963.71 4012.44C4345.93 3884.56 4531.96 3781.54 5052.86 3405C5391.11 3161.66 5676.92 2968.06 5700.6 2966.29C5705.68 2966.29 5697.22 3016.02 5678.62 3076.41ZM5426.62 3881C5426.62 3886.33 5409.71 3925.41 5391.11 3966.26C5318.38 4115.45 5144.19 4364.11 5003.81 4518.64C4587.77 4973.33 4090.55 5271.73 3540.9 5392.5C3309.2 5444.01 2708.81 5440.46 2483.88 5387.17C1716.06 5204.23 1105.53 4754.87 696.249 4071.05C647.204 3987.57 609.997 3916.53 613.379 3912.97C616.762 3909.42 774.046 4028.42 965.155 4177.62C1154.57 4326.82 1371.05 4486.67 1443.77 4532.85C1974.82 4863.21 2463.59 4991.09 3118.09 4968C3461.41 4955.57 3691.42 4912.94 3997.53 4806.38C4357.76 4680.27 4623.29 4513.31 5130.66 4095.92C5382.65 3888.11 5426.62 3856.14 5426.62 3881Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
@@ -1,6 +1,6 @@
|
||||
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
|
||||
import { Github, GlobeIcon, HeartIcon } from "lucide-react";
|
||||
import Link from "next/link";
|
||||
|
||||
/**
|
||||
* Shared layout configurations
|
||||
*
|
||||
@@ -46,9 +46,48 @@ export const baseOptions: BaseLayoutProps = {
|
||||
},
|
||||
links: [
|
||||
{
|
||||
text: "Documentation",
|
||||
url: "/docs",
|
||||
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" />
|
||||
</>
|
||||
),
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
29
apps/docs-v2/content/docs/core/(examples)/astro-ssr.cn.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/astro-ssr.cn.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Astro SSR
|
||||
description: 部署一个简单的 Astro SSR 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Astro SSR 应用程序。
|
||||
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/astro-ssr`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
29
apps/docs-v2/content/docs/core/(examples)/astro-ssr.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/astro-ssr.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Astro SSR
|
||||
description: Deploy a simple Astro SSR application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Astro SSR application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/astro-ssr`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
27
apps/docs-v2/content/docs/core/(examples)/astro.cn.mdx
Normal file
27
apps/docs-v2/content/docs/core/(examples)/astro.cn.mdx
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Astro
|
||||
description: 部署一个简单的 Astro 应用程序。
|
||||
---
|
||||
|
||||
此示例将部署一个简单的 Astro 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/astro`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
27
apps/docs-v2/content/docs/core/(examples)/astro.mdx
Normal file
27
apps/docs-v2/content/docs/core/(examples)/astro.mdx
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Astro
|
||||
description: Deploy a simple Astro application.
|
||||
---
|
||||
|
||||
This example will deploy a simple Astro application.
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/astro`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
29
apps/docs-v2/content/docs/core/(examples)/lit.cn.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/lit.cn.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Lit
|
||||
description: 部署一个简单的 Lit 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Lit 应用程序。
|
||||
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/lit`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
29
apps/docs-v2/content/docs/core/(examples)/lit.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/lit.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Lit
|
||||
description: Deploy a simple Lit application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Lit application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/lit`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
22
apps/docs-v2/content/docs/core/(examples)/nestjs.cn.mdx
Normal file
22
apps/docs-v2/content/docs/core/(examples)/nestjs.cn.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Nest.js
|
||||
description: 部署一个简单的 Nest.js 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Nest.js 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/nestjs`
|
||||
|
||||
2. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
3. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
21
apps/docs-v2/content/docs/core/(examples)/nestjs.mdx
Normal file
21
apps/docs-v2/content/docs/core/(examples)/nestjs.mdx
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: Nest.js
|
||||
description: Deploy a simple Nest.js application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Nest.js application.
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/nestjs`
|
||||
2. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
3. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
22
apps/docs-v2/content/docs/core/(examples)/nextjs.cn.mdx
Normal file
22
apps/docs-v2/content/docs/core/(examples)/nextjs.cn.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Next.js
|
||||
description: 部署一个简单的 Next.js 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Next.js 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/nextjs`
|
||||
|
||||
2. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
3. **生成域名**:
|
||||
1. 点击生成域名按钮。
|
||||
2. 将为您生成一个新域名。
|
||||
3. 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
23
apps/docs-v2/content/docs/core/(examples)/nextjs.mdx
Normal file
23
apps/docs-v2/content/docs/core/(examples)/nextjs.mdx
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: Next.js
|
||||
description: Deploy a simple Next.js application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Next.js application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/nextjs`
|
||||
|
||||
2. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
3. **Generate a Domain**:
|
||||
1. Click on generate domain button.
|
||||
2. A new domain will be generated for you.
|
||||
3. You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
28
apps/docs-v2/content/docs/core/(examples)/preact.cn.mdx
Normal file
28
apps/docs-v2/content/docs/core/(examples)/preact.cn.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Preact
|
||||
description: 部署一个简单的 Preact 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Preact 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/preact`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡,并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
29
apps/docs-v2/content/docs/core/(examples)/preact.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/preact.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Preact
|
||||
description: Deploy a simple Preact application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Preact application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/preact`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
28
apps/docs-v2/content/docs/core/(examples)/qwik.cn.mdx
Normal file
28
apps/docs-v2/content/docs/core/(examples)/qwik.cn.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Qwik
|
||||
description: 部署一个简单的 Qwik 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Qwik 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/qwik`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡,并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
29
apps/docs-v2/content/docs/core/(examples)/qwik.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/qwik.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Qwik
|
||||
description: Deploy a simple Qwik application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Qwik application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/qwik`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
22
apps/docs-v2/content/docs/core/(examples)/remix.cn.mdx
Normal file
22
apps/docs-v2/content/docs/core/(examples)/remix.cn.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Remix
|
||||
description: 部署一个简单的 Remix 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Remix 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/remix`
|
||||
|
||||
2. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
3. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
23
apps/docs-v2/content/docs/core/(examples)/remix.mdx
Normal file
23
apps/docs-v2/content/docs/core/(examples)/remix.mdx
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: Remix
|
||||
description: Deploy a simple Remix application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Remix application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/remix`
|
||||
|
||||
2. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
3. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
28
apps/docs-v2/content/docs/core/(examples)/solidjs.cn.mdx
Normal file
28
apps/docs-v2/content/docs/core/(examples)/solidjs.cn.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Solid.js
|
||||
description: 部署一个简单的 Solid.js 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Solid.js 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/solidjs`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run serve"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
29
apps/docs-v2/content/docs/core/(examples)/solidjs.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/solidjs.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Solid.js
|
||||
description: Deploy a simple Solid.js application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Solid.js application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/solidjs`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run serve"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
28
apps/docs-v2/content/docs/core/(examples)/svelte.cn.mdx
Normal file
28
apps/docs-v2/content/docs/core/(examples)/svelte.cn.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Svelte
|
||||
description: 部署一个简单的 Svelte 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Svelte 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/svelte`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
29
apps/docs-v2/content/docs/core/(examples)/svelte.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/svelte.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Svelte
|
||||
description: Deploy a simple Svelte application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Svelte application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/svelte`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
28
apps/docs-v2/content/docs/core/(examples)/vite-react.cn.mdx
Normal file
28
apps/docs-v2/content/docs/core/(examples)/vite-react.cn.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Vite React
|
||||
description: 部署一个简单的 Vite React 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Vite React 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/vite`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
29
apps/docs-v2/content/docs/core/(examples)/vite-react.mdx
Normal file
29
apps/docs-v2/content/docs/core/(examples)/vite-react.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Vite React
|
||||
description: Deploy a simple Vite React application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Vite React application.
|
||||
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/vite`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
28
apps/docs-v2/content/docs/core/(examples)/vuejs.cn.mdx
Normal file
28
apps/docs-v2/content/docs/core/(examples)/vuejs.cn.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Vue.js
|
||||
description: 部署一个简单的 Vue.js 应用程序。
|
||||
---
|
||||
|
||||
|
||||
此示例将部署一个简单的 Vue.js 应用程序。
|
||||
|
||||
1. **在您的应用程序中使用 Git 提供商**:
|
||||
- 仓库:`https://github.com/Dokploy/examples.git`
|
||||
- 分支:`main`
|
||||
- 构建路径:`/vuejs`
|
||||
|
||||
2. **添加环境变量**:
|
||||
- 导航到“环境”选项卡并添加以下变量:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **点击部署**:
|
||||
- 通过点击部署按钮来部署您的应用程序。
|
||||
|
||||
4. **生成域名**:
|
||||
- 点击生成域名按钮。
|
||||
- 将为您生成一个新域名。
|
||||
- 您可以使用此域名访问您的应用程序。
|
||||
|
||||
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。
|
||||
28
apps/docs-v2/content/docs/core/(examples)/vuejs.mdx
Normal file
28
apps/docs-v2/content/docs/core/(examples)/vuejs.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Vue.js
|
||||
description: Deploy a simple Vue.js application.
|
||||
---
|
||||
|
||||
|
||||
This example will deploy a simple Vue.js application.
|
||||
|
||||
1. **Use Git Provider in Your Application**:
|
||||
- Repository: `https://github.com/Dokploy/examples.git`
|
||||
- Branch: `main`
|
||||
- Build path: `/vuejs`
|
||||
|
||||
2. **Add Environment Variables**:
|
||||
- Navigate to the "Environments" tab and add the following variable:
|
||||
```cmd
|
||||
NIXPACKS_START_CMD="pnpm run preview"
|
||||
```
|
||||
|
||||
3. **Click on Deploy**:
|
||||
- Deploy your application by clicking the deploy button.
|
||||
|
||||
4. **Generate a Domain**:
|
||||
- Click on generate domain button.
|
||||
- A new domain will be generated for you.
|
||||
- You can use this domain to access your application.
|
||||
|
||||
If you need further assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc).
|
||||
@@ -14,7 +14,7 @@ Dokploy offers several deployment methods, streamlining the process whether you'
|
||||
|
||||
## GitHub, Gitlab, Bitbucket
|
||||
|
||||
Go to [Git Sources](/docs/core/git-sources/github) and select the provider you want to use.
|
||||
Go to [Git Sources](/docs/core/github) and select the provider you want to use.
|
||||
|
||||
## Git
|
||||
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
---
|
||||
title: Auto Deploy
|
||||
description: "Learn how to automatically deploy your application to Dokploy."
|
||||
description: Automatically deploying your application to Dokploy can be achieved through two primary methods using Webhooks or the Dokploy API. Each method supports various platforms and provides a streamlined deployment process.
|
||||
---
|
||||
|
||||
Automatically deploying your application to Dokploy can be achieved through two primary methods: using Webhooks or the Dokploy API. Each method supports various platforms and provides a streamlined deployment process.
|
||||
## Supported Services:
|
||||
|
||||
Auto deploy is only valid for the following services:
|
||||
|
||||
- Applications
|
||||
- Docker Compose
|
||||
- Templates Open Source
|
||||
|
||||
## Github
|
||||
|
||||
@@ -17,7 +23,9 @@ Webhooks allow you to automatically deploy your application whenever changes are
|
||||
- GitLab
|
||||
- Bitbucket
|
||||
- Gitea
|
||||
- DockerHub
|
||||
- DockerHub (Only for Applications)
|
||||
|
||||
|
||||
|
||||
### Configuration Steps
|
||||
|
||||
@@ -49,6 +57,11 @@ Webhooks allow you to automatically deploy your application whenever changes are
|
||||
- **Docker Tags**: For deployments using DockerHub, ensure the tag pushed matches the one specified in Dokploy.
|
||||
- The steps are the same for all the providers.
|
||||
|
||||
|
||||
<Callout type="info">
|
||||
The steps are almost the same for all the Git providers, GitHub, GitLab, Bitbucket, Gitea.
|
||||
</Callout>
|
||||
|
||||
### API Method
|
||||
|
||||
Deploy your application programmatically using the Dokploy API from anywhere.
|
||||
20
apps/docs-v2/content/docs/core/cloud.mdx
Normal file
20
apps/docs-v2/content/docs/core/cloud.mdx
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Dokploy Cloud
|
||||
description: "Deploy your apps to multiple servers remotely without worrying about the underlying infrastructure."
|
||||
---
|
||||
|
||||
|
||||
Dokploy Cloud allows you to deploy your apps to a cloud provider of your choice. This means that you can deploy your apps to any cloud provider, such as AWS, GCP, Azure, or DigitalOcean, without having to worry about the underlying infrastructure.
|
||||
|
||||
|
||||
By default when you install Dokploy in a Self Hosted version, if you deploy all your applications by default they will be deployed on the same server where Dokploy UI is installed. This means that you will need to build and run your applications where Dokploy
|
||||
UI is installed, which can be a challenge if you don't have the resources to do so, also self hosted support for remote instances.
|
||||
|
||||
|
||||
Dokploy cloud starts from $4.50 per month per server, the next is 3.50$, and you can deploy as many applications you want to your remote server connected to a dokploy cloud, multi server feature is recommended for HA and scalability projects.
|
||||
|
||||
You can start by registering on the [Dokploy Cloud](https://app.dokploy.com) website and follow the steps to deploy your apps, see the [Pricing](https://dokploy.com#pricing) page for more information.
|
||||
|
||||
|
||||
|
||||
|
||||
86
apps/docs-v2/content/docs/core/cluster.mdx
Normal file
86
apps/docs-v2/content/docs/core/cluster.mdx
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: Cluster
|
||||
description: 'Manage server cluster settings.'
|
||||
---
|
||||
|
||||
When you deploy applications in dokploy, all of them run on the same node. If you wish to run an application on a different server, you can use the cluster feature.
|
||||
|
||||
The idea of using clusters is to allow each server to host a different application and, using Traefik along with the load balancer, redirect the traffic from the dokploy server to the servers you choose.
|
||||
|
||||
## Server Scaling Methods
|
||||
|
||||
There are two primary ways to scale your server:
|
||||
|
||||
1. **Vertical Scaling**: This involves adding more resources to the same dokploy server, such as more CPU and RAM.
|
||||
2. **Horizontal Scaling**: This method involves adding multiple servers.
|
||||
|
||||
### Vertical Scaling
|
||||
|
||||
We recommend using vertical scaling to increase the processing capacity of your applications since it's faster and requires less additional configuration.
|
||||
|
||||
To perform vertical scaling, you need to add more resources to your dokploy server, that is, more CPU and RAM. This is done through your VPS provider.
|
||||
|
||||
It's ideal to first check the vertical scaling limit you can handle. If you find it insufficient, you may consider horizontal scaling.
|
||||
|
||||
### Horizontal Scaling
|
||||
|
||||
Horizontal scaling usually requires more additional configuration and involves adding more servers (VPS).
|
||||
|
||||
If you choose the second option, we will proceed to configure the different servers.
|
||||
|
||||
## Requirements for Cluster Setup
|
||||
|
||||
1. dokploy server running (Manager).
|
||||
2. Have at least one extra server with the same architecture as the dokploy server.
|
||||
3. Have a Docker registry.
|
||||
|
||||
## Configuring the Docker Registry
|
||||
|
||||
To start, we need to configure a Docker registry, as when deploying an application, you need a registry to deploy and download the application image on the other servers.
|
||||
|
||||
We offer two ways to configure a registry:
|
||||
|
||||
1. **External Registry**: Use any registry you want.
|
||||
2. **Self-Hosted Registry**: We create and configure a self-hosted registry for you.
|
||||
|
||||
### External Registry
|
||||
|
||||
You can use any registry, such as Docker Hub, DigitalOcean Spaces, ECR, or your choice. Make sure to enter the correct credentials and test the connection before adding the registry.
|
||||
|
||||
### Self-Hosted Registry
|
||||
|
||||
We will ask you for three things:
|
||||
|
||||
1. A user.
|
||||
2. A password.
|
||||
3. A domain. Ensure this domain is pointing to the dokploy VPS.
|
||||
|
||||
Once set up, the Cluster section will be unlocked.
|
||||
|
||||
## Understanding Docker Swarm
|
||||
|
||||
We suggest you read this information to better understand how Docker Swarm works and its orchestration: [Docker Swarm documentation](https://docs.docker.com/engine/swarm/) and its architecture: [How Swarm mode works](https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/).
|
||||
|
||||
## Managing Your Cluster
|
||||
|
||||
Now you can do two things:
|
||||
|
||||
1. Add workers.
|
||||
2. Add managers.
|
||||
|
||||
Managers have two functionalities:
|
||||
|
||||
1. Manage the cluster state.
|
||||
2. Schedule the services.
|
||||
|
||||
Workers have a single purpose, which is to run the containers, acting under the rules created or established by the manager.
|
||||
|
||||
## Adding Nodes
|
||||
|
||||
You can click the 'Add Node' button, which will display the instructions you need to follow to add your servers as nodes and join them to the dokploy manager node.
|
||||
|
||||
<ImageZoom src="/assets/add-node.png" width={800} height={630} className="rounded-lg"/>
|
||||
|
||||
Once you follow the instructions, the workers or managers will appear in the table.
|
||||
|
||||
<ImageZoom src="/assets/nodes.png" width={800} height={630} className="rounded-lg"/>
|
||||
31
apps/docs-v2/content/docs/core/comparison.mdx
Normal file
31
apps/docs-v2/content/docs/core/comparison.mdx
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: "Comparison"
|
||||
description: "A comparison of Dokploy, CapRover, Dokku, and Coolify"
|
||||
---
|
||||
|
||||
Comparison of the following deployment tools:
|
||||
|
||||
| Feature | Dokploy | CapRover | Dokku | Coolify |
|
||||
| --------------------------------------- | ------- | --------------------- | --------------------- | ------- |
|
||||
| **User Interface** | ✅ | ✅ | ❌ | ✅ |
|
||||
| **Docker compose support** | ✅ | ❌ | ❌ | ✅ |
|
||||
| **API/CLI** | ✅ | ✅ | ✅ | ✅ |
|
||||
| **Multi node support** | ✅ | ✅ | ❌ | ✅ |
|
||||
| **Traefik Integration** | ✅ | ✅ | Available via Plugins | ✅ |
|
||||
| **User Permission Management** | ✅ | ❌ | ❌ | ✅ |
|
||||
| **Bitbucket Integration** | ✅ | ❌ | ❌ | ❌ |
|
||||
| **Gitlab Integration** | ✅ | ❌ | ❌ | ❌ |
|
||||
| **Advanced User Permission Management** | ✅ | ❌ | ❌ | ❌ |
|
||||
| **Terminal Access Built In** | ✅ | ❌ | ❌ | ✅ |
|
||||
| **Database Support** | ✅ | ✅ | ❌ | ✅ |
|
||||
| **Monitoring** | ✅ | ✅ | ❌ | ❌ |
|
||||
| **Backups** | ✅ | Available via Plugins | Available via Plugins | ✅ |
|
||||
| **Open Source** | ✅ | ✅ | ✅ | ✅ |
|
||||
| **Notifications** | ✅ | ❌ | ❌ | ✅ |
|
||||
| **Multi Server Support** | ✅ | ❌ | ❌ | ✅ |
|
||||
| **Open Source Templates** | ✅ | ✅ | ❌ | ✅ |
|
||||
| **Schedules Jobs** | ❌ | ❌ | ❌ | ✅ |
|
||||
| **Cloudflare Tunnels** | ❌ | ❌ | ❌ | ✅ |
|
||||
| **Previes Deployments** | ❌ | ❌ | ❌ | ✅ |
|
||||
| **Teams** | ❌ | ❌ | ❌ | ✅ |
|
||||
| **Cloud/Paid Version** | ✅ | ✅ | ✅ | ✅ |
|
||||
@@ -1,84 +0,0 @@
|
||||
---
|
||||
title: Auto-deploy
|
||||
description: How to auto-deploy your docker-compose application with Dokploy
|
||||
---
|
||||
|
||||
Automatically deploying your docker-compose application to Dokploy can be achieved through two primary methods: using Webhooks or the Dokploy API. Each method supports various platforms and provides a streamlined deployment process.
|
||||
|
||||
## Github
|
||||
|
||||
For Github, we provide autodeploy without any configuration. This will automatically deploy your application whenever you push to your repository.
|
||||
|
||||
## Webhook URL
|
||||
|
||||
Webhooks allow you to automatically deploy your docker-compose application whenever changes are made in your source repository.
|
||||
|
||||
- GitHub
|
||||
- GitLab
|
||||
- Bitbucket
|
||||
- Gitea
|
||||
|
||||
### Configuration Steps
|
||||
|
||||
1. **Enable Auto Deploy**: Toggle the 'Auto Deploy' button found in the general tab of your application settings in Dokploy.
|
||||
2. **Obtain Webhook URL**: Locate the Webhook URL from the deployment logs.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/webhook-url-compose.png"
|
||||
alt="Webhook URL"
|
||||
width={1000}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
3. **Configure Your Repository**:
|
||||
- Navigate to your repository settings on your chosen platform.
|
||||
- Add the webhook URL provided by Dokploy.
|
||||
- Ensure the settings match the configuration necessary for triggering the webhook.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/webhook-github.png"
|
||||
alt="Webhook URL"
|
||||
width={1000}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
#### Important Notes
|
||||
|
||||
- **Branch Matching**: When using Git-based providers (GitHub, GitLab, etc.), ensure that the branch configured in Dokploy matches the branch you intend to push to. Misalignment will result in a "Branch Not Match" error.
|
||||
- The steps are the same for all the providers.
|
||||
|
||||
## API Method
|
||||
|
||||
Deploy your application programmatically using the Dokploy API from anywhere.
|
||||
|
||||
### Steps to Deploy Using API
|
||||
|
||||
Steps:
|
||||
|
||||
1. **Generate a Token**: Create an API token in your profile settings on Dokploy.
|
||||
2. **Retrieve Compose ID**:
|
||||
|
||||
```http
|
||||
curl -X 'GET' \
|
||||
'https://your-domain/api/project.all' \
|
||||
-H 'accept: application/json'
|
||||
-H 'Authorization: Bearer <token>'
|
||||
```
|
||||
|
||||
This command lists all projects and services. Identify the composeId for the compose you wish to deploy.
|
||||
|
||||
3. **Trigger Deployment**:
|
||||
|
||||
```http
|
||||
curl -X 'POST' \
|
||||
'https://your-domain/api/compose.deploy' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H 'Authorization: Bearer <token>' \
|
||||
-d '{
|
||||
"composeId": "string"
|
||||
}'
|
||||
```
|
||||
|
||||
This API method allows for flexible, scriptable deployment options, suitable for automated systems or situations where direct repository integration is not feasible.
|
||||
In this way you can deploy your application from anywhere, you can use the webhook URL or the API.
|
||||
@@ -3,7 +3,7 @@ title: Domains
|
||||
description: Configure domains for your Docker Compose application.
|
||||
---
|
||||
|
||||
When using Docker Compose, adding a domain to a service is a straightforward process. This guide will walk you through the necessary steps to configure domains for your application.
|
||||
When using Docker Compose, adding a domain to a service is a straightforward process. This guide will walk you through the necessary steps to configure manual domains for your application.
|
||||
|
||||
Key Steps:
|
||||
|
||||
@@ -15,7 +15,7 @@ import { Callout } from "fumadocs-ui/components/callout";
|
||||
<Callout title="Attention" type="info">
|
||||
Since v0.7.0 Dokploy support domains natively. This means that you can
|
||||
configure your domain directly in the Dokploy UI, without doing the rest of
|
||||
the steps.
|
||||
the steps check on the [domains section](/docs/core/domains).
|
||||
</Callout>
|
||||
|
||||
Example Scenario
|
||||
@@ -170,12 +170,4 @@ Understanding Traefik Labels
|
||||
|
||||
With these configurations in place, you're now ready to deploy your application using Docker Compose. This setup should be sufficient to get your services up and running with custom domain routing through Traefik.
|
||||
|
||||
## SSL Certificates and Further Configuration
|
||||
|
||||
If you have questions about when to use Let's Encrypt or other SSL certificate options, you can find more detailed information in the following resources:
|
||||
|
||||
1. [Certificates](/docs/core/domain/certificates)
|
||||
2. [Docker Compose Domain](/docs/core/domain/docker-compose-setup)
|
||||
3. [Docker Compose Example](/docs/core/docker-compose/example)
|
||||
|
||||
If you have any further questions or need assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc) and we'll be happy to help.
|
||||
|
||||
@@ -11,26 +11,9 @@ Dokploy offers several deployment methods, streamlining the process whether you'
|
||||
- Git (Any Git Provider)
|
||||
- Raw
|
||||
|
||||
## GitHub
|
||||
## GitHub, Gitlab, Bitbucket
|
||||
|
||||
Deploying via GitHub:
|
||||
|
||||
1. Configure your GitHub repository in the `/dashboard/settings/git-providers`.
|
||||
2. When creating an application, Dokploy automatically retrieves the available repositories and branches.
|
||||
|
||||
## Gitlab
|
||||
|
||||
Deploying via Gitlab:
|
||||
|
||||
1. Configure your Gitlab repository in the `/dashboard/settings/git-providers`.
|
||||
2. When creating an application, Dokploy automatically retrieves the available repositories and branches.
|
||||
|
||||
## Bitbucket
|
||||
|
||||
Deploying via Bitbucket:
|
||||
|
||||
1. Configure your Bitbucket repository in the `/dashboard/settings/git-providers`.
|
||||
2. When creating an application, Dokploy automatically retrieves the available repositories and branches.
|
||||
Go to [Git Sources](/docs/core/github) and select the provider you want to use.
|
||||
|
||||
## Git
|
||||
|
||||
|
||||
96
apps/docs-v2/content/docs/core/domains/cloudflare.mdx
Normal file
96
apps/docs-v2/content/docs/core/domains/cloudflare.mdx
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
title: Cloudflare
|
||||
description: This guide will cover how to configure a Cloudflare domain for your applications in dokploy or panel.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
Cloudflare has multiple SSL's Modes:
|
||||
|
||||
1. **Strict (SSL-Only Origin Pull)**: Enforce encryption between Cloudflare and your origin. Use this mode to guarantee connections to your origin will always be encrypted, regardless of your visitor’s request.
|
||||
2. **Full (Strict)**: Enable encryption end-to-end and enforce validation on origin certificates. Use Cloudflare’s Origin CA to generate certificates for your origin.
|
||||
3. **Full**: Enable encryption end-to-end. Use this mode when your origin server supports SSL certification but does not use a valid, publicly trusted certificate.
|
||||
4. **Flexible**: Enable encryption only between your visitors and Cloudflare. This will avoid browser security warnings, but all connections between Cloudflare and your origin are made through HTTP.
|
||||
5. **Off (not secure)**: No encryption applied. Turning off SSL disables HTTPS and causes browsers to show a warning that your website is not secure.
|
||||
|
||||
We will cover two of SSL modes in this guide:
|
||||
|
||||
- **Full (Strict)**
|
||||
- **Flexible**
|
||||
|
||||
## Switch Mode
|
||||
|
||||
To switch between modes, follow these steps:
|
||||
|
||||
1. Go to cloudflare dashboard and then click on `Account Home` -> Select the Domain you want to change.
|
||||
2. On the left side, click `SSL/TLS`.
|
||||
3. Click on `Overview`.
|
||||
4. Click on Configure SSL/TLS Encryption.
|
||||
5. Select the desired mode Full (Strict) or Flexible.
|
||||
6. Click `Save`.
|
||||
|
||||
|
||||
|
||||
|
||||
## Assign a Domain Full (Strict)
|
||||
|
||||
|
||||
<Callout type="warn">
|
||||
Follow the steps in the same order to prevent any issues.
|
||||
</Callout>
|
||||
|
||||
We assume that you have enabled the `Full (Strict)` mode in the previous step, is super important to follow the steps in the same order to prevent any issues.
|
||||
|
||||
1. Go to cloudflare dashboard and then click on `Account Home` -> Select the Domain.
|
||||
2. On the left side, click `DNS`.
|
||||
3. Click on `Records`.
|
||||
4. Click on `Add Record`.
|
||||
5. Select `A` record type.
|
||||
6. Enter the `Host` name, eg. `api` so it will be `api.dokploy.com`.
|
||||
7. Enter the `IPv4 Address` from your server where the application is hosted eg. `1.2.3.4`.
|
||||
8. Click `Save`.
|
||||
9. Go to dokploy panel and now you can assign either for `Applications` or `Docker Compose` or `Templates Open Source`.
|
||||
10. Go to `Domains` section.
|
||||
11. Click `Create Domain`.
|
||||
12. In the `Host` field, enter the domain name eg. `api.dokploy.com`.
|
||||
13. In the `Path` field, enter the path eg. `/`.
|
||||
14. In the `Container Port` field, enter the port where your application is running eg. `3000`.
|
||||
15. In the `HTTPS` field enable `ON`.
|
||||
16. In the `Certificate` field select `Let's Encrypt`.
|
||||
17. Click `Create`.
|
||||
18. A domain will be automatically assigned to your application.
|
||||
19. Wait a few seconds and refresh the application.
|
||||
20. You should see the application running on the domain you just created.
|
||||
|
||||
|
||||
|
||||
## Assign a Domain Flexible
|
||||
|
||||
We assume that you have enabled the `Flexible` mode in the previous step, is super important to follow the steps in the same order to prevent any issues.
|
||||
|
||||
1. Go to cloudflare dashboard and then click on `Account Home` -> Select the Domain.
|
||||
2. On the left side, click `DNS`.
|
||||
3. Click on `Records`.
|
||||
4. Click on `Add Record`.
|
||||
5. Select `A` record type.
|
||||
6. Enter the `Host` name, eg. `api` so it will be `api.dokploy.com`.
|
||||
7. Enter the `IPv4 Address` from your server where the application is hosted eg. `1.2.3.4`.
|
||||
8. Click `Save`.
|
||||
9. Go to dokploy panel and now you can assign either for `Applications` or `Docker Compose` or `Templates Open Source`.
|
||||
10. Go to `Domains` section.
|
||||
11. Click `Create Domain`.
|
||||
12. In the `Host` field, enter the domain name eg. `api.dokploy.com`.
|
||||
13. In the `Path` field, enter the path eg. `/`.
|
||||
14. In the `Container Port` field, enter the port where your application is running eg. `3000`.
|
||||
15. In the `HTTPS` field enable `OFF`.
|
||||
16. In the `Certificate` field select `None`.
|
||||
17. Click `Create`.
|
||||
18. A domain will be automatically assigned to your application.
|
||||
19. Wait a few seconds and refresh the application.
|
||||
20. You should see the application running on the domain you just created.
|
||||
|
||||
|
||||
### Important Clarification on Container Ports
|
||||
|
||||
The "Container Port" specified in the domain settings is exclusively for routing traffic to the correct application container through Traefik, and does not expose the port directly to the internet. This is fundamentally different from the port settings in the "Advanced -> Ports" section, which are used to directly expose application ports. The container port in the domain settings ensures that Traefik can internally direct traffic to the specified port within the container based on the domain configuration.
|
||||
|
||||
26
apps/docs-v2/content/docs/core/domains/generated.mdx
Normal file
26
apps/docs-v2/content/docs/core/domains/generated.mdx
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Generated
|
||||
description: This section outlines how to configure free HTTP domains for your applications in Dokploy, ensuring that your applications are accessible via custom URLs.
|
||||
---
|
||||
|
||||
|
||||
Dokploy use https://traefik.me to generate free domains for you.
|
||||
Quickly set up a domain for development or testing purposes without needing to register a domain.
|
||||
|
||||
|
||||
#### Steps to Generate a Domain
|
||||
|
||||
1. Go to the `domains` section.
|
||||
2. Click `Create Domain`.
|
||||
3. Click on the `Dice` Icon next to `Host` field it will generate a free domain for you.
|
||||
4. Path is `/`.
|
||||
5. `Container Port`, set the port where your application is running, eg usually for Next.js it is `3000`, for Astro is `4321`
|
||||
6. HTTPS is `OFF`.
|
||||
7. Certificate is `None`.
|
||||
8. Click `Create`.
|
||||
9. A free domain will be automatically assigned to your application.
|
||||
|
||||
|
||||
### Important Clarification on Container Ports
|
||||
|
||||
The "Container Port" specified in the domain settings is exclusively for routing traffic to the correct application container through Traefik, and does not expose the port directly to the internet. This is fundamentally different from the port settings in the "Advanced -> Ports" section, which are used to directly expose application ports. The container port in the domain settings ensures that Traefik can internally direct traffic to the specified port within the container based on the domain configuration.
|
||||
@@ -1,10 +1,33 @@
|
||||
---
|
||||
title: Domains
|
||||
description: Domains
|
||||
description: This section outlines how to configure domains for your applications in Dokploy, ensuring that your applications are accessible via custom URLs.
|
||||
---
|
||||
|
||||
This section outlines how to configure domains for your applications in Dokploy, ensuring that your applications are accessible via custom URLs.
|
||||
|
||||
Dokploy Provide 2 ways to add a domain to your service:
|
||||
|
||||
1. **Free Domains** from Traefik.me
|
||||
2. **Buy a domain** from one of the providers above
|
||||
|
||||
If you don't have a domain, you can use our integrated free domains from Traefik.me in the Dokploy panel, without doing any configuration however is only for HTTP, if you want to have a HTTPS domain you need to buy a domain from one of the providers above.
|
||||
|
||||
Domains are supported for:
|
||||
|
||||
- **Applications**
|
||||
- **Docker Compose**
|
||||
- **Templates Open Source**
|
||||
|
||||
|
||||
## Requirements (Optional)
|
||||
|
||||
We recommend this if you want to have a HTTPS domain, you need to buy a domain from one of the providers above.
|
||||
|
||||
- [Cloudflare](https://www.cloudflare.com/)
|
||||
- [Porkbun](https://porkbun.com/)
|
||||
- [Namecheap](https://www.namecheap.com/domains/)
|
||||
- [Name.com](https://www.name.com/)
|
||||
- [GoDaddy](https://www.godaddy.com/)
|
||||
- [Domain.com](https://www.domain.com/)
|
||||
|
||||
### Add Domain
|
||||
|
||||
@@ -13,30 +36,9 @@ Associate custom domains with your application to make it accessible over the in
|
||||
- **Host**: The domain name that you want to link to your application (e.g., `api.dokploy.com`).
|
||||
- **Path**: The specific path within the domain where the application should be accessible.
|
||||
- **Container Port**: The port on the container that the domain should route to.
|
||||
- **Certificate**: Select whether to secure the domain with SSL/TLS certificates. Dokploy supports automatic provisioning of SSL certificates via Let's Encrypt.
|
||||
- **HTTPS**: Toggle this on to enable HTTPS for your domain, providing secure, encrypted connections.
|
||||
- **Certificate**: Select (letsencrypt) or (None)
|
||||
|
||||
#### Steps to Add a Domain
|
||||
1. Click 'Add Domain'.
|
||||
2. Fill in the domain details, including host, path, and port.
|
||||
3. Choose to enable HTTPS and select a certificate option.
|
||||
4. Click 'Create' to apply the settings.
|
||||
|
||||
### Generate Domain
|
||||
|
||||
Quickly set up a domain for development or testing purposes without needing to register a domain.
|
||||
|
||||
- **Generate TraefikMe Domain**: Creates a free domain provided by TraefikMe. This is ideal for testing or temporary access before a proper domain is purchased.
|
||||
|
||||
#### Steps to Generate a Domain
|
||||
1. Click 'Generate Domain'.
|
||||
2. Choose 'Generate TraefikMe Domain' for a quick setup.
|
||||
3. A domain will be automatically assigned to your application.
|
||||
|
||||
### Managing Domains
|
||||
|
||||
- **View and Modify**: Existing domains are listed with options to edit settings or remove them.
|
||||
- **Details**: Each domain entry shows the configured host, path, port, and whether HTTPS is enabled.
|
||||
|
||||
### Note
|
||||
|
||||
34
apps/docs-v2/content/docs/core/domains/others.mdx
Normal file
34
apps/docs-v2/content/docs/core/domains/others.mdx
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: Others
|
||||
description: This guide will cover how to configure a domain from other providers for your applications in dokploy or panel.
|
||||
---
|
||||
|
||||
|
||||
In the case you don't want to use Cloudflare, you can use any domain from any provider:
|
||||
|
||||
|
||||
1. Go to your DNS Panel.
|
||||
2. Go to `Records` section.
|
||||
3. Click on `Add Record`.
|
||||
4. Select `A` record type.
|
||||
5. Enter the `Host` name, eg. `api` so it will be `api.dokploy.com`.
|
||||
6. Enter the `IPv4 Address` from your server where the application is hosted eg. `1.2.3.4`.
|
||||
7. Click `Save`.
|
||||
8. Go to dokploy panel and now you can assign either for `Applications` or `Docker Compose` or `Templates Open Source`.
|
||||
9. Go to `Domains` section.
|
||||
10. Click `Create Domain`.
|
||||
11. In the `Host` field, enter the domain name eg. `api.dokploy.com`.
|
||||
12. In the `Path` field, enter the path eg. `/`.
|
||||
13. In the `Container Port` field, enter the port where your application is running eg. `3000`.
|
||||
14. In the `HTTPS` field enable `ON`.
|
||||
15. In the `Certificate` field select `Let's Encrypt`.
|
||||
16. Click `Create`.
|
||||
17. A domain will be automatically assigned to your application.
|
||||
18. Wait a few seconds and refresh the application.
|
||||
19. You should see the application running on the domain you just created.
|
||||
|
||||
|
||||
### Important Clarification on Container Ports
|
||||
|
||||
The "Container Port" specified in the domain settings is exclusively for routing traffic to the correct application container through Traefik, and does not expose the port directly to the internet. This is fundamentally different from the port settings in the "Advanced -> Ports" section, which are used to directly expose application ports. The container port in the domain settings ensures that Traefik can internally direct traffic to the specified port within the container based on the domain configuration.
|
||||
|
||||
16
apps/docs-v2/content/docs/core/goodies.mdx
Normal file
16
apps/docs-v2/content/docs/core/goodies.mdx
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Goodies
|
||||
description: "Dokploy has certain goodies that are external that can be used with Dokploy."
|
||||
---
|
||||
|
||||
|
||||
1. **Ansible Dokploy**: Ansible role to deploy Dokploy [Ansible Role](https://github.com/jacobtipp/ansible-dokploy)
|
||||
2. **Dokplo Oracle infrastructure**: Deploy Dokploy on Oracle infrastructure [Github](https://github.com/statickidz/dokploy-oci-free)
|
||||
3. **Dokploy Deploy Action 1**: Automatic Dokploy deploments on Github [Github](https://github.com/benbristow/dokploy-deploy-action)
|
||||
4. **Dokploy Deploy Action 2**: Automatic Dokploy deploments on Github [Github](https://github.com/jmischler72/dokploy-deploy-action)
|
||||
5. **Dokploy JS Sdk**: Dokploy JS SDK [Github](https://github.com/quiint/dokploy.js)
|
||||
6. **Templates Collection** : Docker compose collection for Dokploy [Github](https://github.com/benbristow/dokploy-compose-templates)
|
||||
7. **Dokploy Port Updater**: Dokploy Port Updater [Github](https://github.com/clockradios/dokploy-port-updater)
|
||||
8. **Dokli TUI**: Dokli TUI [Github](https://github.com/jonykalavera/dokli)
|
||||
|
||||
Want to submit your own? [Submit a PR](https://github.com/Dokploy/website/blob/main/README.md)
|
||||
@@ -14,6 +14,9 @@
|
||||
"uninstall",
|
||||
"videos",
|
||||
"...",
|
||||
"---Cloud---",
|
||||
"cloud",
|
||||
"differences",
|
||||
"---Server---",
|
||||
"(S3-Destinations)",
|
||||
"(Git-Sources)",
|
||||
@@ -23,16 +26,16 @@
|
||||
"ssh-keys",
|
||||
"certificates",
|
||||
"---Services---",
|
||||
"domains",
|
||||
"applications",
|
||||
"docker-compose",
|
||||
"databases",
|
||||
"templates",
|
||||
"page-conventions",
|
||||
"navigation",
|
||||
"---UI---",
|
||||
"theme",
|
||||
"components",
|
||||
"mdx",
|
||||
"blocks"
|
||||
"(examples)",
|
||||
"auto-deploy",
|
||||
|
||||
"---Advanced---",
|
||||
"cluster",
|
||||
"multi-server"
|
||||
]
|
||||
}
|
||||
|
||||
29
apps/docs-v2/content/docs/core/multi-server/index.mdx
Normal file
29
apps/docs-v2/content/docs/core/multi-server/index.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: Multi Server
|
||||
description: "Deploy your apps to multiple servers remotely."
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
Multi server allows you to deploy your apps remotely to different servers without needing to build and run them where the Dokploy UI is installed.
|
||||
|
||||
To use the multi-server feature, you need to have Dokploy UI installed either locally or on a remote server. We recommend using a remote server for better connectivity, security, and isolation, for remote instances we install only a traefik instance.
|
||||
|
||||
If you plan to only deploy apps to remote servers and use Dokploy UI for managing deployments, Dokploy will use around 250 MB of RAM and minimal CPU, so a low-resource server should be sufficient.
|
||||
|
||||
All the features we have documented previously are supported by Dokploy Multi Server. The only feature not supported is remote server monitoring, due to performance reasons. However, all functionalities should work the same as when deploying on the same server where Dokploy UI is installed.
|
||||
|
||||
## Features
|
||||
|
||||
1. **Enter the terminal**: Allows you to access the terminal of the remote server.
|
||||
2. **Setup Server**: Allows you to configure the remote server.
|
||||
- **SSH Keys**: Steps to add SSH keys to the remote server.
|
||||
- **Deployments**: Steps to configure the remote server for deploying applications.
|
||||
3. **Edit Server**: Allows you to modify the remote server's details, such as SSH key, name, description, IP, etc.
|
||||
4. **View Actions**: Lets you perform actions like managing the Traefik instance, storage, and activating Docker cleanup.
|
||||
5. **Show Traefik File System**: Displays the contents of the remote server's directory.
|
||||
6. **Show Docker Containers**: Shows the Docker containers running on the remote server.
|
||||
|
||||
<Callout>
|
||||
Remote server monitoring is not supported due to performance reasons.
|
||||
</Callout>
|
||||
117
apps/docs-v2/content/docs/core/multi-server/instructions.mdx
Normal file
117
apps/docs-v2/content/docs/core/multi-server/instructions.mdx
Normal file
@@ -0,0 +1,117 @@
|
||||
---
|
||||
title: Instructions
|
||||
description: "Example to setup a remote server and deploy application in a VPS."
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
Multi server allows you to deploy your apps remotely to different servers without needing to build and run them where the Dokploy UI is installed.
|
||||
|
||||
## Requirements
|
||||
|
||||
1. To install Dokploy UI, follow the [installation guide](en/docs/core/get-started/installation).
|
||||
|
||||
2. Create an SSH key by going to `/dashboard/settings/ssh-keys` and add a new key. Be sure to copy the public key.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/ssh-keys.png"
|
||||
alt="Architecture Diagram"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
3. Decide which remote server to deploy your apps on. We recommend these reliable providers:
|
||||
|
||||
- [Hostinger](https://www.hostinger.com/vps-hosting?ref=dokploy) Get 20% off with this [referral link](https://www.hostinger.com/vps-hosting?REFERRALCODE=1SIUMAURICI97).
|
||||
- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets) Get $200 credits for free with this [referral link](https://m.do.co/c/db24efd43f35).
|
||||
- [Hetzner](https://www.hetzner.com/cloud/) Get €20 credits with this [referral link](https://hetzner.cloud/?ref=vou4fhxJ1W2D).
|
||||
- [Vultr](https://www.vultr.com/pricing/#cloud-compute) Referral Link: [Referral Link](https://www.vultr.com/?ref=9679828)
|
||||
- [Linode](https://www.linode.com/es/pricing/#compute-shared).
|
||||
- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available).
|
||||
- [Google Cloud](https://cloud.google.com/).
|
||||
- [AWS](https://aws.amazon.com/ec2/pricing/).
|
||||
|
||||
4. When creating the server, it should ask for SSH keys. Ideally, use your computer's public key and the key you generated in the previous step. Here's how to add the public key in Hostinger:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/hostinger-add-sshkey.png"
|
||||
alt="Adding SSH key"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
<Callout>The steps are similar across other providers.</Callout>
|
||||
|
||||
5. Copy the server’s IP address and ensure you know the username (often `root`). Fill in all fields and click `Create`.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-add-server.png"
|
||||
alt="Add server"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
6. To test connectivity, open the server dropdown and click `Enter Terminal`. If everything is correct, you should be able to interact with the remote server.
|
||||
|
||||
7. Click `Setup Server` to proceed. There are two tabs: SSH Keys and Deployments. This guide explains the easy way, but you can follow the manual process via the Dokploy UI if you prefer.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-setup-2.png"
|
||||
alt="Setup process"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
8. Click `Deployments`, then `Setup Server`. If everything is correct, you should see output similar to this:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-setup-3.png"
|
||||
alt="Server setup output"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
<Callout>
|
||||
You only need to run this setup once. If Dokploy updates later, check the
|
||||
release notes to see if rerunning this command is required.
|
||||
</Callout>
|
||||
|
||||
9. You're ready to deploy your apps! Let's test it out:
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-add-app.png"
|
||||
alt="Add app"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
10. To check which server an app belongs to, you’ll see the server name at the top. If no server is selected, it defaults to `Dokploy Server`. Click `Deploy` to start building your app on the remote server. You can check the `Logs` tab to see the build process. For this example, we’ll use a test repo:
|
||||
Repo: `https://github.com/Dokploy/examples.git`
|
||||
Branch: `main`
|
||||
Build Path: `/astro`
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-setup-app.png"
|
||||
alt="App setup"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
|
||||
11. Once the build is done, go to `Domains` and create a free domain. Just click `Create` and you’re good to go! 🎊
|
||||
|
||||
{" "}
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/multi-server-finish.png"
|
||||
alt="Finished setup"
|
||||
width={1000}
|
||||
height={600}
|
||||
className="rounded-lg"
|
||||
/>
|
||||
92
apps/docs-v2/content/docs/core/troubleshooting.mdx
Normal file
92
apps/docs-v2/content/docs/core/troubleshooting.mdx
Normal file
@@ -0,0 +1,92 @@
|
||||
---
|
||||
title: Troubleshooting
|
||||
description: Solve the most common problems that occur when using Dokploy.
|
||||
---
|
||||
|
||||
## Applications Domain Not Working?
|
||||
|
||||
You see the deployment succeeded, and logs are running, but the domain isn't working? Here's what to check:
|
||||
|
||||
1. **Correct Port Mapping**: Ensure the domain is using the correct port for your application. For example, if you're using Next.js, the port should be `3000`, or for Laravel, it should be `8000`. If you change the app port, update the domain to reflect that.
|
||||
2. **Avoid Using `Ports` in Advanced Settings**: Generally, there's no need to use the `Ports` feature unless you want to access your app via `IP:port`. Leaving this feature enabled may interfere with your domain.
|
||||
|
||||
3. **Let's Encrypt Certificates**: It's crucial to point the domain to your server’s IP **before** adding it in Dokploy. If the domain is added first, the certificate won’t be generated, and you may need to recreate the domain or restart Traefik.
|
||||
|
||||
4. **Listen on 0.0.0.0, Not 127.0.0.1**: If your app is bound to `127.0.0.1` (which is common in Vite apps), switch it to `0.0.0.0` to allow external access.
|
||||
|
||||
## Logs and Monitoring Not Working After Changing Application Placement?
|
||||
|
||||
This is expected behavior. If the application is running on a different node (worker), the UI won’t have access to logs or monitoring, as they're not on the same node.
|
||||
|
||||
## Mounts Are Causing My Application Not to Run?
|
||||
|
||||
Docker Swarm won't run your application if there are invalid mounts, even if the deployment shows as successful. Double-check your mounts to ensure they are valid.
|
||||
|
||||
## Volumes in Docker Compose Not Working?
|
||||
|
||||
For Docker Compose, all file mounts defined in the `volumes` section will be stored in the `files` folder. This is the default directory structure:
|
||||
|
||||
## I added a volume to my docker compose, but is not finding the volume?
|
||||
|
||||
For docker compose all the file mounts you've created in the volumes section will be stored to files folder, this is the default structure of the docker compose.
|
||||
|
||||
```
|
||||
/application-name
|
||||
/code
|
||||
/files
|
||||
```
|
||||
|
||||
So instead of using this invalid way to mount a volume:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- "/folder:/path/in/container" ❌
|
||||
```
|
||||
|
||||
You should use this format:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- "../files/my-database:/var/lib/mysql" ✅
|
||||
- "../files/my-configs:/etc/my-app/config" ✅
|
||||
```
|
||||
|
||||
## Logs Not Loading When Deploying to a Remote Server?
|
||||
|
||||
There are a few potential reasons for this:
|
||||
|
||||
1. **Slow Server:**: If the server is too slow, it may struggle to handle concurrent requests, leading to SSL handshake errors.
|
||||
2. **Insufficient Disk Space:** If the server doesn't have enough disk space, the logs may not load.
|
||||
|
||||
## Docker Compose Domain Not Working?
|
||||
|
||||
When adding a domain in your Docker Compose file, it’s not necessary to expose the ports directly. Simply specify the port where your app is running. Exposing the ports can lead to conflicts with other applications or ports.
|
||||
|
||||
Example of what not to do:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
app:
|
||||
image: dokploy/dokploy:latest
|
||||
ports:
|
||||
- 3000:3000
|
||||
```
|
||||
|
||||
Recommended approach:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
app:
|
||||
image: dokploy/dokploy:latest
|
||||
ports:
|
||||
- 3000
|
||||
- 80
|
||||
```
|
||||
|
||||
Then, when creating the domain in Dokploy, specify the service name and port, like this:
|
||||
|
||||
```yaml
|
||||
domain: my-app.com
|
||||
serviceName: app
|
||||
port: 3000
|
||||
```
|
||||
@@ -6,7 +6,13 @@ description: Videos about how to install and use Dokploy.
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card';
|
||||
|
||||
|
||||
## Dokploy Cloud - Introduction
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/x2s_Y5ON-ms?si=nFQ-oyvcomDIIRU0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
|
||||
|
||||
## My Favorite Way to deploy Applications
|
||||
|
||||
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/2Q4-EgYS0u4?si=K7wls46laSU_W3c_" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,30 @@
|
||||
import type { Metadata } from "next";
|
||||
|
||||
export const baseUrl =
|
||||
process.env.NODE_ENV === "development"
|
||||
? "http://localhost:3000"
|
||||
: "https://docs.dokploy.com";
|
||||
|
||||
export const url = (path: string): string => new URL(path, baseUrl).toString();
|
||||
|
||||
export function createMetadata(override: Metadata): Metadata {
|
||||
return {
|
||||
...override,
|
||||
openGraph: {
|
||||
title: override.title ?? undefined,
|
||||
description: override.description ?? undefined,
|
||||
url: "https://fumadocs.vercel.app",
|
||||
images: "/banner.png",
|
||||
siteName: "Fumadocs",
|
||||
...override.openGraph,
|
||||
},
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
creator: "@money_is_shark",
|
||||
title: override.title ?? undefined,
|
||||
description: override.description ?? undefined,
|
||||
images: "/banner.png",
|
||||
...override.twitter,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { BaseLayoutProps } from "fumadocs-ui/layout";
|
||||
import { GlobeIcon, HeartIcon } from "lucide-react";
|
||||
import { Github, GlobeIcon, HeartIcon } from "lucide-react";
|
||||
|
||||
export const Logo = () => {
|
||||
return (
|
||||
@@ -72,5 +72,15 @@ export const baseOptions: BaseLayoutProps = {
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
text: "Github",
|
||||
url: "https://github.com/dokploy/dokploy",
|
||||
active: "nested-url",
|
||||
icon: (
|
||||
<>
|
||||
<Github fill="currentColor" />
|
||||
</>
|
||||
),
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user