diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e50c7207..892e8ea1 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -5,51 +5,6 @@ on: branches: ["canary", "main"] jobs: - build-and-push-image-docs: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Log in to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push Docker image - uses: docker/build-push-action@v4 - with: - context: . - file: ./Dockerfile.docs - push: true - tags: dokploy/docs:latest - platforms: linux/amd64 - - build-and-push-image-website: - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Log in to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push Docker image - uses: docker/build-push-action@v4 - with: - context: . - file: ./Dockerfile.website - push: true - tags: dokploy/website:latest - platforms: linux/amd64 - - build-and-push-cloud-image: runs-on: ubuntu-latest @@ -70,8 +25,12 @@ jobs: file: ./Dockerfile.cloud push: true tags: | - siumauricio/cloud:${{ github.ref_name == 'main' && 'main' || 'canary' }} + siumauricio/cloud:${{ github.ref_name == 'main' && 'latest' || 'canary' }} platforms: linux/amd64 + build-args: | + NEXT_PUBLIC_UMAMI_HOST=${{ secrets.NEXT_PUBLIC_UMAMI_HOST }} + NEXT_PUBLIC_UMAMI_WEBSITE_ID=${{ secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID }} + NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=${{ secrets.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY }} build-and-push-schedule-image: runs-on: ubuntu-latest @@ -93,7 +52,7 @@ jobs: file: ./Dockerfile.schedule push: true tags: | - siumauricio/schedule:${{ github.ref_name == 'main' && 'main' || 'canary' }} + siumauricio/schedule:${{ github.ref_name == 'main' && 'latest' || 'canary' }} platforms: linux/amd64 @@ -117,5 +76,5 @@ jobs: file: ./Dockerfile.server push: true tags: | - siumauricio/server:${{ github.ref_name == 'main' && 'main' || 'canary' }} + siumauricio/server:${{ github.ref_name == 'main' && 'latest' || 'canary' }} platforms: linux/amd64 \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 53b8452c..05256d57 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -242,30 +242,7 @@ export function generate(schema: Schema): Template { - If you want to show a domain in the UI, please add the prefix \_HOST at the end of the variable name. - Test first on a vps or a server to make sure the template works. -## Docs +## Docs & Website -To run the docs locally, run the following command: +To contribute to the Dokploy docs or website, please go to this [repository](https://github.com/Dokploy/website). -```bash -pnpm run docs:dev -``` - -To build the docs, run the following command: - -```bash -pnpm run docs:build -``` - -## Website - -To run the website locally, run the following command: - -```bash -pnpm run website:dev -``` - -To build the website, run the following command: - -```bash -pnpm run website:build -``` diff --git a/Dockerfile b/Dockerfile index bb5310f2..74b70db0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,6 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile # Deploy only the dokploy app ENV NODE_ENV=production -RUN pnpm --filter=@dokploy/server switch:prod RUN pnpm --filter=@dokploy/server build RUN pnpm --filter=./apps/dokploy run build diff --git a/Dockerfile.cloud b/Dockerfile.cloud index 255ac3ad..020ea3d6 100644 --- a/Dockerfile.cloud +++ b/Dockerfile.cloud @@ -12,10 +12,18 @@ RUN apt-get update && apt-get install -y python3 make g++ git && rm -rf /var/lib # Install dependencies RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --filter=@dokploy/server --filter=./apps/dokploy install --frozen-lockfile + # Deploy only the dokploy app +ARG NEXT_PUBLIC_UMAMI_HOST +ENV NEXT_PUBLIC_UMAMI_HOST=$NEXT_PUBLIC_UMAMI_HOST + +ARG NEXT_PUBLIC_UMAMI_WEBSITE_ID +ENV NEXT_PUBLIC_UMAMI_WEBSITE_ID=$NEXT_PUBLIC_UMAMI_WEBSITE_ID + +ARG NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY +ENV NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=$NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY ENV NODE_ENV=production -RUN pnpm --filter=@dokploy/server switch:prod RUN pnpm --filter=@dokploy/server build RUN pnpm --filter=./apps/dokploy run build diff --git a/Dockerfile.docs b/Dockerfile.docs deleted file mode 100644 index 71b790ec..00000000 --- a/Dockerfile.docs +++ /dev/null @@ -1,35 +0,0 @@ -FROM node:18-alpine AS base -ENV PNPM_HOME="/pnpm" -ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable - -FROM base AS build -COPY . /usr/src/app -WORKDIR /usr/src/app - - -# Install dependencies -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --filter=./apps/docs --frozen-lockfile - -# Deploy only the dokploy app - -ENV NODE_ENV=production -RUN pnpm --filter=./apps/docs run build -RUN pnpm --filter=./apps/docs --prod deploy /prod/docs - -RUN cp -R /usr/src/app/apps/docs/.next /prod/docs/.next - -FROM base AS dokploy -WORKDIR /app - -# Set production -ENV NODE_ENV=production - -# Copy only the necessary files -COPY --from=build /prod/docs/.next ./.next -COPY --from=build /prod/docs/public ./public -COPY --from=build /prod/docs/package.json ./package.json -COPY --from=build /prod/docs/node_modules ./node_modules - -EXPOSE 3000 -CMD HOSTNAME=0.0.0.0 && pnpm start \ No newline at end of file diff --git a/Dockerfile.schedule b/Dockerfile.schedule index 36f06aef..5eca3420 100644 --- a/Dockerfile.schedule +++ b/Dockerfile.schedule @@ -15,7 +15,6 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --filter=@dokploy/server # Deploy only the dokploy app ENV NODE_ENV=production -RUN pnpm --filter=@dokploy/server switch:prod RUN pnpm --filter=@dokploy/server build RUN pnpm --filter=./apps/schedules run build diff --git a/Dockerfile.server b/Dockerfile.server index 9cf04b21..a25b22e5 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -15,7 +15,6 @@ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --filter=@dokploy/server # Deploy only the dokploy app ENV NODE_ENV=production -RUN pnpm --filter=@dokploy/server switch:prod RUN pnpm --filter=@dokploy/server build RUN pnpm --filter=./apps/api run build diff --git a/Dockerfile.website b/Dockerfile.website deleted file mode 100644 index 9932f527..00000000 --- a/Dockerfile.website +++ /dev/null @@ -1,35 +0,0 @@ -FROM node:18-alpine AS base -ENV PNPM_HOME="/pnpm" -ENV PATH="$PNPM_HOME:$PATH" -RUN corepack enable - -FROM base AS build -COPY . /usr/src/app -WORKDIR /usr/src/app - - -# Install dependencies -RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --filter=./apps/website --frozen-lockfile - -# Deploy only the dokploy app - -ENV NODE_ENV=production -RUN pnpm --filter=./apps/website run build -RUN pnpm --filter=./apps/website --prod deploy /prod/website - -RUN cp -R /usr/src/app/apps/website/.next /prod/website/.next - -FROM base AS dokploy -WORKDIR /app - -# Set production -ENV NODE_ENV=production - -# Copy only the necessary files -COPY --from=build /prod/website/.next ./.next -COPY --from=build /prod/website/public ./public -COPY --from=build /prod/website/package.json ./package.json -COPY --from=build /prod/website/node_modules ./node_modules - -EXPOSE 3000 -CMD HOSTNAME=0.0.0.0 && pnpm start \ No newline at end of file diff --git a/apps/api/src/types.ts b/apps/api/src/types.ts deleted file mode 100644 index 2547432b..00000000 --- a/apps/api/src/types.ts +++ /dev/null @@ -1,16 +0,0 @@ -export interface LemonSqueezyLicenseResponse { - valid: boolean; - error?: string; - meta?: { - store_id: string; - order_id: number; - order_item_id: number; - product_id: number; - product_name: string; - variant_id: number; - variant_name: string; - customer_id: number; - customer_name: string; - customer_email: string; - }; -} diff --git a/apps/api/src/utils.ts b/apps/api/src/utils.ts index 5d776a5c..2654487f 100644 --- a/apps/api/src/utils.ts +++ b/apps/api/src/utils.ts @@ -1,45 +1,12 @@ import { - deployApplication, - deployCompose, deployRemoteApplication, deployRemoteCompose, - rebuildApplication, - rebuildCompose, rebuildRemoteApplication, rebuildRemoteCompose, updateApplicationStatus, updateCompose, -} from "@dokploy/server/dist"; +} from "@dokploy/server"; import type { DeployJob } from "./schema"; -import type { LemonSqueezyLicenseResponse } from "./types"; - -// const LEMON_SQUEEZY_API_KEY = process.env.LEMON_SQUEEZY_API_KEY; -// const LEMON_SQUEEZY_STORE_ID = process.env.LEMON_SQUEEZY_STORE_ID; -// export const validateLemonSqueezyLicense = async ( -// licenseKey: string, -// ): Promise => { -// try { -// const response = await fetch( -// "https://api.lemonsqueezy.com/v1/licenses/validate", -// { -// method: "POST", -// headers: { -// "Content-Type": "application/json", -// "x-api-key": LEMON_SQUEEZY_API_KEY as string, -// }, -// body: JSON.stringify({ -// license_key: licenseKey, -// store_id: LEMON_SQUEEZY_STORE_ID as string, -// }), -// }, -// ); - -// return response.json(); -// } catch (error) { -// console.error("Error validating license:", error); -// return { valid: false, error: "Error validating license" }; -// } -// }; export const deploy = async (job: DeployJob) => { try { @@ -82,7 +49,6 @@ export const deploy = async (job: DeployJob) => { } } } catch (error) { - console.log(error); if (job.applicationType === "application") { await updateApplicationStatus(job.applicationId, "error"); } else if (job.applicationType === "compose") { diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json index 3c0b02bc..e47c6267 100644 --- a/apps/api/tsconfig.json +++ b/apps/api/tsconfig.json @@ -7,7 +7,12 @@ "skipLibCheck": true, "outDir": "dist", "jsx": "react-jsx", - "jsxImportSource": "hono/jsx" + "jsxImportSource": "hono/jsx", + "baseUrl": ".", + "paths": { + "@/*": ["./*"], + "@dokploy/server/*": ["../../packages/server/src/*"] + } }, "exclude": ["node_modules", "dist"] } diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore deleted file mode 100644 index 0d548812..00000000 --- a/apps/docs/.gitignore +++ /dev/null @@ -1,31 +0,0 @@ -# deps -/node_modules - -# generated content -.contentlayer - -# test & build -/coverage -/.next/ -/out/ -/build -*.tsbuildinfo - -# bun -bun.lockb - -# misc -.DS_Store -*.pem -/.pnp -.pnp.js -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.idea/* -.idea - -# others -.env*.local -.vercel -next-env.d.ts diff --git a/apps/docs/.map.ts b/apps/docs/.map.ts deleted file mode 100644 index bc920492..00000000 --- a/apps/docs/.map.ts +++ /dev/null @@ -1,4 +0,0 @@ -/** Auto-generated **/ -declare const map: Record; - -export { map }; diff --git a/apps/docs/README.md b/apps/docs/README.md deleted file mode 100644 index e3ee85e3..00000000 --- a/apps/docs/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Docs - -Dokploy Documentation - -Run development server: - -```bash -npm run dev -# or -pnpm dev -# or -yarn dev -``` - -Open http://localhost:3000 with your browser to see the result. diff --git a/apps/docs/api.json b/apps/docs/api.json deleted file mode 100644 index 07453802..00000000 --- a/apps/docs/api.json +++ /dev/null @@ -1,11721 +0,0 @@ -{ - "openapi": "3.0.3", - "info": { - "title": "Dokploy API", - "description": "Endpoints for dokploy", - "version": "v0.7.3" - }, - "servers": [ - { - "url": "http://localhost:3000/api" - } - ], - "paths": { - "/admin.one": { - "get": { - "operationId": "admin-one", - "tags": ["admin"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/admin.createUserInvitation": { - "post": { - "operationId": "admin-createUserInvitation", - "tags": ["admin"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - } - }, - "required": ["email"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/admin.removeUser": { - "post": { - "operationId": "admin-removeUser", - "tags": ["admin"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "authId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["authId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/admin.getUserByToken": { - "get": { - "operationId": "admin-getUserByToken", - "tags": ["admin"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "token", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/admin.assignPermissions": { - "post": { - "operationId": "admin-assignPermissions", - "tags": ["admin"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "minLength": 1 - }, - "canCreateProjects": { - "type": "boolean" - }, - "canCreateServices": { - "type": "boolean" - }, - "canDeleteProjects": { - "type": "boolean" - }, - "canDeleteServices": { - "type": "boolean" - }, - "accesedProjects": { - "type": "array", - "items": { - "type": "string" - } - }, - "accesedServices": { - "type": "array", - "items": { - "type": "string" - } - }, - "canAccessToTraefikFiles": { - "type": "boolean" - }, - "canAccessToDocker": { - "type": "boolean" - }, - "canAccessToAPI": { - "type": "boolean" - }, - "canAccessToSSHKeys": { - "type": "boolean" - }, - "canAccessToGitProviders": { - "type": "boolean" - } - }, - "required": [ - "userId", - "canCreateProjects", - "canCreateServices", - "canDeleteProjects", - "canDeleteServices", - "accesedProjects", - "accesedServices", - "canAccessToTraefikFiles", - "canAccessToDocker", - "canAccessToAPI", - "canAccessToSSHKeys", - "canAccessToGitProviders" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/docker.getContainers": { - "get": { - "operationId": "docker-getContainers", - "tags": ["docker"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/docker.getConfig": { - "get": { - "operationId": "docker-getConfig", - "tags": ["docker"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "containerId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/docker.getContainersByAppNameMatch": { - "get": { - "operationId": "docker-getContainersByAppNameMatch", - "tags": ["docker"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "appType", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "type": "string", - "enum": ["stack"] - }, - { - "type": "string", - "enum": ["docker-compose"] - } - ] - } - }, - { - "name": "appName", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/docker.getContainersByAppLabel": { - "get": { - "operationId": "docker-getContainersByAppLabel", - "tags": ["docker"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "appName", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.createAdmin": { - "post": { - "operationId": "auth-createAdmin", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "password": { - "type": "string", - "minLength": 8 - } - }, - "required": ["email", "password"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.createUser": { - "post": { - "operationId": "auth-createUser", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "type": "string", - "minLength": 8 - }, - "id": { - "type": "string" - }, - "token": { - "type": "string", - "minLength": 1 - } - }, - "required": ["password", "id", "token"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.login": { - "post": { - "operationId": "auth-login", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "format": "email" - }, - "password": { - "type": "string", - "minLength": 8 - } - }, - "required": ["email", "password"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.get": { - "get": { - "operationId": "auth-get", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.logout": { - "post": { - "operationId": "auth-logout", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.update": { - "post": { - "operationId": "auth-update", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "email": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "rol": { - "type": "string", - "enum": ["admin", "user"] - }, - "image": { - "type": "string" - }, - "secret": { - "type": "string", - "nullable": true - }, - "token": { - "type": "string", - "nullable": true - }, - "is2FAEnabled": { - "type": "boolean" - }, - "createdAt": { - "type": "string" - } - }, - "required": ["email", "password"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.generateToken": { - "post": { - "operationId": "auth-generateToken", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.one": { - "get": { - "operationId": "auth-one", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "id", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.updateByAdmin": { - "post": { - "operationId": "auth-updateByAdmin", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 1 - }, - "email": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "rol": { - "type": "string", - "enum": ["admin", "user"] - }, - "image": { - "type": "string" - }, - "secret": { - "type": "string", - "nullable": true - }, - "token": { - "type": "string", - "nullable": true - }, - "is2FAEnabled": { - "type": "boolean" - }, - "createdAt": { - "type": "string" - } - }, - "required": ["id", "email", "password"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.generate2FASecret": { - "get": { - "operationId": "auth-generate2FASecret", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.verify2FASetup": { - "post": { - "operationId": "auth-verify2FASetup", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pin": { - "type": "string", - "minLength": 6 - }, - "secret": { - "type": "string", - "minLength": 1 - } - }, - "required": ["pin", "secret"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.verifyLogin2FA": { - "post": { - "operationId": "auth-verifyLogin2FA", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pin": { - "type": "string", - "minLength": 6 - }, - "id": { - "type": "string" - } - }, - "required": ["pin", "id"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.disable2FA": { - "post": { - "operationId": "auth-disable2FA", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/auth.verifyToken": { - "post": { - "operationId": "auth-verifyToken", - "tags": ["auth"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/project.create": { - "post": { - "operationId": "project-create", - "tags": ["project"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - } - }, - "required": ["name"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/project.one": { - "get": { - "operationId": "project-one", - "tags": ["project"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "projectId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/project.all": { - "get": { - "operationId": "project-all", - "tags": ["project"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/project.remove": { - "post": { - "operationId": "project-remove", - "tags": ["project"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["projectId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/project.update": { - "post": { - "operationId": "project-update", - "tags": ["project"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "projectId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["name", "projectId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.create": { - "post": { - "operationId": "application-create", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "projectId": { - "type": "string" - } - }, - "required": ["name", "projectId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.one": { - "get": { - "operationId": "application-one", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "applicationId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.reload": { - "post": { - "operationId": "application-reload", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appName": { - "type": "string" - }, - "applicationId": { - "type": "string" - } - }, - "required": ["appName", "applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.delete": { - "post": { - "operationId": "application-delete", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.stop": { - "post": { - "operationId": "application-stop", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.start": { - "post": { - "operationId": "application-start", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.redeploy": { - "post": { - "operationId": "application-redeploy", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.saveEnvironment": { - "post": { - "operationId": "application-saveEnvironment", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - }, - "env": { - "type": "string", - "nullable": true - }, - "buildArgs": { - "type": "string", - "nullable": true - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.saveBuildType": { - "post": { - "operationId": "application-saveBuildType", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - }, - "buildType": { - "type": "string", - "enum": [ - "dockerfile", - "heroku_buildpacks", - "paketo_buildpacks", - "nixpacks", - "static" - ] - }, - "dockerfile": { - "type": "string", - "nullable": true - }, - "dockerContextPath": { - "type": "string", - "nullable": true - }, - "publishDirectory": { - "type": "string", - "nullable": true - } - }, - "required": ["applicationId", "buildType", "dockerContextPath"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.saveGithubProvider": { - "post": { - "operationId": "application-saveGithubProvider", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - }, - "repository": { - "type": "string", - "nullable": true - }, - "branch": { - "type": "string", - "nullable": true - }, - "owner": { - "type": "string", - "nullable": true - }, - "buildPath": { - "type": "string", - "nullable": true - }, - "githubId": { - "type": "string", - "nullable": true - } - }, - "required": ["applicationId", "owner", "githubId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.saveGitlabProvider": { - "post": { - "operationId": "application-saveGitlabProvider", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - }, - "gitlabBranch": { - "type": "string", - "nullable": true - }, - "gitlabBuildPath": { - "type": "string", - "nullable": true - }, - "gitlabOwner": { - "type": "string", - "nullable": true - }, - "gitlabRepository": { - "type": "string", - "nullable": true - }, - "gitlabId": { - "type": "string", - "nullable": true - }, - "gitlabProjectId": { - "type": "number", - "nullable": true - }, - "gitlabPathNamespace": { - "type": "string", - "nullable": true - } - }, - "required": [ - "applicationId", - "gitlabBranch", - "gitlabBuildPath", - "gitlabOwner", - "gitlabRepository", - "gitlabId", - "gitlabProjectId", - "gitlabPathNamespace" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.saveBitbucketProvider": { - "post": { - "operationId": "application-saveBitbucketProvider", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "bitbucketBranch": { - "type": "string", - "nullable": true - }, - "bitbucketBuildPath": { - "type": "string", - "nullable": true - }, - "bitbucketOwner": { - "type": "string", - "nullable": true - }, - "bitbucketRepository": { - "type": "string", - "nullable": true - }, - "bitbucketId": { - "type": "string", - "nullable": true - }, - "applicationId": { - "type": "string" - } - }, - "required": [ - "bitbucketBranch", - "bitbucketBuildPath", - "bitbucketOwner", - "bitbucketRepository", - "bitbucketId", - "applicationId" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.saveDockerProvider": { - "post": { - "operationId": "application-saveDockerProvider", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "dockerImage": { - "type": "string", - "nullable": true - }, - "applicationId": { - "type": "string" - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.saveGitProdiver": { - "post": { - "operationId": "application-saveGitProdiver", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "customGitBranch": { - "type": "string", - "nullable": true - }, - "applicationId": { - "type": "string" - }, - "customGitBuildPath": { - "type": "string", - "nullable": true - }, - "customGitUrl": { - "type": "string", - "nullable": true - }, - "customGitSSHKeyId": { - "type": "string", - "nullable": true - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.markRunning": { - "post": { - "operationId": "application-markRunning", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.update": { - "post": { - "operationId": "application-update", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "env": { - "type": "string", - "nullable": true - }, - "buildArgs": { - "type": "string", - "nullable": true - }, - "memoryReservation": { - "type": "number", - "nullable": true - }, - "memoryLimit": { - "type": "number", - "nullable": true - }, - "cpuReservation": { - "type": "number", - "nullable": true - }, - "cpuLimit": { - "type": "number", - "nullable": true - }, - "title": { - "type": "string", - "nullable": true - }, - "enabled": { - "type": "boolean", - "nullable": true - }, - "subtitle": { - "type": "string", - "nullable": true - }, - "command": { - "type": "string", - "nullable": true - }, - "refreshToken": { - "type": "string", - "nullable": true - }, - "sourceType": { - "type": "string", - "enum": ["github", "docker", "git"] - }, - "repository": { - "type": "string", - "nullable": true - }, - "owner": { - "type": "string", - "nullable": true - }, - "branch": { - "type": "string", - "nullable": true - }, - "buildPath": { - "type": "string", - "nullable": true - }, - "autoDeploy": { - "type": "boolean", - "nullable": true - }, - "gitlabProjectId": { - "type": "number", - "nullable": true - }, - "gitlabRepository": { - "type": "string", - "nullable": true - }, - "gitlabOwner": { - "type": "string", - "nullable": true - }, - "gitlabBranch": { - "type": "string", - "nullable": true - }, - "gitlabBuildPath": { - "type": "string", - "nullable": true - }, - "gitlabPathNamespace": { - "type": "string", - "nullable": true - }, - "bitbucketRepository": { - "type": "string", - "nullable": true - }, - "bitbucketOwner": { - "type": "string", - "nullable": true - }, - "bitbucketBranch": { - "type": "string", - "nullable": true - }, - "bitbucketBuildPath": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "dockerImage": { - "type": "string", - "nullable": true - }, - "customGitUrl": { - "type": "string", - "nullable": true - }, - "customGitBranch": { - "type": "string", - "nullable": true - }, - "customGitBuildPath": { - "type": "string", - "nullable": true - }, - "customGitSSHKeyId": { - "type": "string", - "nullable": true - }, - "dockerfile": { - "type": "string", - "nullable": true - }, - "dockerContextPath": { - "type": "string", - "nullable": true - }, - "dropBuildPath": { - "type": "string", - "nullable": true - }, - "healthCheckSwarm": { - "type": "object", - "properties": { - "Test": { - "type": "array", - "items": { - "type": "string" - } - }, - "Interval": { - "type": "number" - }, - "Timeout": { - "type": "number" - }, - "StartPeriod": { - "type": "number" - }, - "Retries": { - "type": "number" - } - }, - "additionalProperties": false, - "nullable": true - }, - "restartPolicySwarm": { - "type": "object", - "properties": { - "Condition": { - "type": "string" - }, - "Delay": { - "type": "number" - }, - "MaxAttempts": { - "type": "number" - }, - "Window": { - "type": "number" - } - }, - "additionalProperties": false, - "nullable": true - }, - "placementSwarm": { - "type": "object", - "properties": { - "Constraints": { - "type": "array", - "items": { - "type": "string" - } - }, - "Preferences": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Spread": { - "type": "object", - "properties": { - "SpreadDescriptor": { - "type": "string" - } - }, - "required": ["SpreadDescriptor"], - "additionalProperties": false - } - }, - "required": ["Spread"], - "additionalProperties": false - } - }, - "MaxReplicas": { - "type": "number" - }, - "Platforms": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Architecture": { - "type": "string" - }, - "OS": { - "type": "string" - } - }, - "required": ["Architecture", "OS"], - "additionalProperties": false - } - } - }, - "additionalProperties": false, - "nullable": true - }, - "updateConfigSwarm": { - "type": "object", - "properties": { - "Parallelism": { - "type": "number" - }, - "Delay": { - "type": "number" - }, - "FailureAction": { - "type": "string" - }, - "Monitor": { - "type": "number" - }, - "MaxFailureRatio": { - "type": "number" - }, - "Order": { - "type": "string" - } - }, - "required": ["Parallelism", "Order"], - "additionalProperties": false, - "nullable": true - }, - "rollbackConfigSwarm": { - "type": "object", - "properties": { - "Parallelism": { - "type": "number" - }, - "Delay": { - "type": "number" - }, - "FailureAction": { - "type": "string" - }, - "Monitor": { - "type": "number" - }, - "MaxFailureRatio": { - "type": "number" - }, - "Order": { - "type": "string" - } - }, - "required": ["Parallelism", "Order"], - "additionalProperties": false, - "nullable": true - }, - "modeSwarm": { - "type": "object", - "properties": { - "Replicated": { - "type": "object", - "properties": { - "Replicas": { - "type": "number" - } - }, - "additionalProperties": false - }, - "Global": { - "type": "object", - "properties": {}, - "additionalProperties": false - }, - "ReplicatedJob": { - "type": "object", - "properties": { - "MaxConcurrent": { - "type": "number" - }, - "TotalCompletions": { - "type": "number" - } - }, - "additionalProperties": false - }, - "GlobalJob": { - "type": "object", - "properties": {}, - "additionalProperties": false - } - }, - "additionalProperties": false, - "nullable": true - }, - "labelsSwarm": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true - }, - "networkSwarm": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Target": { - "type": "string" - }, - "Aliases": { - "type": "array", - "items": { - "type": "string" - } - }, - "DriverOpts": { - "type": "object", - "properties": {}, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "nullable": true - }, - "replicas": { - "type": "number" - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - }, - "buildType": { - "type": "string", - "enum": [ - "dockerfile", - "heroku_buildpacks", - "paketo_buildpacks", - "nixpacks", - "static" - ] - }, - "publishDirectory": { - "type": "string", - "nullable": true - }, - "createdAt": { - "type": "string" - }, - "registryId": { - "type": "string", - "nullable": true - }, - "projectId": { - "type": "string" - }, - "githubId": { - "type": "string", - "nullable": true - }, - "gitlabId": { - "type": "string", - "nullable": true - }, - "bitbucketId": { - "type": "string", - "nullable": true - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.refreshToken": { - "post": { - "operationId": "application-refreshToken", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.deploy": { - "post": { - "operationId": "application-deploy", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.cleanQueues": { - "post": { - "operationId": "application-cleanQueues", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - }, - "required": ["applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.readTraefikConfig": { - "get": { - "operationId": "application-readTraefikConfig", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "applicationId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.updateTraefikConfig": { - "post": { - "operationId": "application-updateTraefikConfig", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - }, - "traefikConfig": { - "type": "string" - } - }, - "required": ["applicationId", "traefikConfig"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/application.readAppMonitoring": { - "get": { - "operationId": "application-readAppMonitoring", - "tags": ["application"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "appName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.create": { - "post": { - "operationId": "mysql-create", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "dockerImage": { - "type": "string", - "default": "mysql:8" - }, - "projectId": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "databaseName": { - "type": "string", - "minLength": 1 - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - }, - "databaseRootPassword": { - "type": "string" - } - }, - "required": [ - "name", - "appName", - "projectId", - "databaseName", - "databaseUser", - "databasePassword", - "databaseRootPassword" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.one": { - "get": { - "operationId": "mysql-one", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "mysqlId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.start": { - "post": { - "operationId": "mysql-start", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - } - }, - "required": ["mysqlId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.stop": { - "post": { - "operationId": "mysql-stop", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - } - }, - "required": ["mysqlId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.saveExternalPort": { - "post": { - "operationId": "mysql-saveExternalPort", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - }, - "externalPort": { - "type": "number", - "nullable": true - } - }, - "required": ["mysqlId", "externalPort"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.deploy": { - "post": { - "operationId": "mysql-deploy", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - } - }, - "required": ["mysqlId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.changeStatus": { - "post": { - "operationId": "mysql-changeStatus", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - } - }, - "required": ["mysqlId", "applicationStatus"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.reload": { - "post": { - "operationId": "mysql-reload", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - }, - "appName": { - "type": "string", - "minLength": 1 - } - }, - "required": ["mysqlId", "appName"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.remove": { - "post": { - "operationId": "mysql-remove", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - } - }, - "required": ["mysqlId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.saveEnvironment": { - "post": { - "operationId": "mysql-saveEnvironment", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string" - }, - "env": { - "type": "string", - "nullable": true - } - }, - "required": ["mysqlId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mysql.update": { - "post": { - "operationId": "mysql-update", - "tags": ["mysql"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mysqlId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "databaseName": { - "type": "string", - "minLength": 1 - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - }, - "databaseRootPassword": { - "type": "string" - }, - "dockerImage": { - "type": "string", - "default": "mysql:8" - }, - "command": { - "type": "string", - "nullable": true - }, - "env": { - "type": "string", - "nullable": true - }, - "memoryReservation": { - "type": "number", - "nullable": true - }, - "memoryLimit": { - "type": "number", - "nullable": true - }, - "cpuReservation": { - "type": "number", - "nullable": true - }, - "cpuLimit": { - "type": "number", - "nullable": true - }, - "externalPort": { - "type": "number", - "nullable": true - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - }, - "createdAt": { - "type": "string" - }, - "projectId": { - "type": "string" - } - }, - "required": ["mysqlId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.create": { - "post": { - "operationId": "postgres-create", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string" - }, - "databaseName": { - "type": "string", - "minLength": 1 - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - }, - "dockerImage": { - "type": "string", - "default": "postgres:15" - }, - "projectId": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - } - }, - "required": [ - "name", - "appName", - "databaseName", - "databaseUser", - "databasePassword", - "projectId" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.one": { - "get": { - "operationId": "postgres-one", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "postgresId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.start": { - "post": { - "operationId": "postgres-start", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - } - }, - "required": ["postgresId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.stop": { - "post": { - "operationId": "postgres-stop", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - } - }, - "required": ["postgresId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.saveExternalPort": { - "post": { - "operationId": "postgres-saveExternalPort", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - }, - "externalPort": { - "type": "number", - "nullable": true - } - }, - "required": ["postgresId", "externalPort"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.deploy": { - "post": { - "operationId": "postgres-deploy", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - } - }, - "required": ["postgresId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.changeStatus": { - "post": { - "operationId": "postgres-changeStatus", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - } - }, - "required": ["postgresId", "applicationStatus"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.remove": { - "post": { - "operationId": "postgres-remove", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - } - }, - "required": ["postgresId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.saveEnvironment": { - "post": { - "operationId": "postgres-saveEnvironment", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - }, - "env": { - "type": "string", - "nullable": true - } - }, - "required": ["postgresId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.reload": { - "post": { - "operationId": "postgres-reload", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string" - }, - "appName": { - "type": "string" - } - }, - "required": ["postgresId", "appName"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/postgres.update": { - "post": { - "operationId": "postgres-update", - "tags": ["postgres"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "postgresId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string" - }, - "databaseName": { - "type": "string", - "minLength": 1 - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "dockerImage": { - "type": "string", - "default": "postgres:15" - }, - "command": { - "type": "string", - "nullable": true - }, - "env": { - "type": "string", - "nullable": true - }, - "memoryReservation": { - "type": "number", - "nullable": true - }, - "externalPort": { - "type": "number", - "nullable": true - }, - "memoryLimit": { - "type": "number", - "nullable": true - }, - "cpuReservation": { - "type": "number", - "nullable": true - }, - "cpuLimit": { - "type": "number", - "nullable": true - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - }, - "createdAt": { - "type": "string" - }, - "projectId": { - "type": "string" - } - }, - "required": ["postgresId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.create": { - "post": { - "operationId": "redis-create", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - }, - "dockerImage": { - "type": "string", - "default": "redis:8" - }, - "projectId": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - } - }, - "required": [ - "name", - "appName", - "databasePassword", - "projectId" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.one": { - "get": { - "operationId": "redis-one", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "redisId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.start": { - "post": { - "operationId": "redis-start", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - } - }, - "required": ["redisId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.reload": { - "post": { - "operationId": "redis-reload", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - }, - "appName": { - "type": "string", - "minLength": 1 - } - }, - "required": ["redisId", "appName"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.stop": { - "post": { - "operationId": "redis-stop", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - } - }, - "required": ["redisId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.saveExternalPort": { - "post": { - "operationId": "redis-saveExternalPort", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - }, - "externalPort": { - "type": "number", - "nullable": true - } - }, - "required": ["redisId", "externalPort"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.deploy": { - "post": { - "operationId": "redis-deploy", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - } - }, - "required": ["redisId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.changeStatus": { - "post": { - "operationId": "redis-changeStatus", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - } - }, - "required": ["redisId", "applicationStatus"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.remove": { - "post": { - "operationId": "redis-remove", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - } - }, - "required": ["redisId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.saveEnvironment": { - "post": { - "operationId": "redis-saveEnvironment", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string" - }, - "env": { - "type": "string", - "nullable": true - } - }, - "required": ["redisId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redis.update": { - "post": { - "operationId": "redis-update", - "tags": ["redis"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redisId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "databasePassword": { - "type": "string" - }, - "dockerImage": { - "type": "string", - "default": "redis:8" - }, - "command": { - "type": "string", - "nullable": true - }, - "env": { - "type": "string", - "nullable": true - }, - "memoryReservation": { - "type": "number", - "nullable": true - }, - "memoryLimit": { - "type": "number", - "nullable": true - }, - "cpuReservation": { - "type": "number", - "nullable": true - }, - "cpuLimit": { - "type": "number", - "nullable": true - }, - "externalPort": { - "type": "number", - "nullable": true - }, - "createdAt": { - "type": "string" - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - }, - "projectId": { - "type": "string" - } - }, - "required": ["redisId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.create": { - "post": { - "operationId": "mongo-create", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "dockerImage": { - "type": "string", - "default": "mongo:15" - }, - "projectId": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - } - }, - "required": [ - "name", - "appName", - "projectId", - "databaseUser", - "databasePassword" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.one": { - "get": { - "operationId": "mongo-one", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "mongoId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.start": { - "post": { - "operationId": "mongo-start", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - } - }, - "required": ["mongoId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.stop": { - "post": { - "operationId": "mongo-stop", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - } - }, - "required": ["mongoId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.saveExternalPort": { - "post": { - "operationId": "mongo-saveExternalPort", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - }, - "externalPort": { - "type": "number", - "nullable": true - } - }, - "required": ["mongoId", "externalPort"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.deploy": { - "post": { - "operationId": "mongo-deploy", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - } - }, - "required": ["mongoId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.changeStatus": { - "post": { - "operationId": "mongo-changeStatus", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - } - }, - "required": ["mongoId", "applicationStatus"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.reload": { - "post": { - "operationId": "mongo-reload", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - }, - "appName": { - "type": "string", - "minLength": 1 - } - }, - "required": ["mongoId", "appName"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.remove": { - "post": { - "operationId": "mongo-remove", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - } - }, - "required": ["mongoId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.saveEnvironment": { - "post": { - "operationId": "mongo-saveEnvironment", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string" - }, - "env": { - "type": "string", - "nullable": true - } - }, - "required": ["mongoId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mongo.update": { - "post": { - "operationId": "mongo-update", - "tags": ["mongo"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mongoId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - }, - "dockerImage": { - "type": "string", - "default": "mongo:15" - }, - "command": { - "type": "string", - "nullable": true - }, - "env": { - "type": "string", - "nullable": true - }, - "memoryReservation": { - "type": "number", - "nullable": true - }, - "memoryLimit": { - "type": "number", - "nullable": true - }, - "cpuReservation": { - "type": "number", - "nullable": true - }, - "cpuLimit": { - "type": "number", - "nullable": true - }, - "externalPort": { - "type": "number", - "nullable": true - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - }, - "createdAt": { - "type": "string" - }, - "projectId": { - "type": "string" - } - }, - "required": ["mongoId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.create": { - "post": { - "operationId": "mariadb-create", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "dockerImage": { - "type": "string", - "default": "mariadb:6" - }, - "databaseRootPassword": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "databaseName": { - "type": "string", - "minLength": 1 - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - } - }, - "required": [ - "name", - "appName", - "databaseRootPassword", - "projectId", - "databaseName", - "databaseUser", - "databasePassword" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.one": { - "get": { - "operationId": "mariadb-one", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "mariadbId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.start": { - "post": { - "operationId": "mariadb-start", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - } - }, - "required": ["mariadbId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.stop": { - "post": { - "operationId": "mariadb-stop", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - } - }, - "required": ["mariadbId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.saveExternalPort": { - "post": { - "operationId": "mariadb-saveExternalPort", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - }, - "externalPort": { - "type": "number", - "nullable": true - } - }, - "required": ["mariadbId", "externalPort"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.deploy": { - "post": { - "operationId": "mariadb-deploy", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - } - }, - "required": ["mariadbId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.changeStatus": { - "post": { - "operationId": "mariadb-changeStatus", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - } - }, - "required": ["mariadbId", "applicationStatus"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.remove": { - "post": { - "operationId": "mariadb-remove", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - } - }, - "required": ["mariadbId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.saveEnvironment": { - "post": { - "operationId": "mariadb-saveEnvironment", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - }, - "env": { - "type": "string", - "nullable": true - } - }, - "required": ["mariadbId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.reload": { - "post": { - "operationId": "mariadb-reload", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string" - }, - "appName": { - "type": "string", - "minLength": 1 - } - }, - "required": ["mariadbId", "appName"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mariadb.update": { - "post": { - "operationId": "mariadb-update", - "tags": ["mariadb"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mariadbId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "databaseName": { - "type": "string", - "minLength": 1 - }, - "databaseUser": { - "type": "string", - "minLength": 1 - }, - "databasePassword": { - "type": "string" - }, - "databaseRootPassword": { - "type": "string" - }, - "dockerImage": { - "type": "string", - "default": "mariadb:6" - }, - "command": { - "type": "string", - "nullable": true - }, - "env": { - "type": "string", - "nullable": true - }, - "memoryReservation": { - "type": "number", - "nullable": true - }, - "memoryLimit": { - "type": "number", - "nullable": true - }, - "cpuReservation": { - "type": "number", - "nullable": true - }, - "cpuLimit": { - "type": "number", - "nullable": true - }, - "externalPort": { - "type": "number", - "nullable": true - }, - "applicationStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - }, - "createdAt": { - "type": "string" - }, - "projectId": { - "type": "string" - } - }, - "required": ["mariadbId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.create": { - "post": { - "operationId": "compose-create", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "projectId": { - "type": "string" - }, - "composeType": { - "type": "string", - "enum": ["docker-compose", "stack"] - }, - "appName": { - "type": "string" - } - }, - "required": ["name", "projectId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.one": { - "get": { - "operationId": "compose-one", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "composeId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.update": { - "post": { - "operationId": "compose-update", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "appName": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "env": { - "type": "string", - "nullable": true - }, - "composeFile": { - "type": "string" - }, - "refreshToken": { - "type": "string", - "nullable": true - }, - "sourceType": { - "type": "string", - "enum": ["git", "github", "gitlab", "bitbucket", "raw"] - }, - "composeType": { - "type": "string", - "enum": ["docker-compose", "stack"] - }, - "repository": { - "type": "string", - "nullable": true - }, - "owner": { - "type": "string", - "nullable": true - }, - "branch": { - "type": "string", - "nullable": true - }, - "autoDeploy": { - "type": "boolean", - "nullable": true - }, - "gitlabProjectId": { - "type": "number", - "nullable": true - }, - "gitlabRepository": { - "type": "string", - "nullable": true - }, - "gitlabOwner": { - "type": "string", - "nullable": true - }, - "gitlabBranch": { - "type": "string", - "nullable": true - }, - "gitlabPathNamespace": { - "type": "string", - "nullable": true - }, - "bitbucketRepository": { - "type": "string", - "nullable": true - }, - "bitbucketOwner": { - "type": "string", - "nullable": true - }, - "bitbucketBranch": { - "type": "string", - "nullable": true - }, - "customGitUrl": { - "type": "string", - "nullable": true - }, - "customGitBranch": { - "type": "string", - "nullable": true - }, - "customGitSSHKeyId": { - "type": "string", - "nullable": true - }, - "command": { - "type": "string" - }, - "composePath": { - "type": "string", - "minLength": 1 - }, - "composeStatus": { - "type": "string", - "enum": ["idle", "running", "done", "error"] - }, - "projectId": { - "type": "string" - }, - "createdAt": { - "type": "string" - }, - "githubId": { - "type": "string", - "nullable": true - }, - "gitlabId": { - "type": "string", - "nullable": true - }, - "bitbucketId": { - "type": "string", - "nullable": true - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.delete": { - "post": { - "operationId": "compose-delete", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.cleanQueues": { - "post": { - "operationId": "compose-cleanQueues", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.loadServices": { - "get": { - "operationId": "compose-loadServices", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "composeId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - }, - { - "name": "type", - "in": "query", - "required": false, - "schema": { - "anyOf": [ - { - "not": {} - }, - { - "type": "string", - "enum": ["fetch", "cache"] - } - ], - "default": "cache" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.fetchSourceType": { - "post": { - "operationId": "compose-fetchSourceType", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.randomizeCompose": { - "post": { - "operationId": "compose-randomizeCompose", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - }, - "prefix": { - "type": "string" - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.getConvertedCompose": { - "get": { - "operationId": "compose-getConvertedCompose", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "composeId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.deploy": { - "post": { - "operationId": "compose-deploy", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.redeploy": { - "post": { - "operationId": "compose-redeploy", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.stop": { - "post": { - "operationId": "compose-stop", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.getDefaultCommand": { - "get": { - "operationId": "compose-getDefaultCommand", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "composeId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.refreshToken": { - "post": { - "operationId": "compose-refreshToken", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "composeId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["composeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.deployTemplate": { - "post": { - "operationId": "compose-deployTemplate", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string" - }, - "id": { - "type": "string", - "minLength": 1 - } - }, - "required": ["projectId", "id"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.templates": { - "get": { - "operationId": "compose-templates", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/compose.getTags": { - "get": { - "operationId": "compose-getTags", - "tags": ["compose"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/user.all": { - "get": { - "operationId": "user-all", - "tags": ["user"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/user.byAuthId": { - "get": { - "operationId": "user-byAuthId", - "tags": ["user"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "authId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/user.byUserId": { - "get": { - "operationId": "user-byUserId", - "tags": ["user"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "userId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/domain.create": { - "post": { - "operationId": "domain-create", - "tags": ["domain"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "host": { - "type": "string", - "minLength": 1 - }, - "path": { - "type": "string", - "minLength": 1, - "nullable": true - }, - "port": { - "type": "number", - "minimum": 1, - "maximum": 65535, - "nullable": true - }, - "https": { - "type": "boolean" - }, - "applicationId": { - "type": "string", - "nullable": true - }, - "certificateType": { - "type": "string", - "enum": ["letsencrypt", "none"] - }, - "composeId": { - "type": "string", - "nullable": true - }, - "serviceName": { - "type": "string", - "nullable": true - }, - "domainType": { - "type": "string", - "enum": ["compose", "application"], - "nullable": true - } - }, - "required": ["host"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/domain.byApplicationId": { - "get": { - "operationId": "domain-byApplicationId", - "tags": ["domain"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "applicationId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/domain.byComposeId": { - "get": { - "operationId": "domain-byComposeId", - "tags": ["domain"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "composeId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/domain.generateDomain": { - "post": { - "operationId": "domain-generateDomain", - "tags": ["domain"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appName": { - "type": "string", - "minLength": 1 - } - }, - "required": ["appName"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/domain.update": { - "post": { - "operationId": "domain-update", - "tags": ["domain"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "host": { - "type": "string", - "minLength": 1 - }, - "path": { - "type": "string", - "minLength": 1, - "nullable": true - }, - "port": { - "type": "number", - "minimum": 1, - "maximum": 65535, - "nullable": true - }, - "https": { - "type": "boolean" - }, - "certificateType": { - "type": "string", - "enum": ["letsencrypt", "none"] - }, - "serviceName": { - "type": "string", - "nullable": true - }, - "domainType": { - "type": "string", - "enum": ["compose", "application"], - "nullable": true - }, - "domainId": { - "type": "string" - } - }, - "required": ["host", "domainId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/domain.one": { - "get": { - "operationId": "domain-one", - "tags": ["domain"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "domainId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/domain.delete": { - "post": { - "operationId": "domain-delete", - "tags": ["domain"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "domainId": { - "type": "string" - } - }, - "required": ["domainId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/destination.create": { - "post": { - "operationId": "destination-create", - "tags": ["destination"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "accessKey": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "region": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "secretAccessKey": { - "type": "string" - } - }, - "required": [ - "name", - "accessKey", - "bucket", - "region", - "endpoint", - "secretAccessKey" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/destination.testConnection": { - "post": { - "operationId": "destination-testConnection", - "tags": ["destination"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "accessKey": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "region": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "secretAccessKey": { - "type": "string" - } - }, - "required": [ - "name", - "accessKey", - "bucket", - "region", - "endpoint", - "secretAccessKey" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/destination.one": { - "get": { - "operationId": "destination-one", - "tags": ["destination"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "destinationId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/destination.all": { - "get": { - "operationId": "destination-all", - "tags": ["destination"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/destination.remove": { - "post": { - "operationId": "destination-remove", - "tags": ["destination"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "destinationId": { - "type": "string" - } - }, - "required": ["destinationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/destination.update": { - "post": { - "operationId": "destination-update", - "tags": ["destination"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "accessKey": { - "type": "string" - }, - "bucket": { - "type": "string" - }, - "region": { - "type": "string" - }, - "endpoint": { - "type": "string" - }, - "secretAccessKey": { - "type": "string" - }, - "destinationId": { - "type": "string" - } - }, - "required": [ - "name", - "accessKey", - "bucket", - "region", - "endpoint", - "secretAccessKey", - "destinationId" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.create": { - "post": { - "operationId": "backup-create", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "schedule": { - "type": "string" - }, - "enabled": { - "type": "boolean", - "nullable": true - }, - "prefix": { - "type": "string", - "minLength": 1 - }, - "destinationId": { - "type": "string" - }, - "database": { - "type": "string", - "minLength": 1 - }, - "mariadbId": { - "type": "string", - "nullable": true - }, - "mysqlId": { - "type": "string", - "nullable": true - }, - "postgresId": { - "type": "string", - "nullable": true - }, - "mongoId": { - "type": "string", - "nullable": true - }, - "databaseType": { - "type": "string", - "enum": ["postgres", "mariadb", "mysql", "mongo"] - } - }, - "required": [ - "schedule", - "prefix", - "destinationId", - "database", - "databaseType" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.one": { - "get": { - "operationId": "backup-one", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "backupId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.update": { - "post": { - "operationId": "backup-update", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "schedule": { - "type": "string" - }, - "enabled": { - "type": "boolean", - "nullable": true - }, - "prefix": { - "type": "string", - "minLength": 1 - }, - "backupId": { - "type": "string" - }, - "destinationId": { - "type": "string" - }, - "database": { - "type": "string", - "minLength": 1 - } - }, - "required": [ - "schedule", - "prefix", - "backupId", - "destinationId", - "database" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.remove": { - "post": { - "operationId": "backup-remove", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "backupId": { - "type": "string" - } - }, - "required": ["backupId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.manualBackupPostgres": { - "post": { - "operationId": "backup-manualBackupPostgres", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "backupId": { - "type": "string" - } - }, - "required": ["backupId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.manualBackupMySql": { - "post": { - "operationId": "backup-manualBackupMySql", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "backupId": { - "type": "string" - } - }, - "required": ["backupId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.manualBackupMariadb": { - "post": { - "operationId": "backup-manualBackupMariadb", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "backupId": { - "type": "string" - } - }, - "required": ["backupId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/backup.manualBackupMongo": { - "post": { - "operationId": "backup-manualBackupMongo", - "tags": ["backup"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "backupId": { - "type": "string" - } - }, - "required": ["backupId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/deployment.all": { - "get": { - "operationId": "deployment-all", - "tags": ["deployment"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "applicationId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/deployment.allByCompose": { - "get": { - "operationId": "deployment-allByCompose", - "tags": ["deployment"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "composeId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mounts.create": { - "post": { - "operationId": "mounts-create", - "tags": ["mounts"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": ["bind", "volume", "file"] - }, - "hostPath": { - "type": "string", - "nullable": true - }, - "volumeName": { - "type": "string", - "nullable": true - }, - "content": { - "type": "string", - "nullable": true - }, - "mountPath": { - "type": "string", - "minLength": 1 - }, - "serviceType": { - "type": "string", - "enum": [ - "application", - "postgres", - "mysql", - "mariadb", - "mongo", - "redis", - "compose" - ], - "default": "application" - }, - "filePath": { - "type": "string", - "nullable": true - }, - "serviceId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["type", "mountPath", "serviceId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mounts.remove": { - "post": { - "operationId": "mounts-remove", - "tags": ["mounts"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mountId": { - "type": "string" - } - }, - "required": ["mountId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mounts.one": { - "get": { - "operationId": "mounts-one", - "tags": ["mounts"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "mountId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/mounts.update": { - "post": { - "operationId": "mounts-update", - "tags": ["mounts"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "mountId": { - "type": "string", - "minLength": 1 - }, - "type": { - "type": "string", - "enum": ["bind", "volume", "file"] - }, - "hostPath": { - "type": "string", - "nullable": true - }, - "volumeName": { - "type": "string", - "nullable": true - }, - "filePath": { - "type": "string", - "nullable": true - }, - "content": { - "type": "string", - "nullable": true - }, - "serviceType": { - "type": "string", - "enum": [ - "application", - "postgres", - "mysql", - "mariadb", - "mongo", - "redis", - "compose" - ], - "default": "application" - }, - "mountPath": { - "type": "string", - "minLength": 1 - }, - "applicationId": { - "type": "string", - "nullable": true - }, - "postgresId": { - "type": "string", - "nullable": true - }, - "mariadbId": { - "type": "string", - "nullable": true - }, - "mongoId": { - "type": "string", - "nullable": true - }, - "mysqlId": { - "type": "string", - "nullable": true - }, - "redisId": { - "type": "string", - "nullable": true - }, - "composeId": { - "type": "string", - "nullable": true - } - }, - "required": ["mountId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/certificates.create": { - "post": { - "operationId": "certificates-create", - "tags": ["certificates"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "certificateId": { - "type": "string" - }, - "name": { - "type": "string", - "minLength": 1 - }, - "certificateData": { - "type": "string", - "minLength": 1 - }, - "privateKey": { - "type": "string", - "minLength": 1 - }, - "certificatePath": { - "type": "string" - }, - "autoRenew": { - "type": "boolean", - "nullable": true - } - }, - "required": ["name", "certificateData", "privateKey"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/certificates.one": { - "get": { - "operationId": "certificates-one", - "tags": ["certificates"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "certificateId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/certificates.remove": { - "post": { - "operationId": "certificates-remove", - "tags": ["certificates"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "certificateId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["certificateId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/certificates.all": { - "get": { - "operationId": "certificates-all", - "tags": ["certificates"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.reloadServer": { - "post": { - "operationId": "settings-reloadServer", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.reloadTraefik": { - "post": { - "operationId": "settings-reloadTraefik", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.toggleDashboard": { - "post": { - "operationId": "settings-toggleDashboard", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "enableDashboard": { - "type": "boolean" - } - }, - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanUnusedImages": { - "post": { - "operationId": "settings-cleanUnusedImages", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanUnusedVolumes": { - "post": { - "operationId": "settings-cleanUnusedVolumes", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanStoppedContainers": { - "post": { - "operationId": "settings-cleanStoppedContainers", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanDockerBuilder": { - "post": { - "operationId": "settings-cleanDockerBuilder", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanDockerPrune": { - "post": { - "operationId": "settings-cleanDockerPrune", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanAll": { - "post": { - "operationId": "settings-cleanAll", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanMonitoring": { - "post": { - "operationId": "settings-cleanMonitoring", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.saveSSHPrivateKey": { - "post": { - "operationId": "settings-saveSSHPrivateKey", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sshPrivateKey": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.assignDomainServer": { - "post": { - "operationId": "settings-assignDomainServer", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "letsEncryptEmail": { - "type": "string", - "nullable": true - }, - "host": { - "type": "string", - "nullable": true - }, - "certificateType": { - "type": "string", - "enum": ["letsencrypt", "none"], - "default": "none" - } - }, - "required": ["letsEncryptEmail", "host"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.cleanSSHPrivateKey": { - "post": { - "operationId": "settings-cleanSSHPrivateKey", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.updateDockerCleanup": { - "post": { - "operationId": "settings-updateDockerCleanup", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "enableDockerCleanup": { - "type": "boolean" - } - }, - "required": ["enableDockerCleanup"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.readTraefikConfig": { - "get": { - "operationId": "settings-readTraefikConfig", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.updateTraefikConfig": { - "post": { - "operationId": "settings-updateTraefikConfig", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "traefikConfig": { - "type": "string", - "minLength": 1 - } - }, - "required": ["traefikConfig"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.readWebServerTraefikConfig": { - "get": { - "operationId": "settings-readWebServerTraefikConfig", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.updateWebServerTraefikConfig": { - "post": { - "operationId": "settings-updateWebServerTraefikConfig", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "traefikConfig": { - "type": "string", - "minLength": 1 - } - }, - "required": ["traefikConfig"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.readMiddlewareTraefikConfig": { - "get": { - "operationId": "settings-readMiddlewareTraefikConfig", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.updateMiddlewareTraefikConfig": { - "post": { - "operationId": "settings-updateMiddlewareTraefikConfig", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "traefikConfig": { - "type": "string", - "minLength": 1 - } - }, - "required": ["traefikConfig"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.checkAndUpdateImage": { - "post": { - "operationId": "settings-checkAndUpdateImage", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.updateServer": { - "post": { - "operationId": "settings-updateServer", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.getDokployVersion": { - "get": { - "operationId": "settings-getDokployVersion", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.readDirectories": { - "get": { - "operationId": "settings-readDirectories", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.updateTraefikFile": { - "post": { - "operationId": "settings-updateTraefikFile", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "path": { - "type": "string", - "minLength": 1 - }, - "traefikConfig": { - "type": "string", - "minLength": 1 - } - }, - "required": ["path", "traefikConfig"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.readTraefikFile": { - "get": { - "operationId": "settings-readTraefikFile", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "path", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.getIp": { - "get": { - "operationId": "settings-getIp", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.getOpenApiDocument": { - "get": { - "operationId": "settings-getOpenApiDocument", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.readTraefikEnv": { - "get": { - "operationId": "settings-readTraefikEnv", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.writeTraefikEnv": { - "post": { - "operationId": "settings-writeTraefikEnv", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "env": { - "type": "string" - } - }, - "required": ["env"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/settings.haveTraefikDashboardPortEnabled": { - "get": { - "operationId": "settings-haveTraefikDashboardPortEnabled", - "tags": ["settings"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/security.create": { - "post": { - "operationId": "security-create", - "tags": ["security"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - } - }, - "required": ["applicationId", "username", "password"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/security.one": { - "get": { - "operationId": "security-one", - "tags": ["security"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "securityId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/security.delete": { - "post": { - "operationId": "security-delete", - "tags": ["security"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "securityId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["securityId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/security.update": { - "post": { - "operationId": "security-update", - "tags": ["security"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "securityId": { - "type": "string", - "minLength": 1 - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - } - }, - "required": ["securityId", "username", "password"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redirects.create": { - "post": { - "operationId": "redirects-create", - "tags": ["redirects"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "regex": { - "type": "string", - "minLength": 1 - }, - "replacement": { - "type": "string", - "minLength": 1 - }, - "permanent": { - "type": "boolean" - }, - "applicationId": { - "type": "string" - } - }, - "required": [ - "regex", - "replacement", - "permanent", - "applicationId" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redirects.one": { - "get": { - "operationId": "redirects-one", - "tags": ["redirects"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "redirectId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redirects.delete": { - "post": { - "operationId": "redirects-delete", - "tags": ["redirects"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["redirectId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/redirects.update": { - "post": { - "operationId": "redirects-update", - "tags": ["redirects"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectId": { - "type": "string", - "minLength": 1 - }, - "regex": { - "type": "string", - "minLength": 1 - }, - "replacement": { - "type": "string", - "minLength": 1 - }, - "permanent": { - "type": "boolean" - } - }, - "required": ["redirectId", "regex", "replacement", "permanent"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/port.create": { - "post": { - "operationId": "port-create", - "tags": ["port"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "publishedPort": { - "type": "number" - }, - "targetPort": { - "type": "number" - }, - "protocol": { - "type": "string", - "enum": ["tcp", "udp"], - "default": "tcp" - }, - "applicationId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["publishedPort", "targetPort", "applicationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/port.one": { - "get": { - "operationId": "port-one", - "tags": ["port"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "portId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/port.delete": { - "post": { - "operationId": "port-delete", - "tags": ["port"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "portId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["portId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/port.update": { - "post": { - "operationId": "port-update", - "tags": ["port"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "portId": { - "type": "string", - "minLength": 1 - }, - "publishedPort": { - "type": "number" - }, - "targetPort": { - "type": "number" - }, - "protocol": { - "type": "string", - "enum": ["tcp", "udp"], - "default": "tcp" - } - }, - "required": ["portId", "publishedPort", "targetPort"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/registry.create": { - "post": { - "operationId": "registry-create", - "tags": ["registry"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "registryName": { - "type": "string", - "minLength": 1 - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - }, - "registryUrl": { - "type": "string" - }, - "registryType": { - "type": "string", - "enum": ["selfHosted", "cloud"] - }, - "imagePrefix": { - "type": "string", - "nullable": true - } - }, - "required": [ - "registryName", - "username", - "password", - "registryUrl", - "registryType", - "imagePrefix" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/registry.remove": { - "post": { - "operationId": "registry-remove", - "tags": ["registry"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "registryId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["registryId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/registry.update": { - "post": { - "operationId": "registry-update", - "tags": ["registry"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "registryId": { - "type": "string", - "minLength": 1 - }, - "registryName": { - "type": "string", - "minLength": 1 - }, - "imagePrefix": { - "type": "string", - "nullable": true - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - }, - "registryUrl": { - "type": "string", - "minLength": 1 - }, - "createdAt": { - "type": "string" - }, - "registryType": { - "type": "string", - "enum": ["selfHosted", "cloud"] - }, - "adminId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["registryId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/registry.all": { - "get": { - "operationId": "registry-all", - "tags": ["registry"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/registry.one": { - "get": { - "operationId": "registry-one", - "tags": ["registry"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "registryId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/registry.testRegistry": { - "post": { - "operationId": "registry-testRegistry", - "tags": ["registry"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "registryName": { - "type": "string", - "minLength": 1 - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - }, - "registryUrl": { - "type": "string" - }, - "registryType": { - "type": "string", - "enum": ["selfHosted", "cloud"] - }, - "imagePrefix": { - "type": "string", - "nullable": true - } - }, - "required": [ - "registryName", - "username", - "password", - "registryUrl", - "registryType" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/registry.enableSelfHostedRegistry": { - "post": { - "operationId": "registry-enableSelfHostedRegistry", - "tags": ["registry"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "registryUrl": { - "type": "string", - "minLength": 1 - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - } - }, - "required": ["registryUrl", "username", "password"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/cluster.getNodes": { - "get": { - "operationId": "cluster-getNodes", - "tags": ["cluster"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/cluster.removeWorker": { - "post": { - "operationId": "cluster-removeWorker", - "tags": ["cluster"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "nodeId": { - "type": "string" - } - }, - "required": ["nodeId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/cluster.addWorker": { - "get": { - "operationId": "cluster-addWorker", - "tags": ["cluster"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/cluster.addManager": { - "get": { - "operationId": "cluster-addManager", - "tags": ["cluster"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.createSlack": { - "post": { - "operationId": "notification-createSlack", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "webhookUrl": { - "type": "string", - "minLength": 1 - }, - "channel": { - "type": "string" - } - }, - "required": [ - "appBuildError", - "databaseBackup", - "dokployRestart", - "name", - "appDeploy", - "dockerCleanup", - "webhookUrl", - "channel" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.updateSlack": { - "post": { - "operationId": "notification-updateSlack", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "webhookUrl": { - "type": "string", - "minLength": 1 - }, - "channel": { - "type": "string" - }, - "notificationId": { - "type": "string", - "minLength": 1 - }, - "slackId": { - "type": "string" - } - }, - "required": ["notificationId", "slackId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.testSlackConnection": { - "post": { - "operationId": "notification-testSlackConnection", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "webhookUrl": { - "type": "string", - "minLength": 1 - }, - "channel": { - "type": "string" - } - }, - "required": ["webhookUrl", "channel"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.createTelegram": { - "post": { - "operationId": "notification-createTelegram", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "botToken": { - "type": "string", - "minLength": 1 - }, - "chatId": { - "type": "string", - "minLength": 1 - } - }, - "required": [ - "appBuildError", - "databaseBackup", - "dokployRestart", - "name", - "appDeploy", - "dockerCleanup", - "botToken", - "chatId" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.updateTelegram": { - "post": { - "operationId": "notification-updateTelegram", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "botToken": { - "type": "string", - "minLength": 1 - }, - "chatId": { - "type": "string", - "minLength": 1 - }, - "notificationId": { - "type": "string", - "minLength": 1 - }, - "telegramId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["notificationId", "telegramId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.testTelegramConnection": { - "post": { - "operationId": "notification-testTelegramConnection", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "botToken": { - "type": "string", - "minLength": 1 - }, - "chatId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["botToken", "chatId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.createDiscord": { - "post": { - "operationId": "notification-createDiscord", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "webhookUrl": { - "type": "string", - "minLength": 1 - } - }, - "required": [ - "appBuildError", - "databaseBackup", - "dokployRestart", - "name", - "appDeploy", - "dockerCleanup", - "webhookUrl" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.updateDiscord": { - "post": { - "operationId": "notification-updateDiscord", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "webhookUrl": { - "type": "string", - "minLength": 1 - }, - "notificationId": { - "type": "string", - "minLength": 1 - }, - "discordId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["notificationId", "discordId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.testDiscordConnection": { - "post": { - "operationId": "notification-testDiscordConnection", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "webhookUrl": { - "type": "string", - "minLength": 1 - } - }, - "required": ["webhookUrl"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.createEmail": { - "post": { - "operationId": "notification-createEmail", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "smtpServer": { - "type": "string", - "minLength": 1 - }, - "smtpPort": { - "type": "number", - "minimum": 1 - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - }, - "fromAddress": { - "type": "string", - "minLength": 1 - }, - "toAddresses": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - } - }, - "required": [ - "appBuildError", - "databaseBackup", - "dokployRestart", - "name", - "appDeploy", - "dockerCleanup", - "smtpServer", - "smtpPort", - "username", - "password", - "fromAddress", - "toAddresses" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.updateEmail": { - "post": { - "operationId": "notification-updateEmail", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "appBuildError": { - "type": "boolean" - }, - "databaseBackup": { - "type": "boolean" - }, - "dokployRestart": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "appDeploy": { - "type": "boolean" - }, - "dockerCleanup": { - "type": "boolean" - }, - "smtpServer": { - "type": "string", - "minLength": 1 - }, - "smtpPort": { - "type": "number", - "minimum": 1 - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - }, - "fromAddress": { - "type": "string", - "minLength": 1 - }, - "toAddresses": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - }, - "notificationId": { - "type": "string", - "minLength": 1 - }, - "emailId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["notificationId", "emailId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.testEmailConnection": { - "post": { - "operationId": "notification-testEmailConnection", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "smtpServer": { - "type": "string", - "minLength": 1 - }, - "smtpPort": { - "type": "number", - "minimum": 1 - }, - "username": { - "type": "string", - "minLength": 1 - }, - "password": { - "type": "string", - "minLength": 1 - }, - "toAddresses": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - }, - "fromAddress": { - "type": "string", - "minLength": 1 - } - }, - "required": [ - "smtpServer", - "smtpPort", - "username", - "password", - "toAddresses", - "fromAddress" - ], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.remove": { - "post": { - "operationId": "notification-remove", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "notificationId": { - "type": "string" - } - }, - "required": ["notificationId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.one": { - "get": { - "operationId": "notification-one", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "notificationId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/notification.all": { - "get": { - "operationId": "notification-all", - "tags": ["notification"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/sshKey.create": { - "post": { - "operationId": "sshKey-create", - "tags": ["sshKey"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "publicKey": { - "type": "string" - }, - "privateKey": { - "type": "string" - } - }, - "required": ["name", "publicKey", "privateKey"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/sshKey.remove": { - "post": { - "operationId": "sshKey-remove", - "tags": ["sshKey"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "sshKeyId": { - "type": "string" - } - }, - "required": ["sshKeyId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/sshKey.one": { - "get": { - "operationId": "sshKey-one", - "tags": ["sshKey"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "sshKeyId", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/sshKey.all": { - "get": { - "operationId": "sshKey-all", - "tags": ["sshKey"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/sshKey.generate": { - "post": { - "operationId": "sshKey-generate", - "tags": ["sshKey"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": ["rsa", "ed25519"] - } - }, - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/sshKey.update": { - "post": { - "operationId": "sshKey-update", - "tags": ["sshKey"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "minLength": 1 - }, - "description": { - "type": "string", - "nullable": true - }, - "lastUsedAt": { - "type": "string", - "nullable": true - }, - "sshKeyId": { - "type": "string" - } - }, - "required": ["sshKeyId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitProvider.getAll": { - "get": { - "operationId": "gitProvider-getAll", - "tags": ["gitProvider"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitProvider.remove": { - "post": { - "operationId": "gitProvider-remove", - "tags": ["gitProvider"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "gitProviderId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["gitProviderId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/bitbucket.create": { - "post": { - "operationId": "bitbucket-create", - "tags": ["bitbucket"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "bitbucketId": { - "type": "string" - }, - "bitbucketUsername": { - "type": "string" - }, - "appPassword": { - "type": "string" - }, - "bitbucketWorkspaceName": { - "type": "string" - }, - "gitProviderId": { - "type": "string" - }, - "authId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - } - }, - "required": ["authId", "name"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/bitbucket.one": { - "get": { - "operationId": "bitbucket-one", - "tags": ["bitbucket"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "bitbucketId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/bitbucket.bitbucketProviders": { - "get": { - "operationId": "bitbucket-bitbucketProviders", - "tags": ["bitbucket"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/bitbucket.getBitbucketRepositories": { - "get": { - "operationId": "bitbucket-getBitbucketRepositories", - "tags": ["bitbucket"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "bitbucketId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/bitbucket.getBitbucketBranches": { - "get": { - "operationId": "bitbucket-getBitbucketBranches", - "tags": ["bitbucket"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "owner", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "bitbucketId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/bitbucket.testConnection": { - "post": { - "operationId": "bitbucket-testConnection", - "tags": ["bitbucket"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "bitbucketId": { - "type": "string", - "minLength": 1 - }, - "bitbucketUsername": { - "type": "string" - }, - "workspaceName": { - "type": "string" - } - }, - "required": ["bitbucketId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/bitbucket.update": { - "post": { - "operationId": "bitbucket-update", - "tags": ["bitbucket"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "bitbucketId": { - "type": "string", - "minLength": 1 - }, - "bitbucketUsername": { - "type": "string" - }, - "appPassword": { - "type": "string", - "nullable": true - }, - "bitbucketWorkspaceName": { - "type": "string" - }, - "gitProviderId": { - "type": "string" - }, - "name": { - "type": "string", - "minLength": 1 - } - }, - "required": ["bitbucketId", "gitProviderId", "name"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitlab.create": { - "post": { - "operationId": "gitlab-create", - "tags": ["gitlab"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "gitlabId": { - "type": "string" - }, - "applicationId": { - "type": "string" - }, - "redirectUri": { - "type": "string" - }, - "secret": { - "type": "string" - }, - "accessToken": { - "type": "string", - "nullable": true - }, - "refreshToken": { - "type": "string", - "nullable": true - }, - "groupName": { - "type": "string" - }, - "expiresAt": { - "type": "number", - "nullable": true - }, - "gitProviderId": { - "type": "string" - }, - "authId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - } - }, - "required": ["authId", "name"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitlab.one": { - "get": { - "operationId": "gitlab-one", - "tags": ["gitlab"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "gitlabId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitlab.gitlabProviders": { - "get": { - "operationId": "gitlab-gitlabProviders", - "tags": ["gitlab"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitlab.getGitlabRepositories": { - "get": { - "operationId": "gitlab-getGitlabRepositories", - "tags": ["gitlab"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "gitlabId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitlab.getGitlabBranches": { - "get": { - "operationId": "gitlab-getGitlabBranches", - "tags": ["gitlab"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "id", - "in": "query", - "required": false, - "schema": { - "type": "number" - } - }, - { - "name": "owner", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "gitlabId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitlab.testConnection": { - "post": { - "operationId": "gitlab-testConnection", - "tags": ["gitlab"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "gitlabId": { - "type": "string" - }, - "groupName": { - "type": "string" - } - }, - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/gitlab.update": { - "post": { - "operationId": "gitlab-update", - "tags": ["gitlab"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "gitlabId": { - "type": "string", - "minLength": 1 - }, - "applicationId": { - "type": "string" - }, - "redirectUri": { - "type": "string" - }, - "secret": { - "type": "string" - }, - "accessToken": { - "type": "string", - "nullable": true - }, - "refreshToken": { - "type": "string", - "nullable": true - }, - "groupName": { - "type": "string" - }, - "expiresAt": { - "type": "number", - "nullable": true - }, - "gitProviderId": { - "type": "string" - }, - "name": { - "type": "string", - "minLength": 1 - } - }, - "required": ["gitlabId", "gitProviderId", "name"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/github.one": { - "get": { - "operationId": "github-one", - "tags": ["github"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "githubId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/github.getGithubRepositories": { - "get": { - "operationId": "github-getGithubRepositories", - "tags": ["github"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "githubId", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/github.getGithubBranches": { - "get": { - "operationId": "github-getGithubBranches", - "tags": ["github"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [ - { - "name": "repo", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - }, - { - "name": "owner", - "in": "query", - "required": true, - "schema": { - "type": "string", - "minLength": 1 - } - }, - { - "name": "githubId", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/github.githubProviders": { - "get": { - "operationId": "github-githubProviders", - "tags": ["github"], - "security": [ - { - "Authorization": [] - } - ], - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/github.testConnection": { - "post": { - "operationId": "github-testConnection", - "tags": ["github"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "githubId": { - "type": "string", - "minLength": 1 - } - }, - "required": ["githubId"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - }, - "/github.update": { - "post": { - "operationId": "github-update", - "tags": ["github"], - "security": [ - { - "Authorization": [] - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "githubId": { - "type": "string", - "minLength": 1 - }, - "githubAppName": { - "type": "string", - "nullable": true - }, - "githubAppId": { - "type": "number", - "nullable": true - }, - "githubClientId": { - "type": "string", - "nullable": true - }, - "githubClientSecret": { - "type": "string", - "nullable": true - }, - "githubInstallationId": { - "type": "string", - "nullable": true - }, - "githubPrivateKey": { - "type": "string", - "nullable": true - }, - "githubWebhookSecret": { - "type": "string", - "nullable": true - }, - "gitProviderId": { - "type": "string", - "minLength": 1 - }, - "name": { - "type": "string", - "minLength": 1 - } - }, - "required": ["githubId", "gitProviderId", "name"], - "additionalProperties": false - } - } - } - }, - "parameters": [], - "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": {} - } - }, - "default": { - "$ref": "#/components/responses/error" - } - } - } - } - }, - "components": { - "securitySchemes": { - "Authorization": { - "type": "http", - "scheme": "bearer" - } - }, - "responses": { - "error": { - "description": "Error response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "code": { - "type": "string" - }, - "issues": { - "type": "array", - "items": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - }, - "required": ["message"], - "additionalProperties": false - } - } - }, - "required": ["message", "code"], - "additionalProperties": false - } - } - } - } - } - }, - "tags": [ - { - "name": "admin" - }, - { - "name": "docker" - }, - { - "name": "compose" - }, - { - "name": "registry" - }, - { - "name": "cluster" - }, - { - "name": "user" - }, - { - "name": "domain" - }, - { - "name": "destination" - }, - { - "name": "backup" - }, - { - "name": "deployment" - }, - { - "name": "mounts" - }, - { - "name": "certificates" - }, - { - "name": "settings" - }, - { - "name": "security" - }, - { - "name": "redirects" - }, - { - "name": "port" - }, - { - "name": "project" - }, - { - "name": "application" - }, - { - "name": "mysql" - }, - { - "name": "postgres" - }, - { - "name": "redis" - }, - { - "name": "mongo" - }, - { - "name": "mariadb" - }, - { - "name": "sshRouter" - }, - { - "name": "gitProvider" - }, - { - "name": "bitbucket" - }, - { - "name": "github" - }, - { - "name": "gitlab" - } - ], - "externalDocs": { - "url": "http://localhost:3000/api/settings.getOpenApiDocument" - } -} diff --git a/apps/docs/app/[lang]/[[...slug]]/page.tsx b/apps/docs/app/[lang]/[[...slug]]/page.tsx deleted file mode 100644 index 8307d655..00000000 --- a/apps/docs/app/[lang]/[[...slug]]/page.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { getLanguages, getPage } from "@/app/source"; -import { url, baseUrl } from "@/utils/metadata"; -import { DocsBody, DocsPage } from "fumadocs-ui/page"; -import type { Metadata } from "next"; -import { notFound, permanentRedirect } from "next/navigation"; - -export default async function Page({ - params, -}: { - params: { lang: string; slug?: string[] }; -}) { - const page = getPage(params.slug, params.lang); - - if (page == null) { - permanentRedirect("/docs/core/get-started/introduction"); - } - - const MDX = page.data.exports.default; - - return ( - - -

{page.data.title}

- -
-
- ); -} - -export async function generateStaticParams() { - return getLanguages().flatMap(({ language, pages }) => - pages.map((page) => ({ - lang: language, - slug: page.slugs, - })), - ); -} - -export function generateMetadata({ - params, -}: { - params: { lang: string; slug?: string[] }; -}) { - const page = getPage(params.slug, params.lang); - if (page == null) { - permanentRedirect("/docs/core/get-started/introduction"); - } - return { - title: page.data.title, - - description: page.data.description, - robots: "index,follow", - alternates: { - canonical: new URL(`${baseUrl}${page.url}`).toString(), - languages: { - zh: `${baseUrl}/cn${page.url.replace("/cn", "")}`, - en: `${baseUrl}/en${page.url.replace("/en", "")}`, - }, - }, - openGraph: { - title: page.data.title, - description: page.data.description, - url: new URL(`${baseUrl}`).toString(), - images: [ - { - url: new URL( - `${baseUrl}/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.7cfd81d9.png&w=828&q=75`, - ).toString(), - width: 1200, - height: 630, - alt: page.data.title, - }, - ], - }, - twitter: { - card: "summary_large_image", - creator: "@getdokploy", - title: page.data.title, - description: page.data.description, - images: [ - { - url: new URL( - `${baseUrl}/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo.7cfd81d9.png&w=828&q=75`, - ).toString(), - width: 1200, - height: 630, - alt: page.data.title, - }, - ], - }, - applicationName: "Dokploy Docs", - keywords: [ - "dokploy", - "vps", - "open source", - "cloud", - "self hosting", - "free", - ], - icons: { - icon: "/icon.svg", - }, - } satisfies Metadata; -} diff --git a/apps/docs/app/[lang]/layout.tsx b/apps/docs/app/[lang]/layout.tsx deleted file mode 100644 index aa0d2c63..00000000 --- a/apps/docs/app/[lang]/layout.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import { RootToggle } from "fumadocs-ui/components/layout/root-toggle"; -import { I18nProvider } from "fumadocs-ui/i18n"; -import { DocsLayout } from "fumadocs-ui/layout"; -import { RootProvider } from "fumadocs-ui/provider"; -import { Inter } from "next/font/google"; -import type { ReactNode } from "react"; -import { baseOptions } from "../layout.config"; -import { pageTree } from "../source"; -import "../global.css"; -import GoogleAnalytics from "@/components/analytics/google"; -import { - LibraryIcon, - type LucideIcon, - PlugZapIcon, - TerminalIcon, -} from "lucide-react"; -const inter = Inter({ - subsets: ["latin"], -}); - -interface Mode { - param: string; - name: string; - package: string; - description: string; - icon: LucideIcon; -} - -const modes: Mode[] = [ - { - param: "core/get-started/introduction", - name: "Core", - package: "Dokploy", - description: "The core", - icon: LibraryIcon, - }, - { - param: "cli", - name: "CLI", - package: "fumadocs-ui", - description: "Interactive CLI", - icon: TerminalIcon, - }, - { - param: "api", - name: "API", - package: "fumadocs-mdx", - description: "API Documentation", - icon: PlugZapIcon, - }, -]; - -export default function Layout({ - params, - children, -}: { - params: { lang: string }; - children: ReactNode; -}) { - return ( - - - - - - { - return { - url: `/${params.lang}/docs/${mode.param}`, - icon: ( - - ), - title: mode.name, - description: mode.description, - }; - })} - /> - ), - }} - {...baseOptions} - > - {children} - - - - - - ); -} diff --git a/apps/docs/app/api/search/route.ts b/apps/docs/app/api/search/route.ts deleted file mode 100644 index e0785850..00000000 --- a/apps/docs/app/api/search/route.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { getPages } from "@/app/source"; -import { createI18nSearchAPI } from "fumadocs-core/search/server"; - -import { languages } from "@/i18n"; - -export const { GET } = createI18nSearchAPI("advanced", { - indexes: languages.map((lang) => { - return { - language: lang, - indexes: getPages(lang).map((page) => ({ - id: page.url, - url: page.url, - title: page.data.title, - structuredData: page.data.exports.structuredData, - })), - }; - }), -}); diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css deleted file mode 100644 index bdb514ed..00000000 --- a/apps/docs/app/global.css +++ /dev/null @@ -1,27 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -.api { - --primary: var(--api-color); - } - - .core { - --primary: var(--core-color); - } - - .cli { - --primary: var(--cli-color); - } - - :root { - --core-color: 250 80% 54%; - --cli-color: 0 0% 9%; - --api-color: 220deg 91% 54%; - } - - .dark { - --headless-color: 250 100% 80%; - --cli-color: 0 0% 100%; - --api-color: 217deg 92% 76%; - } \ No newline at end of file diff --git a/apps/docs/app/icon.svg b/apps/docs/app/icon.svg deleted file mode 100644 index 3a8930d5..00000000 --- a/apps/docs/app/icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx deleted file mode 100644 index 9d69e87a..00000000 --- a/apps/docs/app/layout.config.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import type { BaseLayoutProps } from "fumadocs-ui/layout"; -import { GlobeIcon, HeartIcon } from "lucide-react"; - -export const Logo = () => { - return ( - - - - - - - - ); -}; - -export const baseOptions: BaseLayoutProps = { - githubUrl: "https://github.com/dokploy/dokploy", - nav: { - url: "/get-started/introduction", - title: ( - <> - - Dokploy - - ), - }, - links: [ - { - text: "Website", - url: "https://dokploy.com", - active: "nested-url", - icon: , - }, - { - text: "Discord", - url: "https://discord.com/invite/2tBnJ3jDJc", - active: "nested-url", - icon: ( - <> - - - - - ), - }, - { - text: "Support", - url: "https://opencollective.com/dokploy", - active: "nested-url", - icon: ( - <> - - - ), - }, - ], -}; diff --git a/apps/docs/app/robots.ts b/apps/docs/app/robots.ts deleted file mode 100644 index 3b007046..00000000 --- a/apps/docs/app/robots.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { MetadataRoute } from "next"; - -export default function robots(): MetadataRoute.Robots { - return { - rules: { - userAgent: "*", - allow: "/", - }, - sitemap: "https://docs.dokploy.com/sitemap.xml", - }; -} diff --git a/apps/docs/app/sitemap.ts b/apps/docs/app/sitemap.ts deleted file mode 100644 index 1451430d..00000000 --- a/apps/docs/app/sitemap.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { url } from "@/utils/metadata"; -import type { MetadataRoute } from "next"; -import { getPages } from "./source"; - -export default async function sitemap(): Promise { - return [ - ...getPages().map((page) => { - return { - url: url(`/en${page.url}`), - lastModified: page.data.exports.lastModified - ? new Date(page.data.exports.lastModified) - : undefined, - changeFrequency: "weekly", - priority: page.url === "/docs/core/get-started/introduction" ? 1 : 0.8, - }; - }), - ]; -} diff --git a/apps/docs/app/source.ts b/apps/docs/app/source.ts deleted file mode 100644 index 4aa62ede..00000000 --- a/apps/docs/app/source.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { map } from "@/.map"; -import { languages } from "@/i18n"; -import { loader } from "fumadocs-core/source"; -import { createMDXSource } from "fumadocs-mdx"; - -export const { getPage, getPages, pageTree, getLanguages } = loader({ - baseUrl: "/", - languages, - source: createMDXSource(map), -}); diff --git a/apps/docs/components/analytics/google.tsx b/apps/docs/components/analytics/google.tsx deleted file mode 100644 index 338dce78..00000000 --- a/apps/docs/components/analytics/google.tsx +++ /dev/null @@ -1,17 +0,0 @@ -"use client"; - -import { useEffect } from "react"; -import initializeGA from "."; - -export default function GoogleAnalytics() { - useEffect(() => { - // @ts-ignore - if (!window.GA_INITIALIZED) { - initializeGA(); - // @ts-ignore - window.GA_INITIALIZED = true; - } - }, []); - - return null; -} diff --git a/apps/docs/components/analytics/index.ts b/apps/docs/components/analytics/index.ts deleted file mode 100644 index 0665eec8..00000000 --- a/apps/docs/components/analytics/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -"use client"; - -import ReactGA from "react-ga4"; - -const initializeGA = () => { - // Replace with your Measurement ID - // It ideally comes from an environment variable - ReactGA.initialize("G-HZ71HG38HN"); - - // Don't forget to remove the console.log() statements - // when you are done -}; - -interface Props { - category: string; - action: string; - label: string; -} -const trackGAEvent = ({ category, action, label }: Props) => { - console.log("GA event:", category, ":", action, ":", label); - // Send GA4 Event - ReactGA.event({ - category: category, - action: action, - label: label, - }); -}; - -export default initializeGA; -export { initializeGA, trackGAEvent }; diff --git a/apps/docs/content/docs/api/index.cn.mdx b/apps/docs/content/docs/api/index.cn.mdx deleted file mode 100644 index 13dea591..00000000 --- a/apps/docs/content/docs/api/index.cn.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Dokploy API -description: 如何与 Dokploy API 进行交互,面向管理员和用户 ---- - -在某些情况下,您可能需要直接与 Dokploy API 进行交互。以下是管理员和用户如何做到这一点的指南。 - -## 对于管理员 - -1. 通过访问 `your-vps-ip:3000/swagger` 进入 Swagger UI。 -2. 使用 Swagger 界面与 API 进行交互。 -3. 默认情况下,Swagger UI 的访问受到限制,只有经过身份验证的管理员才能访问 API。 - -## 对于用户 - -1. 默认情况下,用户无法直接访问 API。 -2. 管理员可以授予用户以下访问权限: - - 生成访问令牌 - - 访问 Swagger UI -3. 如果您需要访问权限,请联系您的管理员。 - -注意:API 提供了高级功能。确保您理解所执行的操作,以避免对系统造成意外更改。 - -## 用法 - -默认情况下,OpenApi 基础 URL 为 `http://localhost:3000/api`,您需要将其替换为 Dokploy 实例的 IP 或域名。 - -### 身份验证 - -API 使用 JWT 令牌进行身份验证。您可以通过访问 `/settings/profile` 页面并进入 API/CLI 部分生成令牌。 - -以下是一个经过身份验证的请求示例: -```bash -curl -X 'GET' \ - 'https://dokploy.com/api/project.all' \ - -H 'accept: application/json' \ - -H 'Authorization: Bearer YOUR-TOKEN' -``` -然后您将收到类似以下内容的响应: - -```json -[ - { - "projectId": "klZKsyw5g-QT_jrWJ5T-w", - "name": "随机", - "description": "", - "createdAt": "2024-06-19T15:05:58.785Z", - "adminId": "_WrKZbs7iJAA3p4N2Yfyu", - "applications": [], - "mariadb": [], - "mongo": [], - "mysql": [ - { - "mysqlId": "N3cudwO46TiDXzBm4SaQ1", - "name": "mysql", - "appName": "random-mysql-924715", - "description": "", - "databaseName": "mysql", - "databaseUser": "mysql", - "databasePassword": "h13BzO6y3KYSHaQg", - "databaseRootPassword": "mM1b7JeoPA7jArxj", - "dockerImage": "mysql:8", - "command": null, - "env": null, - "memoryReservation": null, - "memoryLimit": null, - "cpuReservation": null, - "cpuLimit": null, - "externalPort": null, - "applicationStatus": "完成", - "createdAt": "2024-06-24T01:55:40.378Z", - "projectId": "klZKsyw5g-QT_jrWJ5T-w" - } - ], - "postgres": [], - "redis": [ - { - "redisId": "TtFK5S4QFaIjaNGOb8Ku-", - "name": "redis", - "appName": "random-redis-7eec62", - "description": "", - "databasePassword": "Yvb8gqClfomjcue8", - "dockerImage": "redis:7", - "command": null, - "env": null, - "memoryReservation": null, - "memoryLimit": null, - "cpuReservation": null, - "cpuLimit": null, - "externalPort": 6379, - "createdAt": "2024-06-26T06:43:20.570Z", - "applicationStatus": "完成", - "projectId": "klZKsyw5g-QT_jrWJ5T-w" - } - ], - "compose": [] - } -] -``` \ No newline at end of file diff --git a/apps/docs/content/docs/api/index.mdx b/apps/docs/content/docs/api/index.mdx deleted file mode 100644 index 2303d3a1..00000000 --- a/apps/docs/content/docs/api/index.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Dokploy API -description: How to interact with the dokploy API for administrators and users ---- - -In some cases, you may need to interact directly with the dokploy API. Here's how both administrators and users can do this. - -## For Administrators - -1. Access the Swagger UI by navigating to `your-vps-ip:3000/swagger`. -2. Use the Swagger interface to interact with the API. -3. By default, access to the Swagger UI is restricted, and only authenticated administrators can access the API. - -## For Users - -1. By default, users do not have direct access to the API. -2. Administrators can grant users access to: - - Generate access tokens - - Access the Swagger UI -3. If you need access, contact your administrator. - -Note: The API provides advanced functionalities. Make sure you understand the operations you're performing to avoid unintended changes to the system. - -## Usage - -By default the OpenApi base url is `http://localhost:3000/api`, you need to replace with the ip of your dokploy instance or the domain name. - -### Authentication - -The API uses JWT tokens for authentication. You can generate a token by going to the `/settings/profile` page and go to API/CLI Section and generate the token. - -Let's take a example of authenticated request: -```bash -curl -X 'GET' \ - 'https://dokploy.com/api/project.all' \ - -H 'accept: application/json' - -H 'Authorization: Bearer YOUR-TOKEN' -``` -then you will get the something like this: - -```json -[ - { - "projectId": "klZKsyw5g-QT_jrWJ5T-w", - "name": "Random", - "description": "", - "createdAt": "2024-06-19T15:05:58.785Z", - "adminId": "_WrKZbs7iJAA3p4N2Yfyu", - "applications": [], - "mariadb": [], - "mongo": [], - "mysql": [ - { - "mysqlId": "N3cudwO46TiDXzBm4SaQ1", - "name": "mysql", - "appName": "random-mysql-924715", - "description": "", - "databaseName": "mysql", - "databaseUser": "mysql", - "databasePassword": "h13BzO6y3KYSHaQg", - "databaseRootPassword": "mM1b7JeoPA7jArxj", - "dockerImage": "mysql:8", - "command": null, - "env": null, - "memoryReservation": null, - "memoryLimit": null, - "cpuReservation": null, - "cpuLimit": null, - "externalPort": null, - "applicationStatus": "done", - "createdAt": "2024-06-24T01:55:40.378Z", - "projectId": "klZKsyw5g-QT_jrWJ5T-w" - } - ], - "postgres": [], - "redis": [ - { - "redisId": "TtFK5S4QFaIjaNGOb8Ku-", - "name": "redis", - "appName": "random-redis-7eec62", - "description": "", - "databasePassword": "Yvb8gqClfomjcue8", - "dockerImage": "redis:7", - "command": null, - "env": null, - "memoryReservation": null, - "memoryLimit": null, - "cpuReservation": null, - "cpuLimit": null, - "externalPort": 6379, - "createdAt": "2024-06-26T06:43:20.570Z", - "applicationStatus": "done", - "projectId": "klZKsyw5g-QT_jrWJ5T-w" - } - ], - "compose": [] - }, -] -``` \ No newline at end of file diff --git a/apps/docs/content/docs/api/meta.cn.json b/apps/docs/content/docs/api/meta.cn.json deleted file mode 100644 index 9e512b78..00000000 --- a/apps/docs/content/docs/api/meta.cn.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "title": "CLI", - "root": true, - "pages": [ - "---入门---", - "index", - "---API---", - "reference-api/reference-admin", - "reference-api/reference-application", - "reference-api/reference-auth", - "reference-api/reference-backup", - "reference-api/reference-certificates", - "reference-api/reference-cluster", - "reference-api/reference-compose", - "reference-api/reference-deployment", - "reference-api/reference-destination", - "reference-api/reference-docker", - "reference-api/reference-domain", - "reference-api/reference-mariadb", - "reference-api/reference-mongo", - "reference-api/reference-mounts", - "reference-api/reference-mysql", - "reference-api/reference-port", - "reference-api/reference-postgres", - "reference-api/reference-project", - "reference-api/reference-redirects", - "reference-api/reference-redis", - "reference-api/reference-registry", - "reference-api/reference-security", - "reference-api/reference-settings", - "reference-api/reference-user" - ] -} diff --git a/apps/docs/content/docs/api/meta.json b/apps/docs/content/docs/api/meta.json deleted file mode 100644 index 09421f25..00000000 --- a/apps/docs/content/docs/api/meta.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "title": "CLI", - "root": true, - "pages": [ - "---Get Started---", - "index", - "---API---", - "reference-api/reference-admin", - "reference-api/reference-application", - "reference-api/reference-auth", - "reference-api/reference-backup", - "reference-api/reference-certificates", - "reference-api/reference-cluster", - "reference-api/reference-compose", - "reference-api/reference-deployment", - "reference-api/reference-destination", - "reference-api/reference-docker", - "reference-api/reference-domain", - "reference-api/reference-mariadb", - "reference-api/reference-mongo", - "reference-api/reference-mounts", - "reference-api/reference-mysql", - "reference-api/reference-port", - "reference-api/reference-postgres", - "reference-api/reference-project", - "reference-api/reference-redirects", - "reference-api/reference-redis", - "reference-api/reference-registry", - "reference-api/reference-security", - "reference-api/reference-settings", - "reference-api/reference-sshKey", - "reference-api/reference-gitProvider", - "reference-api/reference-bitbucket", - "reference-api/reference-github", - "reference-api/reference-gitlab", - "reference-api/reference-user" - ] -} diff --git a/apps/docs/content/docs/api/reference-api/reference-admin.mdx b/apps/docs/content/docs/api/reference-api/reference-admin.mdx deleted file mode 100644 index a3514229..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-admin.mdx +++ /dev/null @@ -1,565 +0,0 @@ ---- -title: admin -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## admin-one - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/admin.one" -``` - - - - - -```js -fetch("http://localhost:3000/api/admin.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-createUserInvitation - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Format: `"email"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/admin.createUserInvitation" \ - -d '{ - "email": "user@example.com" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/admin.createUserInvitation", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-removeUser - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/admin.removeUser" \ - -d '{ - "authId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/admin.removeUser", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-getUserByToken - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/admin.getUserByToken?token=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/admin.getUserByToken?token=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-assignPermissions - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - -"} required={true} deprecated={undefined}> - - - -"} required={true} deprecated={undefined}> - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/admin.assignPermissions" \ - -d '{ - "userId": "string", - "canCreateProjects": true, - "canCreateServices": true, - "canDeleteProjects": true, - "canDeleteServices": true, - "accesedProjects": [ - "string" - ], - "accesedServices": [ - "string" - ], - "canAccessToTraefikFiles": true, - "canAccessToDocker": true, - "canAccessToAPI": true, - "canAccessToSSHKeys": true, - "canAccessToGitProviders": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/admin.assignPermissions", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-application.mdx b/apps/docs/content/docs/api/reference-api/reference-application.mdx deleted file mode 100644 index f4836ec0..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-application.mdx +++ /dev/null @@ -1,2970 +0,0 @@ ---- -title: application -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## application-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.create" \ - -d '{ - "name": "string", - "appName": "string", - "description": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/application.one?applicationId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/application.one?applicationId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.reload" \ - -d '{ - "appName": "string", - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.delete" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.stop" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.start" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-redeploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.redeploy" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.redeploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.saveEnvironment" \ - -d '{ - "applicationId": "string", - "env": "string", - "buildArgs": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveBuildType - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks" | "static"` - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.saveBuildType" \ - -d '{ - "applicationId": "string", - "buildType": "dockerfile", - "dockerfile": "string", - "dockerContextPath": "string", - "publishDirectory": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.saveBuildType", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveGithubProvider - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.saveGithubProvider" \ - -d '{ - "applicationId": "string", - "repository": "string", - "branch": "string", - "owner": "string", - "buildPath": "string", - "githubId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.saveGithubProvider", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveGitlabProvider - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.saveGitlabProvider" \ - -d '{ - "applicationId": "string", - "gitlabBranch": "string", - "gitlabBuildPath": "string", - "gitlabOwner": "string", - "gitlabRepository": "string", - "gitlabId": "string", - "gitlabProjectId": 0, - "gitlabPathNamespace": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.saveGitlabProvider", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveBitbucketProvider - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.saveBitbucketProvider" \ - -d '{ - "bitbucketBranch": "string", - "bitbucketBuildPath": "string", - "bitbucketOwner": "string", - "bitbucketRepository": "string", - "bitbucketId": "string", - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.saveBitbucketProvider", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveDockerProvider - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.saveDockerProvider" \ - -d '{ - "dockerImage": "string", - "applicationId": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.saveDockerProvider", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveGitProdiver - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.saveGitProdiver" \ - -d '{ - "customGitBranch": "string", - "applicationId": "string", - "customGitBuildPath": "string", - "customGitUrl": "string", - "customGitSSHKeyId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.saveGitProdiver", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-markRunning - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.markRunning" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.markRunning", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"github" | "docker" | "git"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"} required={false} deprecated={undefined}> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"} required={false} deprecated={undefined}> - - - -"} required={false} deprecated={undefined}> - - - - - - - - - - - - - - - - - - - - - - - -"} required={false} deprecated={undefined}> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | null"} required={false} deprecated={undefined}> - - - - - - - -"} required={false} deprecated={undefined}> - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - -Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks" | "static"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.update" \ - -d '{ - "applicationId": "string", - "name": "string", - "appName": "string", - "description": "string", - "env": "string", - "buildArgs": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "title": "string", - "enabled": true, - "subtitle": "string", - "command": "string", - "refreshToken": "string", - "sourceType": "github", - "repository": "string", - "owner": "string", - "branch": "string", - "buildPath": "string", - "autoDeploy": true, - "gitlabProjectId": 0, - "gitlabRepository": "string", - "gitlabOwner": "string", - "gitlabBranch": "string", - "gitlabBuildPath": "string", - "gitlabPathNamespace": "string", - "bitbucketRepository": "string", - "bitbucketOwner": "string", - "bitbucketBranch": "string", - "bitbucketBuildPath": "string", - "username": "string", - "password": "string", - "dockerImage": "string", - "customGitUrl": "string", - "customGitBranch": "string", - "customGitBuildPath": "string", - "customGitSSHKeyId": "string", - "dockerfile": "string", - "dockerContextPath": "string", - "dropBuildPath": "string", - "healthCheckSwarm": { - "Test": [ - "string" - ], - "Interval": 0, - "Timeout": 0, - "StartPeriod": 0, - "Retries": 0 - }, - "restartPolicySwarm": { - "Condition": "string", - "Delay": 0, - "MaxAttempts": 0, - "Window": 0 - }, - "placementSwarm": { - "Constraints": [ - "string" - ], - "Preferences": [ - { - "Spread": { - "SpreadDescriptor": "string" - } - } - ], - "MaxReplicas": 0, - "Platforms": [ - { - "Architecture": "string", - "OS": "string" - } - ] - }, - "updateConfigSwarm": { - "Parallelism": 0, - "Delay": 0, - "FailureAction": "string", - "Monitor": 0, - "MaxFailureRatio": 0, - "Order": "string" - }, - "rollbackConfigSwarm": { - "Parallelism": 0, - "Delay": 0, - "FailureAction": "string", - "Monitor": 0, - "MaxFailureRatio": 0, - "Order": "string" - }, - "modeSwarm": { - "Replicated": { - "Replicas": 0 - }, - "Global": {}, - "ReplicatedJob": { - "MaxConcurrent": 0, - "TotalCompletions": 0 - }, - "GlobalJob": {} - }, - "labelsSwarm": { - "property1": "string", - "property2": "string" - }, - "networkSwarm": [ - { - "Target": "string", - "Aliases": [ - "string" - ], - "DriverOpts": {} - } - ], - "replicas": 0, - "applicationStatus": "idle", - "buildType": "dockerfile", - "publishDirectory": "string", - "createdAt": "string", - "registryId": "string", - "projectId": "string", - "githubId": "string", - "gitlabId": "string", - "bitbucketId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-refreshToken - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.refreshToken" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.refreshToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.deploy" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-cleanQueues - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.cleanQueues" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.cleanQueues", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-readTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/application.readTraefikConfig?applicationId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/application.readTraefikConfig?applicationId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-updateTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/application.updateTraefikConfig" \ - -d '{ - "applicationId": "string", - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/application.updateTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-readAppMonitoring - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/application.readAppMonitoring?appName=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/application.readAppMonitoring?appName=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-auth.mdx b/apps/docs/content/docs/api/reference-api/reference-auth.mdx deleted file mode 100644 index 8523aca2..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-auth.mdx +++ /dev/null @@ -1,1487 +0,0 @@ ---- -title: auth -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## auth-createAdmin - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Format: `"email"` - - - - - -Minimum length: `8` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.createAdmin" \ - -d '{ - "email": "user@example.com", - "password": "stringst" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.createAdmin", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-createUser - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `8` - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.createUser" \ - -d '{ - "password": "stringst", - "id": "string", - "token": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.createUser", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-login - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Format: `"email"` - - - - - -Minimum length: `8` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.login" \ - -d '{ - "email": "user@example.com", - "password": "stringst" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.login", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-get - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/auth.get" -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.get", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-logout - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.logout" -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.logout", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - -Value in: `"admin" | "user"` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.update" \ - -d '{ - "id": "string", - "email": "string", - "password": "string", - "rol": "admin", - "image": "string", - "secret": "string", - "token": "string", - "is2FAEnabled": true, - "createdAt": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-generateToken - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.generateToken" -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.generateToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/auth.one?id=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.one?id=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-updateByAdmin - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - -Value in: `"admin" | "user"` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.updateByAdmin" \ - -d '{ - "id": "string", - "email": "string", - "password": "string", - "rol": "admin", - "image": "string", - "secret": "string", - "token": "string", - "is2FAEnabled": true, - "createdAt": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.updateByAdmin", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-generate2FASecret - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/auth.generate2FASecret" -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.generate2FASecret", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-verify2FASetup - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `6` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.verify2FASetup" \ - -d '{ - "pin": "string", - "secret": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.verify2FASetup", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-verifyLogin2FA - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `6` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.verifyLogin2FA" \ - -d '{ - "pin": "string", - "id": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.verifyLogin2FA", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-disable2FA - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.disable2FA" -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.disable2FA", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-verifyToken - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/auth.verifyToken" -``` - - - - - -```js -fetch("http://localhost:3000/api/auth.verifyToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-backup.mdx b/apps/docs/content/docs/api/reference-api/reference-backup.mdx deleted file mode 100644 index 58f432ac..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-backup.mdx +++ /dev/null @@ -1,887 +0,0 @@ ---- -title: backup -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## backup-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - -Value in: `"postgres" | "mariadb" | "mysql" | "mongo"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/backup.create" \ - -d '{ - "schedule": "string", - "enabled": true, - "prefix": "string", - "destinationId": "string", - "database": "string", - "mariadbId": "string", - "mysqlId": "string", - "postgresId": "string", - "mongoId": "string", - "databaseType": "postgres" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/backup.one?backupId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.one?backupId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/backup.update" \ - -d '{ - "schedule": "string", - "enabled": true, - "prefix": "string", - "backupId": "string", - "destinationId": "string", - "database": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/backup.remove" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupPostgres - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/backup.manualBackupPostgres" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.manualBackupPostgres", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupMySql - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/backup.manualBackupMySql" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.manualBackupMySql", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupMariadb - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/backup.manualBackupMariadb" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.manualBackupMariadb", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupMongo - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/backup.manualBackupMongo" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/backup.manualBackupMongo", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-bitbucket.mdx b/apps/docs/content/docs/api/reference-api/reference-bitbucket.mdx deleted file mode 100644 index 6b9680c1..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-bitbucket.mdx +++ /dev/null @@ -1,779 +0,0 @@ ---- -title: bitbucket -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## bitbucket-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/bitbucket.create" \ - -d '{ - "bitbucketId": "string", - "bitbucketUsername": "string", - "appPassword": "string", - "bitbucketWorkspaceName": "string", - "gitProviderId": "string", - "authId": "string", - "name": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/bitbucket.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## bitbucket-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/bitbucket.one?bitbucketId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/bitbucket.one?bitbucketId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## bitbucket-bitbucketProviders - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/bitbucket.bitbucketProviders" -``` - - - - - -```js -fetch("http://localhost:3000/api/bitbucket.bitbucketProviders", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## bitbucket-getBitbucketRepositories - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/bitbucket.getBitbucketRepositories?bitbucketId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/bitbucket.getBitbucketRepositories?bitbucketId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## bitbucket-getBitbucketBranches - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/bitbucket.getBitbucketBranches?owner=string&repo=string&bitbucketId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/bitbucket.getBitbucketBranches?owner=string&repo=string&bitbucketId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## bitbucket-testConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/bitbucket.testConnection" \ - -d '{ - "bitbucketId": "string", - "bitbucketUsername": "string", - "workspaceName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/bitbucket.testConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## bitbucket-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/bitbucket.update" \ - -d '{ - "bitbucketId": "string", - "bitbucketUsername": "string", - "appPassword": "string", - "bitbucketWorkspaceName": "string", - "gitProviderId": "string", - "name": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/bitbucket.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-certificates.mdx b/apps/docs/content/docs/api/reference-api/reference-certificates.mdx deleted file mode 100644 index 348c891b..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-certificates.mdx +++ /dev/null @@ -1,433 +0,0 @@ ---- -title: certificates -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## certificates-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/certificates.create" \ - -d '{ - "certificateId": "string", - "name": "string", - "certificateData": "string", - "privateKey": "string", - "certificatePath": "string", - "autoRenew": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/certificates.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## certificates-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/certificates.one?certificateId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/certificates.one?certificateId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## certificates-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/certificates.remove" \ - -d '{ - "certificateId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/certificates.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## certificates-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/certificates.all" -``` - - - - - -```js -fetch("http://localhost:3000/api/certificates.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-cluster.mdx b/apps/docs/content/docs/api/reference-api/reference-cluster.mdx deleted file mode 100644 index a0d68ef0..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-cluster.mdx +++ /dev/null @@ -1,383 +0,0 @@ ---- -title: cluster -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## cluster-getNodes - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/cluster.getNodes" -``` - - - - - -```js -fetch("http://localhost:3000/api/cluster.getNodes", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## cluster-removeWorker - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/cluster.removeWorker" \ - -d '{ - "nodeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/cluster.removeWorker", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## cluster-addWorker - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/cluster.addWorker" -``` - - - - - -```js -fetch("http://localhost:3000/api/cluster.addWorker", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## cluster-addManager - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/cluster.addManager" -``` - - - - - -```js -fetch("http://localhost:3000/api/cluster.addManager", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-compose.mdx b/apps/docs/content/docs/api/reference-api/reference-compose.mdx deleted file mode 100644 index 7959c190..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-compose.mdx +++ /dev/null @@ -1,1911 +0,0 @@ ---- -title: compose -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## compose-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - -Value in: `"docker-compose" | "stack"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.create" \ - -d '{ - "name": "string", - "description": "string", - "projectId": "string", - "composeType": "docker-compose", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/compose.one?composeId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.one?composeId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"git" | "github" | "gitlab" | "bitbucket" | "raw"` - - - - - -Value in: `"docker-compose" | "stack"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.update" \ - -d '{ - "composeId": "string", - "name": "string", - "appName": "string", - "description": "string", - "env": "string", - "composeFile": "string", - "refreshToken": "string", - "sourceType": "git", - "composeType": "docker-compose", - "repository": "string", - "owner": "string", - "branch": "string", - "autoDeploy": true, - "gitlabProjectId": 0, - "gitlabRepository": "string", - "gitlabOwner": "string", - "gitlabBranch": "string", - "gitlabPathNamespace": "string", - "bitbucketRepository": "string", - "bitbucketOwner": "string", - "bitbucketBranch": "string", - "customGitUrl": "string", - "customGitBranch": "string", - "customGitSSHKeyId": "string", - "command": "string", - "composePath": "string", - "composeStatus": "idle", - "projectId": "string", - "createdAt": "string", - "githubId": "string", - "gitlabId": "string", - "bitbucketId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.delete" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-cleanQueues - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.cleanQueues" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.cleanQueues", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-loadServices - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - - - -Default: `"cache"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/compose.loadServices?composeId=string&type=cache" -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.loadServices?composeId=string&type=cache", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-fetchSourceType - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.fetchSourceType" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.fetchSourceType", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-randomizeCompose - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.randomizeCompose" \ - -d '{ - "composeId": "string", - "prefix": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.randomizeCompose", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-getConvertedCompose - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/compose.getConvertedCompose?composeId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.getConvertedCompose?composeId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.deploy" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-redeploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.redeploy" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.redeploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.stop" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-getDefaultCommand - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/compose.getDefaultCommand?composeId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.getDefaultCommand?composeId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-refreshToken - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.refreshToken" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.refreshToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-deployTemplate - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/compose.deployTemplate" \ - -d '{ - "projectId": "string", - "id": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.deployTemplate", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-templates - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/compose.templates" -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.templates", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-getTags - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/compose.getTags" -``` - - - - - -```js -fetch("http://localhost:3000/api/compose.getTags", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-deployment.mdx b/apps/docs/content/docs/api/reference-api/reference-deployment.mdx deleted file mode 100644 index 621397e6..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-deployment.mdx +++ /dev/null @@ -1,208 +0,0 @@ ---- -title: deployment -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## deployment-all - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/deployment.all?applicationId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/deployment.all?applicationId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## deployment-allByCompose - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/deployment.allByCompose?composeId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/deployment.allByCompose?composeId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-destination.mdx b/apps/docs/content/docs/api/reference-api/reference-destination.mdx deleted file mode 100644 index 30531a64..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-destination.mdx +++ /dev/null @@ -1,684 +0,0 @@ ---- -title: destination -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## destination-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/destination.create" \ - -d '{ - "name": "string", - "accessKey": "string", - "bucket": "string", - "region": "string", - "endpoint": "string", - "secretAccessKey": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/destination.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-testConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/destination.testConnection" \ - -d '{ - "name": "string", - "accessKey": "string", - "bucket": "string", - "region": "string", - "endpoint": "string", - "secretAccessKey": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/destination.testConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/destination.one?destinationId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/destination.one?destinationId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/destination.all" -``` - - - - - -```js -fetch("http://localhost:3000/api/destination.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/destination.remove" \ - -d '{ - "destinationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/destination.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/destination.update" \ - -d '{ - "name": "string", - "accessKey": "string", - "bucket": "string", - "region": "string", - "endpoint": "string", - "secretAccessKey": "string", - "destinationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/destination.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-docker.mdx b/apps/docs/content/docs/api/reference-api/reference-docker.mdx deleted file mode 100644 index f658ec63..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-docker.mdx +++ /dev/null @@ -1,402 +0,0 @@ ---- -title: docker -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## docker-getContainers - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/docker.getContainers" -``` - - - - - -```js -fetch("http://localhost:3000/api/docker.getContainers", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## docker-getConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/docker.getConfig?containerId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/docker.getConfig?containerId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## docker-getContainersByAppNameMatch - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/docker.getContainersByAppNameMatch?appType=stack&appName=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/docker.getContainersByAppNameMatch?appType=stack&appName=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## docker-getContainersByAppLabel - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/docker.getContainersByAppLabel?appName=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/docker.getContainersByAppLabel?appName=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-domain.mdx b/apps/docs/content/docs/api/reference-api/reference-domain.mdx deleted file mode 100644 index 3dcac705..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-domain.mdx +++ /dev/null @@ -1,804 +0,0 @@ ---- -title: domain -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## domain-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum: `1` - -Maximum: `65535` - - - - - - - - - - - - - -Value in: `"letsencrypt" | "none"` - - - - - - - - - - - - - -Value in: `"compose" | "application"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/domain.create" \ - -d '{ - "host": "string", - "path": "string", - "port": 1, - "https": true, - "applicationId": "string", - "certificateType": "letsencrypt", - "composeId": "string", - "serviceName": "string", - "domainType": "compose" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/domain.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-byApplicationId - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/domain.byApplicationId?applicationId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/domain.byApplicationId?applicationId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-byComposeId - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/domain.byComposeId?composeId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/domain.byComposeId?composeId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-generateDomain - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/domain.generateDomain" \ - -d '{ - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/domain.generateDomain", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum: `1` - -Maximum: `65535` - - - - - - - - - -Value in: `"letsencrypt" | "none"` - - - - - - - - - -Value in: `"compose" | "application"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/domain.update" \ - -d '{ - "host": "string", - "path": "string", - "port": 1, - "https": true, - "certificateType": "letsencrypt", - "serviceName": "string", - "domainType": "compose", - "domainId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/domain.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/domain.one?domainId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/domain.one?domainId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/domain.delete" \ - -d '{ - "domainId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/domain.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-gitProvider.mdx b/apps/docs/content/docs/api/reference-api/reference-gitProvider.mdx deleted file mode 100644 index de455418..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-gitProvider.mdx +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: gitProvider -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## gitProvider-getAll - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/gitProvider.getAll" -``` - - - - - -```js -fetch("http://localhost:3000/api/gitProvider.getAll", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## gitProvider-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/gitProvider.remove" \ - -d '{ - "gitProviderId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/gitProvider.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-github.mdx b/apps/docs/content/docs/api/reference-api/reference-github.mdx deleted file mode 100644 index 4ef42bd2..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-github.mdx +++ /dev/null @@ -1,661 +0,0 @@ ---- -title: github -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## github-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/github.one?githubId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/github.one?githubId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## github-getGithubRepositories - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/github.getGithubRepositories?githubId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/github.getGithubRepositories?githubId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## github-getGithubBranches - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/github.getGithubBranches?repo=string&owner=string&githubId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/github.getGithubBranches?repo=string&owner=string&githubId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## github-githubProviders - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/github.githubProviders" -``` - - - - - -```js -fetch("http://localhost:3000/api/github.githubProviders", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## github-testConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/github.testConnection" \ - -d '{ - "githubId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/github.testConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## github-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/github.update" \ - -d '{ - "githubId": "string", - "githubAppName": "string", - "githubAppId": 0, - "githubClientId": "string", - "githubClientSecret": "string", - "githubInstallationId": "string", - "githubPrivateKey": "string", - "githubWebhookSecret": "string", - "gitProviderId": "string", - "name": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/github.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-gitlab.mdx b/apps/docs/content/docs/api/reference-api/reference-gitlab.mdx deleted file mode 100644 index fa2ef5f6..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-gitlab.mdx +++ /dev/null @@ -1,816 +0,0 @@ ---- -title: gitlab -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## gitlab-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/gitlab.create" \ - -d '{ - "gitlabId": "string", - "applicationId": "string", - "redirectUri": "string", - "secret": "string", - "accessToken": "string", - "refreshToken": "string", - "groupName": "string", - "expiresAt": 0, - "gitProviderId": "string", - "authId": "string", - "name": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/gitlab.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## gitlab-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/gitlab.one?gitlabId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/gitlab.one?gitlabId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## gitlab-gitlabProviders - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/gitlab.gitlabProviders" -``` - - - - - -```js -fetch("http://localhost:3000/api/gitlab.gitlabProviders", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## gitlab-getGitlabRepositories - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/gitlab.getGitlabRepositories?gitlabId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/gitlab.getGitlabRepositories?gitlabId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## gitlab-getGitlabBranches - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/gitlab.getGitlabBranches?id=0&owner=string&repo=string&gitlabId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/gitlab.getGitlabBranches?id=0&owner=string&repo=string&gitlabId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## gitlab-testConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/gitlab.testConnection" \ - -d '{ - "gitlabId": "string", - "groupName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/gitlab.testConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## gitlab-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/gitlab.update" \ - -d '{ - "gitlabId": "string", - "applicationId": "string", - "redirectUri": "string", - "secret": "string", - "accessToken": "string", - "refreshToken": "string", - "groupName": "string", - "expiresAt": 0, - "gitProviderId": "string", - "name": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/gitlab.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mariadb.mdx b/apps/docs/content/docs/api/reference-api/reference-mariadb.mdx deleted file mode 100644 index 6915a65c..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-mariadb.mdx +++ /dev/null @@ -1,1285 +0,0 @@ ---- -title: mariadb -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## mariadb-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Default: `"mariadb:6"` - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.create" \ - -d '{ - "name": "string", - "appName": "string", - "dockerImage": "mariadb:6", - "databaseRootPassword": "string", - "projectId": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/mariadb.one?mariadbId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.one?mariadbId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.start" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.stop" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.saveExternalPort" \ - -d '{ - "mariadbId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.deploy" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.changeStatus" \ - -d '{ - "mariadbId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.remove" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.saveEnvironment" \ - -d '{ - "mariadbId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.reload" \ - -d '{ - "mariadbId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"mariadb:6"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mariadb.update" \ - -d '{ - "mariadbId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "databaseRootPassword": "string", - "dockerImage": "mariadb:6", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mariadb.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mongo.mdx b/apps/docs/content/docs/api/reference-api/reference-mongo.mdx deleted file mode 100644 index b4d21f12..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-mongo.mdx +++ /dev/null @@ -1,1261 +0,0 @@ ---- -title: mongo -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## mongo-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Default: `"mongo:15"` - - - - - - - - - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.create" \ - -d '{ - "name": "string", - "appName": "string", - "dockerImage": "mongo:15", - "projectId": "string", - "description": "string", - "databaseUser": "string", - "databasePassword": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/mongo.one?mongoId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.one?mongoId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.start" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.stop" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.saveExternalPort" \ - -d '{ - "mongoId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.deploy" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.changeStatus" \ - -d '{ - "mongoId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.reload" \ - -d '{ - "mongoId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.remove" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.saveEnvironment" \ - -d '{ - "mongoId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - - - - - -Default: `"mongo:15"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mongo.update" \ - -d '{ - "mongoId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databaseUser": "string", - "databasePassword": "string", - "dockerImage": "mongo:15", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mongo.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mounts.mdx b/apps/docs/content/docs/api/reference-api/reference-mounts.mdx deleted file mode 100644 index 8c435e43..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-mounts.mdx +++ /dev/null @@ -1,532 +0,0 @@ ---- -title: mounts -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## mounts-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Value in: `"bind" | "volume" | "file"` - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Default: `"application"` - -Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mounts.create" \ - -d '{ - "type": "bind", - "hostPath": "string", - "volumeName": "string", - "content": "string", - "mountPath": "string", - "serviceType": "application", - "filePath": "string", - "serviceId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mounts.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mounts-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mounts.remove" \ - -d '{ - "mountId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mounts.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mounts-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/mounts.one?mountId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/mounts.one?mountId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mounts-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Value in: `"bind" | "volume" | "file"` - - - - - - - - - - - - - - - - - - - - - -Default: `"application"` - -Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mounts.update" \ - -d '{ - "mountId": "string", - "type": "bind", - "hostPath": "string", - "volumeName": "string", - "filePath": "string", - "content": "string", - "serviceType": "application", - "mountPath": "string", - "applicationId": "string", - "postgresId": "string", - "mariadbId": "string", - "mongoId": "string", - "mysqlId": "string", - "redisId": "string", - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mounts.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-mysql.mdx b/apps/docs/content/docs/api/reference-api/reference-mysql.mdx deleted file mode 100644 index 7b897e0d..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-mysql.mdx +++ /dev/null @@ -1,1285 +0,0 @@ ---- -title: mysql -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## mysql-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Default: `"mysql:8"` - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.create" \ - -d '{ - "name": "string", - "appName": "string", - "dockerImage": "mysql:8", - "projectId": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "databaseRootPassword": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/mysql.one?mysqlId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.one?mysqlId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.start" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.stop" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.saveExternalPort" \ - -d '{ - "mysqlId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.deploy" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.changeStatus" \ - -d '{ - "mysqlId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.reload" \ - -d '{ - "mysqlId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.remove" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.saveEnvironment" \ - -d '{ - "mysqlId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"mysql:8"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/mysql.update" \ - -d '{ - "mysqlId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "databaseRootPassword": "string", - "dockerImage": "mysql:8", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/mysql.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-notification.mdx b/apps/docs/content/docs/api/reference-api/reference-notification.mdx deleted file mode 100644 index 22f231cf..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-notification.mdx +++ /dev/null @@ -1,1957 +0,0 @@ ---- -title: notification -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## notification-createSlack - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.createSlack" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "webhookUrl": "string", - "channel": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.createSlack", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-updateSlack - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.updateSlack" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "webhookUrl": "string", - "channel": "string", - "notificationId": "string", - "slackId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.updateSlack", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-testSlackConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.testSlackConnection" \ - -d '{ - "webhookUrl": "string", - "channel": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.testSlackConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-createTelegram - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.createTelegram" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "botToken": "string", - "chatId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.createTelegram", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-updateTelegram - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.updateTelegram" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "botToken": "string", - "chatId": "string", - "notificationId": "string", - "telegramId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.updateTelegram", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-testTelegramConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.testTelegramConnection" \ - -d '{ - "botToken": "string", - "chatId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.testTelegramConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-createDiscord - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.createDiscord" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "webhookUrl": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.createDiscord", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-updateDiscord - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.updateDiscord" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "webhookUrl": "string", - "notificationId": "string", - "discordId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.updateDiscord", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-testDiscordConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.testDiscordConnection" \ - -d '{ - "webhookUrl": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.testDiscordConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-createEmail - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -"} required={true} deprecated={undefined}> - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.createEmail" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "smtpServer": "string", - "smtpPort": 1, - "username": "string", - "password": "string", - "fromAddress": "string", - "toAddresses": [ - "string" - ] -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.createEmail", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-updateEmail - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -"} required={false} deprecated={undefined}> - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.updateEmail" \ - -d '{ - "appBuildError": true, - "databaseBackup": true, - "dokployRestart": true, - "name": "string", - "appDeploy": true, - "dockerCleanup": true, - "smtpServer": "string", - "smtpPort": 1, - "username": "string", - "password": "string", - "fromAddress": "string", - "toAddresses": [ - "string" - ], - "notificationId": "string", - "emailId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.updateEmail", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-testEmailConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -"} required={true} deprecated={undefined}> - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.testEmailConnection" \ - -d '{ - "smtpServer": "string", - "smtpPort": 1, - "username": "string", - "password": "string", - "toAddresses": [ - "string" - ], - "fromAddress": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.testEmailConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/notification.remove" \ - -d '{ - "notificationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/notification.one?notificationId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.one?notificationId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## notification-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/notification.all" -``` - - - - - -```js -fetch("http://localhost:3000/api/notification.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-port.mdx b/apps/docs/content/docs/api/reference-api/reference-port.mdx deleted file mode 100644 index bc4f7c55..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-port.mdx +++ /dev/null @@ -1,453 +0,0 @@ ---- -title: port -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## port-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Default: `"tcp"` - -Value in: `"tcp" | "udp"` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/port.create" \ - -d '{ - "publishedPort": 0, - "targetPort": 0, - "protocol": "tcp", - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/port.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## port-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/port.one?portId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/port.one?portId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## port-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/port.delete" \ - -d '{ - "portId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/port.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## port-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"tcp"` - -Value in: `"tcp" | "udp"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/port.update" \ - -d '{ - "portId": "string", - "publishedPort": 0, - "targetPort": 0, - "protocol": "tcp" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/port.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-postgres.mdx b/apps/docs/content/docs/api/reference-api/reference-postgres.mdx deleted file mode 100644 index 243cfbaa..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-postgres.mdx +++ /dev/null @@ -1,1269 +0,0 @@ ---- -title: postgres -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## postgres-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Default: `"postgres:15"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.create" \ - -d '{ - "name": "string", - "appName": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "dockerImage": "postgres:15", - "projectId": "string", - "description": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/postgres.one?postgresId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.one?postgresId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.start" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.stop" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.saveExternalPort" \ - -d '{ - "postgresId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.deploy" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.changeStatus" \ - -d '{ - "postgresId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.remove" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.saveEnvironment" \ - -d '{ - "postgresId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.reload" \ - -d '{ - "postgresId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"postgres:15"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/postgres.update" \ - -d '{ - "postgresId": "string", - "name": "string", - "appName": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "description": "string", - "dockerImage": "postgres:15", - "command": "string", - "env": "string", - "memoryReservation": 0, - "externalPort": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/postgres.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-project.mdx b/apps/docs/content/docs/api/reference-api/reference-project.mdx deleted file mode 100644 index 15c8e01f..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-project.mdx +++ /dev/null @@ -1,523 +0,0 @@ ---- -title: project -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## project-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/project.create" \ - -d '{ - "name": "string", - "description": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/project.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/project.one?projectId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/project.one?projectId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/project.all" -``` - - - - - -```js -fetch("http://localhost:3000/api/project.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/project.remove" \ - -d '{ - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/project.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/project.update" \ - -d '{ - "name": "string", - "description": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/project.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-redirects.mdx b/apps/docs/content/docs/api/reference-api/reference-redirects.mdx deleted file mode 100644 index 699ec2e5..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-redirects.mdx +++ /dev/null @@ -1,451 +0,0 @@ ---- -title: redirects -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## redirects-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redirects.create" \ - -d '{ - "regex": "string", - "replacement": "string", - "permanent": true, - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redirects.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redirects-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/redirects.one?redirectId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/redirects.one?redirectId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redirects-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redirects.delete" \ - -d '{ - "redirectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redirects.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redirects-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redirects.update" \ - -d '{ - "redirectId": "string", - "regex": "string", - "replacement": "string", - "permanent": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redirects.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-redis.mdx b/apps/docs/content/docs/api/reference-api/reference-redis.mdx deleted file mode 100644 index 9c5b7c11..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-redis.mdx +++ /dev/null @@ -1,1247 +0,0 @@ ---- -title: redis -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## redis-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Default: `"redis:8"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.create" \ - -d '{ - "name": "string", - "appName": "string", - "databasePassword": "string", - "dockerImage": "redis:8", - "projectId": "string", - "description": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/redis.one?redisId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.one?redisId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.start" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.reload" \ - -d '{ - "redisId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.stop" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.saveExternalPort" \ - -d '{ - "redisId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.deploy" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.changeStatus" \ - -d '{ - "redisId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.remove" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.saveEnvironment" \ - -d '{ - "redisId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"redis:8"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/redis.update" \ - -d '{ - "redisId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databasePassword": "string", - "dockerImage": "redis:8", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "createdAt": "string", - "applicationStatus": "idle", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/redis.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-registry.mdx b/apps/docs/content/docs/api/reference-api/reference-registry.mdx deleted file mode 100644 index e9b7040d..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-registry.mdx +++ /dev/null @@ -1,838 +0,0 @@ ---- -title: registry -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## registry-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Value in: `"selfHosted" | "cloud"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/registry.create" \ - -d '{ - "registryName": "string", - "username": "string", - "password": "string", - "registryUrl": "string", - "registryType": "selfHosted", - "imagePrefix": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/registry.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/registry.remove" \ - -d '{ - "registryId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/registry.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Value in: `"selfHosted" | "cloud"` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/registry.update" \ - -d '{ - "registryId": "string", - "registryName": "string", - "imagePrefix": "string", - "username": "string", - "password": "string", - "registryUrl": "string", - "createdAt": "string", - "registryType": "selfHosted", - "adminId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/registry.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/registry.all" -``` - - - - - -```js -fetch("http://localhost:3000/api/registry.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/registry.one?registryId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/registry.one?registryId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-testRegistry - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Value in: `"selfHosted" | "cloud"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/registry.testRegistry" \ - -d '{ - "registryName": "string", - "username": "string", - "password": "string", - "registryUrl": "string", - "registryType": "selfHosted", - "imagePrefix": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/registry.testRegistry", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-enableSelfHostedRegistry - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/registry.enableSelfHostedRegistry" \ - -d '{ - "registryUrl": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/registry.enableSelfHostedRegistry", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-security.mdx b/apps/docs/content/docs/api/reference-api/reference-security.mdx deleted file mode 100644 index f4a385d6..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-security.mdx +++ /dev/null @@ -1,441 +0,0 @@ ---- -title: security -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## security-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/security.create" \ - -d '{ - "applicationId": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/security.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## security-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/security.one?securityId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/security.one?securityId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## security-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/security.delete" \ - -d '{ - "securityId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/security.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## security-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/security.update" \ - -d '{ - "securityId": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/security.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-settings.mdx b/apps/docs/content/docs/api/reference-api/reference-settings.mdx deleted file mode 100644 index bf04b800..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-settings.mdx +++ /dev/null @@ -1,2949 +0,0 @@ ---- -title: settings -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## settings-reloadServer - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.reloadServer" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.reloadServer", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-reloadTraefik - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.reloadTraefik" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.reloadTraefik", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-toggleDashboard - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.toggleDashboard" \ - -d '{ - "enableDashboard": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.toggleDashboard", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanUnusedImages - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanUnusedImages" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanUnusedImages", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanUnusedVolumes - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanUnusedVolumes" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanUnusedVolumes", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanStoppedContainers - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanStoppedContainers" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanStoppedContainers", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanDockerBuilder - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanDockerBuilder" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanDockerBuilder", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanDockerPrune - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanDockerPrune" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanDockerPrune", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanAll - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanAll" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanAll", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanMonitoring - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanMonitoring" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanMonitoring", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-saveSSHPrivateKey - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.saveSSHPrivateKey" \ - -d '{ - "sshPrivateKey": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.saveSSHPrivateKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-assignDomainServer - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Default: `"none"` - -Value in: `"letsencrypt" | "none"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.assignDomainServer" \ - -d '{ - "letsEncryptEmail": "string", - "host": "string", - "certificateType": "letsencrypt" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.assignDomainServer", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanSSHPrivateKey - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.cleanSSHPrivateKey" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.cleanSSHPrivateKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateDockerCleanup - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.updateDockerCleanup" \ - -d '{ - "enableDockerCleanup": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.updateDockerCleanup", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.readTraefikConfig" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.readTraefikConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.updateTraefikConfig" \ - -d '{ - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.updateTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readWebServerTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.readWebServerTraefikConfig" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.readWebServerTraefikConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateWebServerTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.updateWebServerTraefikConfig" \ - -d '{ - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.updateWebServerTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readMiddlewareTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.readMiddlewareTraefikConfig" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.readMiddlewareTraefikConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateMiddlewareTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.updateMiddlewareTraefikConfig" \ - -d '{ - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.updateMiddlewareTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-checkAndUpdateImage - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.checkAndUpdateImage" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.checkAndUpdateImage", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateServer - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.updateServer" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.updateServer", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-getDokployVersion - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.getDokployVersion" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.getDokployVersion", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readDirectories - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.readDirectories" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.readDirectories", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateTraefikFile - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.updateTraefikFile" \ - -d '{ - "path": "string", - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.updateTraefikFile", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readTraefikFile - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.readTraefikFile?path=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.readTraefikFile?path=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-getIp - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.getIp" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.getIp", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-getOpenApiDocument - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.getOpenApiDocument" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.getOpenApiDocument", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readTraefikEnv - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.readTraefikEnv" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.readTraefikEnv", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-writeTraefikEnv - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/settings.writeTraefikEnv" \ - -d '{ - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.writeTraefikEnv", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-haveTraefikDashboardPortEnabled - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/settings.haveTraefikDashboardPortEnabled" -``` - - - - - -```js -fetch("http://localhost:3000/api/settings.haveTraefikDashboardPortEnabled", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-sshKey.mdx b/apps/docs/content/docs/api/reference-api/reference-sshKey.mdx deleted file mode 100644 index 751ac5c0..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-sshKey.mdx +++ /dev/null @@ -1,634 +0,0 @@ ---- -title: sshKey -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## sshKey-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/sshKey.create" \ - -d '{ - "name": "string", - "description": "string", - "publicKey": "string", - "privateKey": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/sshKey.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## sshKey-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/sshKey.remove" \ - -d '{ - "sshKeyId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/sshKey.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## sshKey-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/sshKey.one?sshKeyId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/sshKey.one?sshKeyId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## sshKey-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/sshKey.all" -``` - - - - - -```js -fetch("http://localhost:3000/api/sshKey.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## sshKey-generate - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Value in: `"rsa" | "ed25519"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/sshKey.generate" \ - -d '{ - "type": "rsa" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/sshKey.generate", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## sshKey-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/api/sshKey.update" \ - -d '{ - "name": "string", - "description": "string", - "lastUsedAt": "string", - "sshKeyId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/api/sshKey.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/api/reference-api/reference-user.mdx b/apps/docs/content/docs/api/reference-api/reference-user.mdx deleted file mode 100644 index d690718b..00000000 --- a/apps/docs/content/docs/api/reference-api/reference-user.mdx +++ /dev/null @@ -1,299 +0,0 @@ ---- -title: user -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## user-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/user.all" -``` - - - - - -```js -fetch("http://localhost:3000/api/user.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## user-byAuthId - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/user.byAuthId?authId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/user.byAuthId?authId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## user-byUserId - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/api/user.byUserId?userId=string" -``` - - - - - -```js -fetch("http://localhost:3000/api/user.byUserId?userId=string", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/cli/commands/application.cn.mdx b/apps/docs/content/docs/cli/commands/application.cn.mdx deleted file mode 100644 index 29e1dbd2..00000000 --- a/apps/docs/content/docs/cli/commands/application.cn.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 应用程序 -description: 使用 Dokploy CLI 管理应用程序的指南 ---- - - -Dokploy CLI 可用于创建、部署和管理应用程序。 - -## 要求 - -需要先使用 Dokploy CLI 进行身份验证。 - -## 命令 - -1. `dokploy app create` - 创建一个新应用程序。 -2. `dokploy app delete` - 删除一个应用程序。 -3. `dokploy app deploy` - 部署一个应用程序。 -4. `dokploy app stop` - 停止一个正在运行的应用程序。 diff --git a/apps/docs/content/docs/cli/commands/application.mdx b/apps/docs/content/docs/cli/commands/application.mdx deleted file mode 100644 index 0774fe63..00000000 --- a/apps/docs/content/docs/cli/commands/application.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Application -description: A guide to using the Dokploy CLI to manage applications ---- - - -The Dokploy CLI can be used to create, deploy, and manage applications. - -## Requirements - -Is required to be already authenticated with the Dokploy CLI. - - -## Commands - -1. `dokploy app create` - Create a new application. -2. `dokploy app delete` - Delete an application. -3. `dokploy app deploy` - Deploy an application. -4. `dokploy app stop` - Stop a running application. - diff --git a/apps/docs/content/docs/cli/commands/authentication.cn.mdx b/apps/docs/content/docs/cli/commands/authentication.cn.mdx deleted file mode 100644 index b4a4d544..00000000 --- a/apps/docs/content/docs/cli/commands/authentication.cn.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: 身份验证 -description: 使用 Dokploy CLI 进行身份验证的指南 ---- - -Dokploy CLI 使用基于令牌的身份验证系统。要进行身份验证,您需要创建一个访问令牌并安全存储它。 - -## 创建访问令牌 - -要创建访问令牌,首先您需要具备相应的权限,如果您是管理员,则不需要权限。 - -默认情况下,访问令牌不会过期。 - -您可以前往 `dashboard/settings/profile` 并点击 `生成` 按钮。 - - - -## 存储访问令牌 - -当您创建访问令牌时,Dokploy 将自动生成一个包含访问令牌和服务器 URL 的 config.json 文件。 - -## 命令 - -1. `dokploy authenticate` - 使用 Dokploy CLI 进行身份验证。 -2. `dokploy verify` - 验证访问令牌是否有效。 diff --git a/apps/docs/content/docs/cli/commands/authentication.mdx b/apps/docs/content/docs/cli/commands/authentication.mdx deleted file mode 100644 index 0783a21b..00000000 --- a/apps/docs/content/docs/cli/commands/authentication.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Authentication -description: A guide to authenticating with the Dokploy CLI ---- - -The Dokploy CLI uses a token-based authentication system. To authenticate, you'll need to create an access token and store it securely. - -## Creating an Access Token - -To create an access token, first you need to have permissions if you are admin you don't need permissions. - -by default access token never expires. - -You can go to `dashboard/settings/profile` and click on the `Generate` button. - - - - -## Storing the Access Token - -Dokploy when you create an access token automatically will generate a config.json with the access token and the server url. - - - -## Commands - -1. `dokploy authenticate` - Authenticate with the Dokploy CLI. -2. `dokploy verify` - Verify if the access token is valid. - diff --git a/apps/docs/content/docs/cli/commands/databases.cn.mdx b/apps/docs/content/docs/cli/commands/databases.cn.mdx deleted file mode 100644 index 794166f4..00000000 --- a/apps/docs/content/docs/cli/commands/databases.cn.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: 数据库 -description: 使用 Dokploy CLI 管理数据库的指南 ---- - -Dokploy CLI 可用于创建、部署和管理数据库。 - -## 需求 - -需要先进行 Dokploy CLI 的身份验证。 - -## 命令 - -### MariaDB - -1. `dokploy database mariadb create` - 创建一个新的 MariaDB 数据库。 -2. `dokploy database mariadb delete` - 删除一个 MariaDB 数据库。 -3. `dokploy database mariadb deploy` - 部署一个 MariaDB 数据库。 -4. `dokploy database mariadb stop` - 停止运行中的 MariaDB 数据库。 - -### PostgreSQL -1. `dokploy database postgresql create` - 创建一个新的 PostgreSQL 数据库。 -2. `dokploy database postgresql delete` - 删除一个 PostgreSQL 数据库。 -3. `dokploy database postgresql deploy` - 部署一个 PostgreSQL 数据库。 -4. `dokploy database postgresql stop` - 停止运行中的 PostgreSQL 数据库。 - -### MySQL -1. `dokploy database mysql create` - 创建一个新的 MySQL 数据库。 -2. `dokploy database mysql delete` - 删除一个 MySQL 数据库。 -3. `dokploy database mysql deploy` - 部署一个 MySQL 数据库。 -4. `dokploy database mysql stop` - 停止运行中的 MySQL 数据库。 - -### MongoDB -1. `dokploy database mongodb create` - 创建一个新的 MongoDB 数据库。 -2. `dokploy database mongodb delete` - 删除一个 MongoDB 数据库。 -3. `dokploy database mongodb deploy` - 部署一个 MongoDB 数据库。 -4. `dokploy database mongodb stop` - 停止运行中的 MongoDB 数据库。 - -### Redis -1. `dokploy database redis create` - 创建一个新的 Redis 数据库。 -2. `dokploy database redis delete` - 删除一个 Redis 数据库。 -3. `dokploy database redis deploy` - 部署一个 Redis 数据库。 -4. `dokploy database redis stop` - 停止运行中的 Redis 数据库。 diff --git a/apps/docs/content/docs/cli/commands/databases.mdx b/apps/docs/content/docs/cli/commands/databases.mdx deleted file mode 100644 index ee2516a7..00000000 --- a/apps/docs/content/docs/cli/commands/databases.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Databases -description: A guide to using the Dokploy CLI to manage databases ---- - -The Dokploy CLI can be used to create, deploy, and manage databases. - -## Requirements - -Is required to be already authenticated with the Dokploy CLI. - - -## Commands - -### MariaDB - -1. `dokploy database mariadb create` - Create a new mariadb database. -2. `dokploy database mariadb delete` - Delete an mariadb database. -3. `dokploy database mariadb deploy` - Deploy a mariadb database. -4. `dokploy database mariadb stop` - Stop a running mariadb database. - -### PostgreSQL -1. `dokploy database postgresql create` - Create a new postgresql database. -2. `dokploy database postgresql delete` - Delete an postgresql database. -3. `dokploy database postgresql deploy` - Deploy a postgresql database. -4. `dokploy database postgresql stop` - Stop a running postgresql database. - -### MySQL -1. `dokploy database mysql create` - Create a new mysql database. -2. `dokploy database mysql delete` - Delete an mysql database. -3. `dokploy database mysql deploy` - Deploy a mysql database. -4. `dokploy database mysql stop` - Stop a running mysql database. - -### MongoDB -1. `dokploy database mongodb create` - Create a new mongodb database. -2. `dokploy database mongodb delete` - Delete an mongodb database. -3. `dokploy database mongodb deploy` - Deploy a mongodb database. -4. `dokploy database mongodb stop` - Stop a running mongodb database. - -### Redis -1. `dokploy database redis create` - Create a new redis database. -2. `dokploy database redis delete` - Delete an redis database. -3. `dokploy database redis deploy` - Deploy a redis database. -4. `dokploy database redis stop` - Stop a running redis database. - diff --git a/apps/docs/content/docs/cli/commands/project.cn.mdx b/apps/docs/content/docs/cli/commands/project.cn.mdx deleted file mode 100644 index 4951e171..00000000 --- a/apps/docs/content/docs/cli/commands/project.cn.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: 项目 -description: 使用 Dokploy CLI 管理项目的指南 ---- - -Dokploy CLI 可用于创建、部署和管理项目。 - -## 需求 - -需要先进行 Dokploy CLI 的身份验证。 - -## 命令 - -1. `dokploy project create` - 创建一个新项目。 -2. `dokploy project info` - 获取有关项目的信息。 -3. `dokploy project list` - 列出所有项目。 diff --git a/apps/docs/content/docs/cli/commands/project.mdx b/apps/docs/content/docs/cli/commands/project.mdx deleted file mode 100644 index efe09ebc..00000000 --- a/apps/docs/content/docs/cli/commands/project.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Project -description: A guide to using the Dokploy CLI to manage projects ---- - - -The Dokploy CLI can be used to create, deploy, and manage projects. - -## Requirements - -Is required to be already authenticated with the Dokploy CLI. - -## Commands - -1. `dokploy project create` - Create a new project. -2. `dokploy project info` - Get information about a project. -3. `dokploy project list` - List all projects. - diff --git a/apps/docs/content/docs/cli/index.cn.mdx b/apps/docs/content/docs/cli/index.cn.mdx deleted file mode 100644 index c61ffc40..00000000 --- a/apps/docs/content/docs/cli/index.cn.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: 介绍 -description: 使用 Dokploy 命令行界面的指南 ---- - -Dokploy CLI 是一个用于远程管理您的 Dokploy 服务器的命令行工具。它简化了应用程序和数据库的创建、部署和管理。 - -## 安装 - -```bash -npm install -g @dokploy/cli -``` - -## 用法 - -```bash -dokploy COMMAND -``` -要获取特定命令的帮助: - -```bash -dokploy COMMAND --help -``` diff --git a/apps/docs/content/docs/cli/index.mdx b/apps/docs/content/docs/cli/index.mdx deleted file mode 100644 index ee1c0d7b..00000000 --- a/apps/docs/content/docs/cli/index.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Introduction -description: A guide to using the Dokploy command-line interface ---- - -Dokploy CLI is a command-line tool for remotely managing your Dokploy server. It simplifies creating, deploying, and managing applications and databases. - -## Installation - -```bash -npm install -g @dokploy/cli -``` - -## Usage - -```bash -dokploy COMMAND -``` -To get help on a specific command: - -```bash -dokploy COMMAND --help -``` diff --git a/apps/docs/content/docs/cli/meta.cn.json b/apps/docs/content/docs/cli/meta.cn.json deleted file mode 100644 index d2ed7a9b..00000000 --- a/apps/docs/content/docs/cli/meta.cn.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "CLI", - "root": true, - "pages": [ - "---开始使用---", - "index", - "---命令---", - "commands/authentication", - "commands/project", - "commands/application", - "commands/databases" - ] -} diff --git a/apps/docs/content/docs/cli/meta.json b/apps/docs/content/docs/cli/meta.json deleted file mode 100644 index 3f97122f..00000000 --- a/apps/docs/content/docs/cli/meta.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "title": "CLI", - "root": true, - "pages": [ - "---Get Started---", - "index", - "---Commands---", - "commands/authentication", - "commands/project", - "commands/application", - "commands/databases" - ] -} diff --git a/apps/docs/content/docs/core/application/advanced.cn.mdx b/apps/docs/content/docs/core/application/advanced.cn.mdx deleted file mode 100644 index 44c7d6a5..00000000 --- a/apps/docs/content/docs/core/application/advanced.cn.mdx +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: 高级功能 -description: 了解如何使用应用程序中的高级功能。 ---- - -本节旨在为需要在 Dokploy 中管理复杂配置和编排设置的高级用户提供支持。在这里,您可以执行自定义命令、管理集群副本、选择 Docker 注册表以及配置 Docker Swarm 设置。 - -### 运行命令 - -- **目的**:允许用户在容器内直接执行自定义 Shell 命令。 -- **用法**:在提供的字段中输入需要运行的命令,然后单击“保存”以在容器环境中执行。这一工具特别适合调试或特定管理任务。 - -### 集群设置 - -- **目的**:管理应用程序在多个服务器或节点上的扩展和分布。 -- **副本数**:设置应运行的应用程序实例数量。 -- **注册表选择**:选择将从中提取容器映像的 Docker 注册表。这对于确保在部署过程中使用正确的映像至关重要。 - -#### 重要提示 -修改集群设置后,请始终点击“重新部署”以应用更改。 - -### Swarm 设置 - -Swarm 设置允许详细配置容器在 Docker Swarm 中的编排方式。 - -#### 健康检查 - -- **目的**:确保容器平稳运行,并在失败时重新启动它们。 -- **配置**:指定测试命令、间隔、超时、启动时间和重试次数等参数。 - -#### 重启策略 - -定义容器在退出或失败时的处理方式,配置如下: - -- **条件**:指定应在何种条件下发生重启。 -- **延迟**:设置重启之间的时间延迟。 -- **最大尝试次数**:限制重启尝试的次数。 -- **窗口**:定义用于评估重启策略的时间窗口。 - -#### 更新配置 - -管理 Swarm 中服务的部署和更新过程,配置如下: - -- **并行性**:同时更新的容器数量。 -- **延迟**:更新之间的时间。 -- **失败操作**:更新失败时采取的操作。 -- **监控**:更新后监控容器的持续时间。 -- **最大失败比例**:在更新被视为失败之前,允许失败的容器比例。 -- **顺序**:在更新过程中停止和启动容器的顺序。 - -#### 放置 - -根据特定规则和偏好控制容器在 Swarm 中的位置,配置如下: - -- **约束条件**:容器放置在节点上必须满足的条件。 -- **偏好设置**:在节点之间均匀分配容器的放置偏好。 - -### 回滚配置 - -管理更新失败时服务的回滚过程,配置如下: - -- **并行性**:同时回滚的容器数量。 -- **延迟**:回滚之间的时间。 -- **失败操作**:回滚失败时采取的操作。 -- **监控**:回滚后监控容器的持续时间。 -- **最大失败比例**:在回滚被视为失败之前,允许失败的容器比例。 -- **顺序**:在回滚过程中停止和重新启动容器的顺序。 - -### 模式 - -定义服务在 Swarm 中的复制方式,配置如下: - -- **复制模式**:服务根据指定的设置在节点上复制。 -- **副本数**:每个服务的副本数量。 -- **全局模式**:每个节点运行服务的单个实例。 -- **复制作业**:以复制的方式运行作业。 -- **最大并发**:同时运行的作业最大数量。 -- **总完成次数**:作业需要完成的总次数。 - -### 网络 - -配置服务的网络设置,配置如下: - -- **目标**:指定网络名称。 -- **别名**:为网络提供别名。 -- **驱动程序选项**:网络驱动程序选项,如 MTU 大小和主机绑定。 - -### 标签 - -为容器分配元数据以帮助识别和组织,配置如下: - -- **标签**:分配给服务的键值对。例如: -1. `com.example.app.name`: "my-app" -2. `com.example.app.version`: "1.0.0" - -### 注意 -修改 Swarm 设置需要谨慎考虑,因为不正确的配置可能会干扰整个容器编排。始终确保您理解所做更改的影响。 - -## 资源 - -管理分配给您的应用程序或数据库的内存和 CPU 资源。 - -- **内存保留**:保证应用程序的最小内存量。 -- **内存限制**:应用程序可以使用的最大内存量。 -- **CPU 限制**:应用程序可以使用的最大 CPU 单位数量。 -- **CPU 保留**:为应用程序保留的最小 CPU 单位数量。 - -### 卷/挂载 - -配置应用程序的持久存储,以确保数据在容器重启和部署之间保持完整。 - -**绑定挂载**:将主机文件或目录映射到容器文件或目录。通常用于特定配置或数据库。 -1. **主机路径**:主机上的路径。 -2. **挂载路径**:容器中的路径。 - -**卷挂载**:使用 Docker 管理的卷,比绑定挂载更易于备份和迁移。 -1. **卷名称**:Docker 管理的卷名称。 -2. **挂载路径**:容器中挂载卷的路径。 - -**文件挂载**:专门用于单个文件,适用于配置文件。 -1. **内容**:要存储在文件中的内容。 -2. **挂载路径**:容器中放置文件的路径。 - -文件挂载是 Dokploy 的一个功能,它在项目内部的 `files` 文件夹中创建一个文件,因此每次部署项目时都会重新创建。 - - - - - -### 重定向 - -根据指定的规则将请求重定向到应用程序的另一个 URL,提高导航效率和 SEO。 - -- **正则表达式**:输入一个正则表达式以匹配需要重定向的 URL。 -- **替换**:指定流量应重定向到的目标 URL。 -- **永久性**:启用此选项以应用永久性 (HTTP 301) 重定向,指示浏览器和搜索引擎页面已永久移动。 - -#### 示例 -要将所有流量从 "http://localhost" 重定向到 "http://mydomain",请将正则表达式设置为 `http://localhost/(.*)`,并将替换设置为 `http://mydomain/$1`。 - -### 安全 - -为您的应用程序添加基本身份验证以限制访问。 - -- **用户名**:输入用户名。 -- **密码**:输入密码。 - -#### 重要提示 -添加基本身份验证将在允许访问应用程序之前提示用户输入用户名和密码。在需要额外安全层的环境中使用此功能。 - -### 端口 - -通过配置网络端口将应用程序暴露于互联网,允许外部访问。 - -- **发布端口**:将路由流量到您的应用程序的主机上的端口号。 -- **目标端口**:容器内应用程序使用的端口号。 -- **协议**:根据应用程序的要求选择 TCP 或 UDP。 - -#### 重要提示 -确保发布端口不会与主机上的其他服务冲突,以避免端口绑定错误。此外,此端口主要用于从外部访问应用程序,例如 `your-ip:port`,而不是通过域访问应用程序。 - -### Traefik - -提供了一种动态且强大的方法来管理 HTTP 流量到您的服务,包括负载均衡和 SSL 终止。 - -- **规则**:使用 Traefik 强大的基于规则的配置系统定义复杂的路由、负载均衡和安全配置。 diff --git a/apps/docs/content/docs/core/application/advanced.mdx b/apps/docs/content/docs/core/application/advanced.mdx deleted file mode 100644 index 9847eefd..00000000 --- a/apps/docs/content/docs/core/application/advanced.mdx +++ /dev/null @@ -1,173 +0,0 @@ ---- -title: Advanced -description: Learn how to use advanced features in your application. ---- - -This section is designed for experienced users who need to manage complex configurations and orchestration settings in Dokploy. Here, you can execute custom commands, manage cluster replicas, select Docker registries, and configure Docker Swarm settings. - -### Run Command - -- **Purpose**: Allows users to execute custom shell commands directly within the container. -- **Usage**: Enter the command you need to run in the provided field and click 'Save' to execute it within the container environment. This tool is particularly useful for debugging or specific administrative tasks. - -### Cluster Settings - -- **Purpose**: Manages the scaling and distribution of the application across multiple servers or nodes. -- **Replicas**: Set the number of instances of your application that should be running. -- **Registry Selection**: Choose the Docker registry from which your container images will be pulled. This is crucial for ensuring that the correct images are used during deployment. - -#### Important Note -Always click 'Redeploy' after modifying the cluster settings to apply the changes. - -### Swarm Settings - -Swarm settings allow for detailed configuration of how containers are orchestrated within the Docker Swarm. - -#### Health Check - -- **Purpose**: Ensures that containers are running smoothly and restarts them if they fail. -- **Configuration**: Specify parameters like test commands, intervals, timeouts, start periods, and retries. - -#### Restart Policy - -Defines how containers should be handled if they exit or fail, the configuration is as follows: - -- **Condition**: Specifies under what condition a restart should occur. -- **Delay**: Sets the time delay between restarts. -- **Max Attempts**: Limits the number of restart attempts. -- **Window**: Defines the time window used to evaluate the restart policy. - -#### Update Config - -Manages the deployment and update process of services in the swarm, the configuration is as follows: - - -- **Parallelism**: Number of containers to update simultaneously. -- **Delay**: Time between updates. -- **Failure Action**: Action to take if an update fails. -- **Monitor**: Duration to monitor a container after an update. -- **Max Failure Ratio**: The fraction of containers that are allowed to fail before the update is considered a failure. -- **Order**: The order in which containers are stopped and started during an update. - -#### Placement - -Controls where containers are placed within the swarm based on specific rules and preferences, the configuration is as follows: - -- **Constraints**: Conditions that must be met for a container to be placed on a node. -- **Preferences**: Preferences for placing containers across nodes to spread load evenly. - -### Rollback Config - -Manages the rollback process for services when updates fail, the configuration is as follows: - -- **Parallelism**: Number of containers to rollback simultaneously. -- **Delay**: Time between rollbacks. -- **FailureAction**: Action to take if a rollback fails. -- **Monitor**: Duration to monitor a container after a rollback. -- **MaxFailureRatio**: The fraction of containers that are allowed to fail before the rollback is considered a failure. -- **Order**: The order in which containers are stopped and restarted during a rollback. - -### Mode - -Defines how services are replicated within the swarm, the configuration is as follows: - -- **Replicated**: Services are replicated across nodes as specified. -- **Replicas**: Number of replicas per service. -- **Global**: A single instance of the service runs on every node. -- **ReplicatedJob**: Runs a job in a replicated manner. -- **MaxConcurrent**: Maximum number of jobs running concurrently. -- **TotalCompletions**: Total number of times the jobs need to complete. - -### Network - -Configures network settings for the services, the configuration is as follows: - -- **Target**: Specifies the network name. -- **Aliases**: Provides aliases for the network. -- **DriverOpts**: Network driver options like MTU size and host binding. - -### Labels - -Assigns metadata to containers to help identify and organize them, the configuration is as follows: - -- **Labels**: Key-value pairs assigned to the service. For example: -1. `com.example.app.name`: "my-app" -2. `com.example.app.version`: "1.0.0" - - -### Note -Modifying Swarm Settings requires careful consideration as incorrect configurations can disrupt the entire container orchestration. Always ensure you understand the implications of the changes you are making. - - -## Resources - -Manage the memory and CPU resources allocated to your applications or databases. - -- **Memory Reservation**: The minimum amount of memory guaranteed to the application. -- **Memory Limit**: The maximum amount of memory the application can use. -- **CPU Limit**: The maximum number of CPU units that the application can utilize. -- **CPU Reservation**: The minimum number of CPU units reserved for the application. - - -### Volumes/Mounts - -Configure persistent storage for your application to ensure data remains intact across container restarts and deployments. - - -**Bind Mount**: Maps a host file or directory to a container file or directory. Typically used for specific configurations or databases. -1. **Host Path**: Path on the host. -2. **Mount Path**: Path in the container. - -**Volume Mount**: Uses Docker-managed volumes that are easier to back up and migrate than bind mounts. -1. **Volume Name**: Name of the Docker-managed volume. -2. **Mount Path**: Path in the container where the volume is mounted. - -**File Mount**: Specifically for single files, useful for configuration files. -1. **Content**: The content to store in the file. -2. **Mount Path**: Path in the container where the file is placed. - -File mounts are a dokploy features, this create a file in a folder called `files` inside your project, so it recreates every single time you deploy your project. - - - - - -### Redirects - -Redirect requests to your application to another URL based on specified rules, enhancing navigational efficiency and SEO. - -- **Regex**: Enter a regular expression to match the URLs that need redirecting. -- **Replacement**: Specify the target URL where traffic should be redirected. -- **Permanent**: Toggle this option to apply a permanent (HTTP 301) redirection, indicating to browsers and search engines that the page has moved permanently. - -#### Example -To redirect all traffic from "http://localhost" to "http://mydomain", set the Regex as `http://localhost/(.*)` and the Replacement as `http://mydomain/$1`. - - -### Security - -Add basic authentication to your application to restrict access. - -- **Username**: Enter a username. -- **Password**: Enter a password. - -#### Important Note -Adding basic authentication will prompt users for a username and password before allowing access to the application. Use this for environments where an additional layer of security is required. - - -### Ports - -Expose your application to the internet by configuring network ports, allowing external access. - -- **Published Port**: The port number on the host that will route traffic to your application. -- **Target Port**: The port number inside the container that the application uses. -- **Protocol**: Choose between TCP and UDP based on your application's requirements. - -#### Important Note -Ensure that the published port does not conflict with other services on the host to avoid port binding errors, also this port is used mostly for accesing the application from the outside, eg your-ip:port, this is not for accessing the application trought a domain. - -### Traefik - -Provides a dynamic and robust method to manage HTTP traffic to your services, including load balancing and SSL termination. - -- **Rules**: Define complex routing, load balancing, and security configurations using Traefik's powerful rule-based configuration system. diff --git a/apps/docs/content/docs/core/application/auto-deploy.cn.mdx b/apps/docs/content/docs/core/application/auto-deploy.cn.mdx deleted file mode 100644 index 9f221c06..00000000 --- a/apps/docs/content/docs/core/application/auto-deploy.cn.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: 自动部署 -description: "了解如何将您的应用程序自动部署到 Dokploy。" ---- - -将应用程序自动部署到 Dokploy 可以通过两种主要方法实现:使用 Webhooks 或 Dokploy API。每种方法都支持各种平台,并提供简化的部署流程。 - -## GitHub - -对于 GitHub,我们提供无需任何配置的自动部署。这将在您推送到代码库时自动部署您的应用程序。 - -## Webhook URL - -Webhooks 允许您在源代码库中进行更改时自动部署应用程序。 - -- GitHub -- GitLab -- Bitbucket -- Gitea -- DockerHub - -### 配置步骤 - -1. **启用自动部署**:在 Dokploy 的应用程序设置的一般选项卡中切换“自动部署”按钮。 -2. **获取 Webhook URL**:从部署日志中找到 Webhook URL。 - - - -3. **配置您的代码库**: - - 转到您选择的平台上的代码库设置。 - - 添加由 Dokploy 提供的 webhook URL。 - - 确保设置与触发 webhook 所需的配置匹配。 - - - -#### 重要提示 - -- **分支匹配**:使用基于 Git 的提供商(GitHub、GitLab 等)时,请确保 Dokploy 中配置的分支与您打算推送的分支匹配。不匹配将导致“分支不匹配”错误。 -- **Docker 标签**:对于使用 DockerHub 的部署,请确保推送的标签与 Dokploy 中指定的标签匹配。 -- 所有提供商的步骤都是相同的。 - -### API 方法 - -通过 Dokploy API 从任何地方以编程方式部署您的应用程序。 - -### 使用 API 部署的步骤 - -步骤: - -1. **生成令牌**:在 Dokploy 的个人资料设置中创建一个 API 令牌。 -2. **获取应用程序 ID**: - -```http -curl -X 'GET' \ - 'https://your-domain/api/project.all' \ - -H 'accept: application/json' \ - -H 'Authorization: Bearer ' -``` - -此命令列出所有项目和服务。确定您希望部署的应用程序的 applicationId。 - -3. **触发部署**: - -```http -curl -X 'POST' \ - 'https://your-domain/api/application.deploy' \ - -H 'accept: application/json' \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer ' \ - -d '{ - "applicationId": "string" -}' -``` - -此 API 方法允许灵活的、可编程的部署选项,适用于自动化系统或不便于直接代码库集成的情况。通过这种方式,您可以从任何地方部署您的应用程序,您可以使用 webhook URL 或 API。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/application/auto-deploy.mdx b/apps/docs/content/docs/core/application/auto-deploy.mdx deleted file mode 100644 index de398767..00000000 --- a/apps/docs/content/docs/core/application/auto-deploy.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Auto Deploy -description: "Learn how to automatically deploy your application to Dokploy." ---- - -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. - -## 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 application whenever changes are made in your source repository. - -- GitHub -- GitLab -- Bitbucket -- Gitea -- DockerHub - -### 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. - - - -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. - - - -#### 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. -- **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. - -### 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 Application ID**: - -```http -curl -X 'GET' \ - 'https://your-domain/api/project.all' \ - -H 'accept: application/json' - -H 'Authorization: Bearer ' -``` - -This command lists all projects and services. Identify the applicationId for the application you wish to deploy. - -3. **Trigger Deployment**: - -```http -curl -X 'POST' \ - 'https://your-domain/api/application.deploy' \ - -H 'accept: application/json' \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer ' \ - -d '{ - "applicationId": "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. diff --git a/apps/docs/content/docs/core/application/build-type.cn.mdx b/apps/docs/content/docs/core/application/build-type.cn.mdx deleted file mode 100644 index cc50f409..00000000 --- a/apps/docs/content/docs/core/application/build-type.cn.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: 构建类型 -description: "了解 Dokploy 中可用的不同构建类型,包括 Nixpack、Dockerfile 和 Building pack 选项。" ---- - -import { Callout } from 'fumadocs-ui/components/callout'; - -## 构建类型 - -Dokploy 提供了三种不同的构建类型来部署应用程序,每种类型都适合不同的开发需求和偏好。 - -### Nixpacks - -这是 Dokploy 中的默认构建类型。当您选择 Nixpack 时,Dokploy 会将您的应用程序构建为 Nixpack,该 Nixpack 针对易用性和效率进行了优化。 - -### Dockerfile - -如果您的项目包含 Dockerfile,您可以指定其路径。 Dokploy 将使用此 Dockerfile 直接构建您的应用程序,让您完全控制构建环境和依赖项。 - -### Buildpack - -Dokploy 支持两种类型的构建包: - -- **Heroku**: 这些构建包改编自 Heroku 流行的云平台,旨在兼容性和易于迁移。 -- **Paketo**: 提供利用现代标准和实践来构建应用程序的云原生构建包。 - - - **Tip:** - 我们建议使用“Nixpack”构建类型,因为它是大多数应用程序最简单、最常用的选项。 - - -通过选择适当的构建类型,您可以定制部署过程,以最适合您的应用程序的要求和您的操作偏好。 diff --git a/apps/docs/content/docs/core/application/build-type.mdx b/apps/docs/content/docs/core/application/build-type.mdx deleted file mode 100644 index f65092d1..00000000 --- a/apps/docs/content/docs/core/application/build-type.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Build Type -description: "Learn about the different build types available in Dokploy, including Nixpacks, Dockerfile, and Buildpack options." - ---- - -import { Callout } from 'fumadocs-ui/components/callout'; - - -Dokploy offers three distinct build types for deploying applications, each suited to different development needs and preferences. - -### Nixpacks - -This is the default build type in Dokploy. When you select Nixpacks, Dokploy builds your application as a Nixpack, which is optimized for ease of use and efficiency. - -You can read more about Nixpacks [here](https://nixpacks.com/). - -### Dockerfile - -If your project includes a Dockerfile, you can specify its path. Dokploy will use this Dockerfile to build your application directly, giving you full control over the build environment and dependencies. - -### Buildpack - -Dokploy supports two types of buildpacks: - -- **Heroku**: Adapted from Heroku's popular cloud platform, these buildpacks are designed for compatibility and ease of migration. -- **Paketo**: Provides cloud-native buildpacks that leverage modern standards and practices for building applications. - - - **Tip:** We recommend using the `Nixpacks` build type as it is the most - straightforward and commonly used option for most applications. - - -By choosing the appropriate build type, you can tailor the deployment process to best fit your application's requirements and your operational preferences. diff --git a/apps/docs/content/docs/core/application/domains.cn.mdx b/apps/docs/content/docs/core/application/domains.cn.mdx deleted file mode 100644 index e3b84956..00000000 --- a/apps/docs/content/docs/core/application/domains.cn.mdx +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: 域名 -description: '域名' ---- - -本节概述了如何为 Dokploy 中的应用程序配置域名,确保您的应用程序可以通过自定义 URL 进行访问。 - -### 添加域名 - -将自定义域名与您的应用程序关联,使其能够通过互联网访问。 - -- **主机**:您希望链接到应用程序的域名(例如,`api.dokploy.com`)。 -- **路径**:应用程序在域名内应可访问的具体路径。 -- **容器端口**:域名应路由到容器上的端口。 -- **证书**:选择是否通过 SSL/TLS 证书来保护域名。Dokploy 支持通过 Let's Encrypt 自动提供 SSL 证书。 -- **HTTPS**:启用此选项以为您的域名启用 HTTPS,提供安全的加密连接。 - -#### 添加域名的步骤 -1. 点击“添加域名”。 -2. 填写域名详细信息,包括主机、路径和端口。 -3. 选择启用 HTTPS 并选择证书选项。 -4. 点击“创建”以应用设置。 - -### 生成域名 - -快速为开发或测试目的设置域名,无需注册域名。 - -- **生成 TraefikMe 域名**:创建由 TraefikMe 提供的免费域名。这非常适合在购买正式域名之前进行测试或临时访问。 - -#### 生成域名的步骤 -1. 点击“生成域名”。 -2. 选择“生成 TraefikMe 域名”以快速设置。 -3. 将自动为您的应用程序分配一个域名。 - -### 管理域名 - -- **查看和修改**:现有域名会列出,您可以编辑设置或删除它们。 -- **详细信息**:每个域名条目显示已配置的主机、路径、端口以及 HTTPS 是否启用。 - -### 注意事项 - -正确的域名配置对于应用程序的可访问性和安全性至关重要。始终验证域名设置,并确保 DNS 配置正确指向正确的 IP 地址。启用 HTTPS 以增强安全性和信任,特别是在生产环境中。 - -### 关于容器端口的重要说明 - -域名设置中指定的“容器端口”专门用于通过 Traefik 将流量路由到正确的应用程序容器,并不会直接将端口暴露给互联网。这与“高级 -> 端口”部分中的端口设置根本不同,后者用于直接暴露应用程序端口。域名设置中的容器端口确保 Traefik 可以根据域名配置内部将流量引导到容器内的指定端口。 diff --git a/apps/docs/content/docs/core/application/domains.mdx b/apps/docs/content/docs/core/application/domains.mdx deleted file mode 100644 index 3aa9eb5d..00000000 --- a/apps/docs/content/docs/core/application/domains.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Domains -description: Domains ---- - -This section outlines how to configure domains for your applications in Dokploy, ensuring that your applications are accessible via custom URLs. - - -### Add Domain - -Associate custom domains with your application to make it accessible over the internet. - -- **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. - -#### 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 - -Proper domain configuration is crucial for the accessibility and security of your application. Always verify domain settings and ensure that DNS configurations are properly set up to point to the correct IP addresses. Enable HTTPS to enhance security and trust, especially for production environments. - - -### 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. diff --git a/apps/docs/content/docs/core/application/overview.cn.mdx b/apps/docs/content/docs/core/application/overview.cn.mdx deleted file mode 100644 index 9af2b827..00000000 --- a/apps/docs/content/docs/core/application/overview.cn.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: 概述 -description: "探索 Dokploy 中可用的多种部署方法,包括 GitHub、Git、Docker 以及通过 webhook 的自动化部署。" ---- - -Dokploy 提供了多种部署应用程序的方法,无论您使用 GitHub、任何 Git 提供商、Docker 还是自动化部署,都可以简化流程。 - -- Github -- Git (Any Git Provider) -- Docker - -## GitHub - -通过 GitHub 部署很简单: - -1. 在以下配置您的 GitHub 存储库 `/dashboard/settings/server`. -2. 创建应用程序时,Dokploy 会自动加载可用的存储库和分支。 - -## Git - -对于来自任何 Git 存储库(公共或私有)的部署,您可以使用 SSL 或 HTTPS: - -1. 提供存储库 URL。 -2. 指定您要部署的分支。 - -## Docker - -对于 Docker 部署: - -- 指定 Docker 镜像。对于私人存储库,您需要提供用户名和密码。 - -## 自动部署 - -设置自动部署: - -1. 导航至`deployments`选项卡并复制`Webhook URL`。 -2. 在 Git 提供商的设置中,将此 URL 粘贴到 Webhook URL 字段中。 -3. 选择应该触发部署的事件,例如`Push`。 -4. 配置后,任何指定的操作(例如推送新提交)都将自动触发部署。 - -Dokploy 支持 GitHub、GitLab、Bitbucket、Gitea 和 DockerHub 的 webhook。 diff --git a/apps/docs/content/docs/core/application/overview.mdx b/apps/docs/content/docs/core/application/overview.mdx deleted file mode 100644 index 9f881f6b..00000000 --- a/apps/docs/content/docs/core/application/overview.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Overview -description: "Explore the multiple deployment methods available in Dokploy, including GitHub, Git, Docker, and automated deployments via webhooks." ---- - -Applications in Dokploy are treated as a single service or container, making it easy and intuitive for users to work with each application in its own workspace. - -We offer multiple functionalities that you can use to manage your applications, such as: - -## General - -Configure the source of your code, the way your application is built, and also manage actions like deploying, updating, and deleting your application, and stopping it. - -## Environment - -If you need to assign environment variables to your application, you can do so here. - -In case you need to use a multiline variable, you can wrap it in double quotes just like this `'"here_is_my_private_key"'`. - -## Monitoring - -Four graphs will be displayed for the use of memory, CPU, disk, and network. Note that the information is only updated if you are viewing the current page, otherwise it will not be updated. - -## Logs - -If you want to see any important logs from your application that is running, you can do so here and determine if your application is displaying any errors or not. - -## Deployments - -You can view the last 10 deployments of your application. When you deploy your application in real time, a new deployment record will be created and it will gradually show you how your application is being built. - -We also offer a button to cancel deployments that are in queue. Note that those in progress cannot be canceled. - -We provide a webhook so that you can trigger your own deployments by pushing to your GitHub, Gitea, GitLab, Bitbucket, DockerHub repository. - -## Domains - -This is where you will assign your domain so that your application can be accessed from the internet. - -There are two ways to assign a domain: - -1. Create a custom domain. -2. Use a generated domain, we use traefik.me to generate free domains. - -## Advanced Settings - -This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container, managing Docker Swarm settings, and adjusting cluster settings such as replicas and registry selection. These tools are typically not required for standard application deployment and are intended for complex management and troubleshooting tasks. - -- **Run Command**: Execute custom commands directly in the container for advanced management or troubleshooting. -- **Cluster Settings**: Configure the number of replicas and select the Docker registry for your deployment to manage how your application scales and where it pulls images from. -- **Swarm Settings**: Access additional Docker Swarm configurations for detailed orchestration and scaling across multiple nodes. -- **Resources**: Adjust the CPU and memory allocation for your application. -- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application. -- **Ports**: Expose your application to the internet by configuring network ports. -- **Traefik**: Modify Traefik settings to manage HTTP request handling for your application. - -### Note -Adjust these settings carefully as incorrect configurations can significantly impact your application’s functionality and availability. diff --git a/apps/docs/content/docs/core/application/providers.cn.mdx b/apps/docs/content/docs/core/application/providers.cn.mdx deleted file mode 100644 index 0436fb7d..00000000 --- a/apps/docs/content/docs/core/application/providers.cn.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: 提供者 -description: '了解如何在您的应用程序中使用提供者。' ---- - -Dokploy 提供了几种部署方法,简化了无论您使用 GitHub、任何 Git 提供者、Docker 还是自动化部署的过程。 - -- GitHub -- Git(任何 Git 提供者) -- Docker - -## GitHub - -通过 GitHub 部署非常简单: - -1. 在 `/dashboard/settings/server` 中配置您的 GitHub 仓库。 -2. 在创建应用程序时,Dokploy 会自动检索可用的仓库和分支。 - -## Git - -对于来自任何 Git 仓库的部署,无论是公共还是私有,您可以使用 SSH 或 HTTPS: - -1. 输入仓库的 URL。 -2. 指定您希望部署的分支。 - -### 私有仓库 - -对于私有仓库,使用 SSH 进行身份验证。我们提供一个锁图标来生成 SSH 密钥。 - - - -然后,您可以复制 SSH 密钥并将其粘贴到您的帐户设置中。 - - - -这使您能够从私有仓库中拉取代码,这种方法在几乎所有提供者中都是一致的。 - -## Docker - -对于 Docker 部署: - -- 提供一个 Docker 镜像。对于私有仓库,输入用户名和密码。 diff --git a/apps/docs/content/docs/core/application/providers.mdx b/apps/docs/content/docs/core/application/providers.mdx deleted file mode 100644 index 4550be0a..00000000 --- a/apps/docs/content/docs/core/application/providers.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Providers -description: Learn how to use providers in your application. ---- - -Dokploy offers several deployment methods, streamlining the process whether you're utilizing GitHub, any Git provider, Docker, or automated deployments. - -- GitHub -- Gitlab -- Bitbucket -- Git (Any Git Provider) -- Docker - -## GitHub - -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. - -## Git - -For deployments from any Git repository, whether public or private, you can use either SSH or HTTPS: - -1. Enter the repository URL. -2. Specify the branch you wish to deploy. - -### Private Repositories - -For private repositories, authenticate using SSH. We provide a lock icon to generate an SSH key. - - - -You can then copy the SSH key and paste it into the settings of your account. - - - -This enables you to pull repositories from your private repository, a method consistent across nearly all providers. - -## Docker - -For Docker deployments: - -- Provide a Docker image. For private repositories, enter the username and password. diff --git a/apps/docs/content/docs/core/cluster/overview.cn.mdx b/apps/docs/content/docs/core/cluster/overview.cn.mdx deleted file mode 100644 index 4eebd900..00000000 --- a/apps/docs/content/docs/core/cluster/overview.cn.mdx +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: 集群(高级) -description: "了解如何在 Dokploy 中使用 Docker Swarm 设置和管理集群。" -sidebar: - order: 1 ---- - -对于大多数情况,除非您需要扩展应用程序,否则您可能不需要使用集群。集群是由多个节点组成的,它们协同工作以提供一个统一的服务。在 Dokploy 中,集群管理着一组服务器,共同协作以提供这一统一服务。 - -我们在后台使用 Traefik 来为应用程序进行流量负载均衡。 - -建议在使用集群之前先阅读 [Traefik 文档](https://doc.traefik.io/traefik/routing/providers/swarm/),以更好地理解它的工作原理。 - -要开始向您的集群添加节点,您需要一个注册表。节点需要注册表来拉取镜像。 - -## 要求 - -- 已安装 Dokploy 的服务器。 -- 用于存储镜像的注册表。 -- 用于添加为节点的额外服务器(VPS)。 - -## 注册表选项 - -我们提供两种方法将注册表添加到您的集群中: - -- **自定义注册表(免费)**:在您的服务器上设置私有注册表。 -- **外部注册表(付费)**:使用外部注册表,如 Docker Hub、DigitalOcean、AWS ECR 等。 - -您可以看到可以添加两种类型的注册表: - - - -## 向集群添加节点 - -一旦有了注册表,您可以通过以下步骤向集群添加节点: - -1. 点击 `Add Node` 按钮。 -2. 您将看到两个标签:`Worker` 和 `Manager`。 -3. 选择您要添加的节点类型。 -4. 按照提供的两步进行操作: - - 安装 Docker 引擎。 - - 安装 Dokploy 代理。这两个节点类型的步骤是相同的。 -5. 在新服务器上运行提供的命令。 -6. 运行命令后,进入 `server/settings/cluster`。您将在表格中看到 Worker 和 Manager 节点的条目。 - - - - - -## 部署应用程序 - -一旦您将节点连接到集群,您可以按以下步骤部署应用程序: - -1. 在项目中创建一个应用程序。 -2. Fork 仓库 [Dokploy/swarm-test](https://github.com/Dokploy/swarm-test)。 -3. 将其保存为 GitHub 提供商。 -4. 进入应用程序的高级选项卡。 -5. 在“集群设置”部分: - - 更改副本数量(默认是 1)。 - - 选择节点拉取镜像的注册表。 -6. 现在,您可以将应用程序部署到集群(通过点击 `Deploy` 按钮)。 - -事实上,这是实现多节点部署的一个简单方法。Traefik 将处理负载均衡,并将流量路由到应用程序最可用的节点。 - -要进一步增强此设置,您可以使用 AWS、DigitalOcean 或 Google Cloud 等服务的负载均衡器。这些负载均衡器在路由请求之前会进行健康检查,以确保只有健康的节点接收流量。如果节点未通过健康检查,负载均衡器将自动将请求路由到另一个节点。此设置提供了更稳健和可扩展的部署。 - -要向集群添加管理节点,请按照添加 Worker 节点的相同步骤进行操作。然而,如果运行 Dokploy 的管理节点发生故障,所有其他节点将变得不可访问。这是因为我们目前为集群设置了单一入口点。为确保高可用性,您应该有多个管理节点。 - -要实现这一点,您需要将所有持久性和 Traefik 信息复制到新的管理节点。这将为集群创建多个入口点。您可以使用 rsync、aws data sync 或其他工具在节点之间同步所有必要信息。 - -## 自定义应用程序 - -您可以在“Swarm 设置”部分自定义应用程序。在这里,您几乎可以修改与 Swarm 应用模式相关的所有设置。 - -界面中提供了每个设置的占位符和预期格式。所有字段必须为 JSON 值。 - -#### 可自定义设置: - -- 健康检查 -- 重启策略 -- 放置策略 -- 更新配置 -- 回滚配置 -- 模式 -- 网络 -- 标签 - - \ No newline at end of file diff --git a/apps/docs/content/docs/core/cluster/overview.mdx b/apps/docs/content/docs/core/cluster/overview.mdx deleted file mode 100644 index 9a648cff..00000000 --- a/apps/docs/content/docs/core/cluster/overview.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -title: Cluster (Advanced) -description: "Learn how to set up and manage a cluster in Dokploy with docker swarm." -sidebar: - order: 1 ---- - - -For most suitables cases you may not need to use a cluster, unless you need to scale your application. -A cluster is a group of nodes that work together to provide a single, unified service. In Dokploy, clusters manage a group of servers collaborating to deliver this unified service. - -We use traefik under the hood to load balance the traffic to the application. - - -We recommend to read the [Traefik Docs](https://doc.traefik.io/traefik/routing/providers/swarm/) before using a cluster, to have a better understanding of how it works. - -To start adding nodes to your cluster, you need a registry. The nodes require the registry to pull images . - -## Requirements - -- A server with Dokploy installed. -- A registry to store your images. -- Additional servers (VPS) to add as nodes. - -## Registry Options - -We provide two methods to add a registry to your cluster: - -- **Custom Registry (Free)**: Set up a private registry on your server. -- **External Registry (Paid)**: Use external registries like Docker Hub, DigitalOcean, AWS ECR, etc. - - -You can see you can add two types of registries: - - - - -## Adding Nodes to a Cluster - -Once you have a registry, you can add nodes to your cluster by following these steps: - -1. Click the `Add Node` button. -2. You will see two tabs: `Worker` and `Manager`. -3. Select the type of node you want to add. -4. Follow the two steps provided: - - Install the Docker engine. - - Install the Dokploy agent. These steps are the same for both node types. -5. Run the provided commands on the new server. -6. After running the commands, go to `server/settings/cluster`. You will see entries for both the worker and manager nodes in the table. - - - - -{/* ![Add Node](/assets/images/cluster/nodes.png) -![Cluster](/assets/images/cluster/cluster.png) -![Application Setting](/assets/images/cluster/application.png) */} - -## Deploying an Application - -Once you have linked nodes to the cluster, you can deploy an application as follows: - -1. Create an application in a project. -2. Fork the repository [Dokploy/swarm-test](https://github.com/Dokploy/swarm-test). -3. Save it as a GitHub provider. -4. Go to the advanced tab of the application. -5. In the "Cluster Settings" section: - - Change the number of replicas (default is 1). - - Select the registry for the nodes to pull images from. -6. Now you can deploy the application to the cluster (By clicking the `Deploy` button). - - -In fact, this is a straightforward way to achieve multi-node deployments. Traefik will handle load balancing and route traffic to the node where the application is most available. - -To further enhance this setup, you can use load balancers from services like AWS, DigitalOcean, or Google Cloud. These load balancers perform health checks before routing requests to ensure that only healthy nodes receive traffic. If a node fails the health check, the load balancer will automatically route the request to another node. This setup provides a more robust and scalable deployment. - -To add manager nodes to the cluster, follow the same steps as adding a worker node. However, if the manager node (where Dokploy is running) fails, all other nodes will become inaccessible. This is because we currently have a single entry point for the cluster. To ensure high availability, you should have multiple manager nodes. - -To achieve this, you need to replicate all persistent and Traefik information to the new manager nodes. This will create multiple entry points for the cluster. You can use tools like rsync, aws data sync, or any other tool to synchronize all the necessary information between the nodes. - - -## Customizing the Application - -You can customize the application in the "Swarm Settings" section. Here, you can modify almost every setting related to the swarm application mode. - -In the interface, placeholders and expected formats for each setting are provided. All fields must be JSON values. - -#### Customizable Settings: - -- Healthcheck -- Restart Policy -- Placement -- Update Config -- Rollback Config -- Mode -- Network -- Labels - - diff --git a/apps/docs/content/docs/core/databases/backups.cn.mdx b/apps/docs/content/docs/core/databases/backups.cn.mdx deleted file mode 100644 index cecf071d..00000000 --- a/apps/docs/content/docs/core/databases/backups.cn.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: 备份 -description: "了解如何在 Dokploy 中设置和管理数据库的备份,并提供 S3 存储桶中的存储选项。" ---- - -Dokploy 提供了一个集成的解决方案来备份您的数据库,确保数据安全和恢复能力。 - -## 备份数据库 - -要配置数据库备份,请导航至 Dokploy 仪表板中的 `Backup` 选项卡。以下是您需要设置的内容: - -- **Select Destination S3 Bucket(选择备份位置 S3 桶)**: 指定备份将存储在哪里。桶可以在`/dashboard/settings/destinations`路由中配置。 -- **Database Name(数据库名称)**: 输入要备份的数据库的名称。 -- **Schedule Cron(定时 cron)**: 使用 cron 语法定义备份的时间表。 -- **Prefix(前缀)**: 选择将备份存储在您的存储桶中所使用的前缀。 -- **Enabled(启用)**: 切换备份是否处于活动状态。 默认设置已启用。 - -### 测试您的备份配置 - -要确保正确配置备份设置: - -1. 点击 `Test` 按钮. -2. 这将启动对您选择的 S3 存储桶的测试备份。 -3. 检查桶以查看测试备份的结果。 - -此功能通过在依赖备份过程进行操作备份之前验证您的备份过程是否正确设置,从而让您安心。 diff --git a/apps/docs/content/docs/core/databases/backups.mdx b/apps/docs/content/docs/core/databases/backups.mdx deleted file mode 100644 index e91d4d65..00000000 --- a/apps/docs/content/docs/core/databases/backups.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Backups -description: "Learn how to schedule and manage backups for your databases in Dokploy, with options for storage in S3 buckets." ---- - -Dokploy provides an integrated solution for backing up your databases, ensuring data safety and recovery capabilities. - -## Backing Up Your Database - -To configure database backups, navigate to the `Backup` tab within your Dokploy dashboard. Here’s what you’ll need to set up: - -- **Select Destination S3 Bucket**: Specify where your backups will be stored. Buckets can be configured in the `/dashboard/settings/destinations` route. -- **Database Name**: Enter the name of the database you want to backup. -- **Schedule Cron**: Define the schedule for your backups using cron syntax. -- **Prefix**: Choose a prefix under which backups will be stored in your bucket. -- **Enabled**: Toggle whether backups are active. The default setting is enabled. - -### Testing Your Backup Configuration - -To ensure your backup settings are correctly configured: - -1. Click the `Test` button. -2. This will initiate a test backup to the S3 bucket you selected. -3. Check the bucket to see the result of the test backup. - -This feature provides peace of mind by verifying that your backup process is set up correctly before relying on it for operational backups. diff --git a/apps/docs/content/docs/core/databases/connection.cn.mdx b/apps/docs/content/docs/core/databases/connection.cn.mdx deleted file mode 100644 index 6b99a890..00000000 --- a/apps/docs/content/docs/core/databases/connection.cn.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: 连接 -description: "了解如何使用 Dokploy 连接到您的数据库。" ---- - -本节解释如何为 Dokploy 中的应用程序配置数据库访问,包括内部网络中的连接和可以通过互联网访问的外部连接。 - -### 内部凭证 - -用于从同一网络连接到数据库,而无需将数据库暴露于互联网。 - -- **用户**:数据库访问的用户名。 -- **密码**:数据库访问的安全密码。 -- **数据库名称**:要连接的数据库名称。 -- **内部主机**:网络内数据库的主机名或内部标识符。 -- **内部端口(容器)**:在容器内连接到数据库所使用的端口。 -- **内部连接 URL**:用于内部连接数据库的完整连接字符串。 - -### 外部凭证 - -使数据库可以通过互联网访问,便于远程管理或外部应用程序。 - -- **外部端口(互联网)**:分配一个当前未被其他服务使用的端口,以便将数据库外部暴露。 - -#### 配置外部访问的步骤 -1. 确保外部端口可用,并且与其他服务不冲突。 -2. 输入要用于暴露数据库的外部端口。 -3. 系统将自动生成外部连接 URL,可用于通过互联网访问数据库的任何数据库管理工具,如 phpMyAdmin、MySQL Workbench、PgAdmin 等。 - -### 重要提示 - -出于安全原因,应对在同一网络或环境中运行的应用程序使用内部凭证,以防止未经授权的访问。外部凭证应仅在必要时使用,并采取适当的安全措施,如 VPN 或 IP 白名单。 diff --git a/apps/docs/content/docs/core/databases/connection.mdx b/apps/docs/content/docs/core/databases/connection.mdx deleted file mode 100644 index ec796d15..00000000 --- a/apps/docs/content/docs/core/databases/connection.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Connection -description: "Learn how to connect to your database using Dokploy." ---- - -This section explains how to configure database access for applications in Dokploy, including both internal connections within your network and external connections accessible over the internet. - -### Internal Credentials - - Used for connecting to the database from within the same network, without exposing the database to the internet. - -- **User**: Username for the database access. -- **Password**: Secure password for database access. -- **Database Name**: The name of the database to connect to. -- **Internal Host**: The hostname or internal identifier for the database within the network. -- **Internal Port (Container)**: The port used within the container to connect to the database. -- **Internal Connection URL**: The full connection string used internally to connect to the database. - -### External Credentials - -Enables the database to be reachable from the internet, necessary for remote management or external applications. - -- **External Port (Internet)**: Assign a port that is not currently used by another service to expose the database externally. - -#### Steps to Configure External Access -1. Ensure the external port is available and not in conflict with other services. -2. Enter the external port you wish to use to expose your database. -3. The system will automatically generate an external connection URL, which can be used to access the database from any database management tool over the internet, like phpMyAdmin, MySQL Workbench, PgAdmin, etc. - -### Important Note - -For security reasons, internal credentials should be used for applications running within the same network or environment to prevent unauthorized access. External credentials should only be used when necessary and with proper security measures in place, such as VPNs or IP whitelisting. - diff --git a/apps/docs/content/docs/core/databases/overview.cn.mdx b/apps/docs/content/docs/core/databases/overview.cn.mdx deleted file mode 100644 index 83db3873..00000000 --- a/apps/docs/content/docs/core/databases/overview.cn.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: 概述 -description: "了解如何使用Dokploy轻松创建和备份数据库,支持各种数据库系统." ---- - -Dokploy 简化了创建和管理数据库的过程,为设置和备份提供了强大的选项。 - -## 数据库支持 - -Dokploy 目前支持一系列流行的数据库系统,确保您的项目的兼容性和灵活性: - -- **Postgres**: 强大、符合 SQL 且高度可靠。 -- **MySQL**: 广泛使用的关系数据库以其性能和灵活性而闻名。 -- **MariaDB**: 具有额外功能和改进的性能的 SQL 的分支。 -- **MongoDB**: NoSQL 数据库以其高可扩展性和灵活性而闻名。 -- **Redis**: 内存中的键-值存储,通常用作数据库、缓存和消息代理。 - -## 部署 - -在 Dokploy 中部署数据库很简单: - -1. 导航至 Dokploy 仪表板的数据库部分。 -2. 单击您要设置的数据库旁边的`Deploy`按钮。 - -`Deploy`按钮启动一个简化的流程,自动设置您选择的数据库,使其准备好立即使用。 diff --git a/apps/docs/content/docs/core/databases/overview.mdx b/apps/docs/content/docs/core/databases/overview.mdx deleted file mode 100644 index 0fd2f5b0..00000000 --- a/apps/docs/content/docs/core/databases/overview.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Overview -description: "Discover how to create and backup databases easily with Dokploy, supporting a variety of database systems." ---- - -Dokploy simplifies the process of creating and managing databases, offering robust options for both setup and backups. - -## Database Support - -Dokploy currently supports a range of popular database systems, ensuring compatibility and flexibility for your projects: - -- **Postgres**: Robust, SQL-compliant and highly reliable. -- **MySQL**: Widely used relational database known for its performance and flexibility. -- **MariaDB**: A fork of MySQL with additional features and improved performance. -- **MongoDB**: A NoSQL database known for its high scalability and flexibility. -- **Redis**: An in-memory key-value store often used as a database, cache, and message broker. - - -We offer multiple functionalities that you can use to manage your databases, such as: - -## General - -Actions like deploying, updating, and deleting your database, and stopping it. - -## Environment - -If you need to assign environment variables to your application, you can do so here. - -In case you need to use a multiline variable, you can wrap it in double quotes just like this `'"here_is_my_private_key"'`. - -## Monitoring - -Four graphs will be displayed for the use of memory, CPU, disk, and network. Note that the information is only updated if you are viewing the current page, otherwise it will not be updated. - -## Backups - -We offer automated backups for your databases, ensuring that you can recover your data quickly and easily in case of any issues, you can setup a S3 Destinations in settings to store your backups. - - -## Logs - -If you want to see any important logs from your application that is running, you can do so here and determine if your application is displaying any errors or not. - -## Advanced - -This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container, managing Docker Swarm settings, and adjusting cluster settings such as replicas and registry selection. These tools are typically not required for standard application deployment and are intended for complex management and troubleshooting tasks. - -- **Custom Docker Image**: You can change the Docker image used to run your database. -- **Run Command**: Execute custom commands directly in the container for advanced management or troubleshooting. -- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application. -- **Resources**: Adjust the CPU and memory allocation for your application. diff --git a/apps/docs/content/docs/core/deployments/oracle-cloud.cn.mdx b/apps/docs/content/docs/core/deployments/oracle-cloud.cn.mdx deleted file mode 100644 index d3063a32..00000000 --- a/apps/docs/content/docs/core/deployments/oracle-cloud.cn.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Oracle 云 -description: 将应用程序部署到 Oracle 云 ---- - -import { Callout } from 'fumadocs-ui/components/callout'; - - -将应用程序部署到 Oracle 云 - -步骤 - -1. 登录 Oracle 云 -2. 创建一个新的 `Compute Instance` -3. 到 `Image and Shape` -4. 选择 `Ubuntu 20.04 LTS` - - - - -5. 添加 SSH Key,确保添加您的 SSH key 的公钥 -6. 登录实例 `ssh ubuntu@ip-address-of-instance` - - 如果由于出现连接拒绝错误而无法访问实例,您可以尝试将`Public Subnet IPv4 - CIDR Block` 添加到实例,转到您的实例,然后 Quick Actions -> Connect public - subnet to internet -> Create - -7. 运行 `sudo su` -8. 运行 `curl -sSL https://dokploy.com/install.sh | sh` -9. 默认情况下,Oracle 云 已设置仅 22 个端口打开,您可以在实例中更改 - -> attached VNICs -> 点击 `subnet` 链接 -> 打开 `Security Lists` -> `Inbound Rules` -> 点击 `default security list for vnc` 链接 -> 进入规则 -> 添加入口规则 -> 设置 CIDR `0.0.0.0/0` 后,保存. -10. 打开 `ip-address-of-instance:3000` 您会看到仪表板. diff --git a/apps/docs/content/docs/core/deployments/oracle-cloud.mdx b/apps/docs/content/docs/core/deployments/oracle-cloud.mdx deleted file mode 100644 index 5675120b..00000000 --- a/apps/docs/content/docs/core/deployments/oracle-cloud.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Oracle Cloud -description: Deploy your application to Oracle Cloud ---- - -import { Callout } from 'fumadocs-ui/components/callout'; - - - -Deploy your application to Oracle Cloud - -Steps - -1. Log in to Oracle Cloud -2. Create a new `Compute Instance` -3. Go to `Image and Shape` -4. Select `Ubuntu 20.04 LTS` and Shape - - - -5. Add SSH Key, make sure to add the public key of your SSH key -6. Login to the instance `ssh ubuntu@ip-address-of-instance` - -If you cannot access to the instance because you se connection refused error, you can try adding a `Public Subnet IPv4 CIDR Block` to the instance, go to your instance and then Quick Actions -> Connect public subnet to internet -> Create - -7. Run `sudo su` -8. Run `curl -sSL https://dokploy.com/install.sh | sh` -9. By default oracle cloud have blocked the ports only the 22 is open, you can change in your instance -> attached VNICs -> click on `subnet` Link -> go to `Security Lists` -> `Inbound Rules` -> Click on `default security list for vnc` Link -> Go to ingress rules -> add a ingress rule -> on source CIDR `0.0.0.0/0` and save. -9. Go to `ip-address-of-instance:3000` and you will see the dashboard. - - diff --git a/apps/docs/content/docs/core/docker-compose/auto-deploy.cn.mdx b/apps/docs/content/docs/core/docker-compose/auto-deploy.cn.mdx deleted file mode 100644 index 9b769bd5..00000000 --- a/apps/docs/content/docs/core/docker-compose/auto-deploy.cn.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: 自动部署 -description: 如何使用 Dokploy 自动部署您的 docker-compose 应用 ---- - -自动部署您的 docker-compose 应用到 Dokploy 可以通过两种主要方法实现:使用 Webhooks 或 Dokploy API。每种方法支持各种平台,并提供简化的部署过程。 - -## Github - -对于 Github,我们提供无需配置的自动部署。这将在您推送到存储库时自动部署您的应用。 - -## Webhook URL - -使用 Webhooks,您可以在源代码库中发生更改时自动部署您的 docker-compose 应用。 - -- GitHub -- GitLab -- Bitbucket -- Gitea - -### 配置步骤 - -1. **启用自动部署**:在 Dokploy 中的应用设置的常规标签中切换“自动部署”按钮。 -2. **获取 Webhook URL**:从部署日志中找到 Webhook URL。 - - - -3. **配置您的存储库**: - - 导航到您选择的平台上的存储库设置。 - - 添加 Dokploy 提供的 webhook URL。 - - 确保设置匹配触发 webhook 所需的配置。 - - - -#### 重要说明 - -- **分支匹配**:使用基于 Git 的提供商(GitHub、GitLab 等)时,确保 Dokploy 中配置的分支与您打算推送到的分支匹配。不匹配将导致“分支不匹配”错误。 -- 所有提供商的步骤相同。 - -## API 方法 - -通过 Dokploy API 从任何地方以编程方式部署您的应用。 - -### 使用 API 部署的步骤 - -步骤: - -1. **生成令牌**:在 Dokploy 的个人资料设置中创建一个 API 令牌。 -2. **获取 Compose ID**: - -```http -curl -X 'GET' \ - 'https://your-domain/api/project.all' \ - -H 'accept: application/json' \ - -H 'Authorization: Bearer ' -``` - -此命令列出所有项目和服务。确定您要部署的 compose 的 composeId。 - -3. **触发部署**: -```http -curl -X 'POST' \ - 'https://canary.dokploy.com/api/compose.deploy' \ - -H 'accept: application/json' \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer ' \ - -d '{ - "composeId": "string" -}' -``` - -这种 API 方法提供了灵活的、可脚本化的部署选项,适用于自动化系统或无法直接集成存储库的情况。 -通过这种方式,您可以从任何地方部署您的应用,可以使用 webhook URL 或 API。 diff --git a/apps/docs/content/docs/core/docker-compose/auto-deploy.mdx b/apps/docs/content/docs/core/docker-compose/auto-deploy.mdx deleted file mode 100644 index 93d764e6..00000000 --- a/apps/docs/content/docs/core/docker-compose/auto-deploy.mdx +++ /dev/null @@ -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. - - - -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. - - - -#### 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 ' -``` - -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://canary.dokploy.com/api/compose.deploy' \ - -H 'accept: application/json' \ - -H 'Content-Type: application/json' \ - -H 'Authorization: Bearer ' \ - -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. diff --git a/apps/docs/content/docs/core/docker-compose/domains.cn.mdx b/apps/docs/content/docs/core/docker-compose/domains.cn.mdx deleted file mode 100644 index cb44b52b..00000000 --- a/apps/docs/content/docs/core/docker-compose/domains.cn.mdx +++ /dev/null @@ -1,192 +0,0 @@ ---- -title: 域名 -description: 为您的 Docker Compose 应用程序配置域名。 ---- - -在使用 Docker Compose 时,为服务添加域名是一个简单的过程。本指南将引导您完成为应用程序配置域名的必要步骤。 - -关键步骤: - -1. 将服务添加到 `dokploy-network`。 -2. 使用 Traefik 标签配置路由。 - -## 示例场景 - -让我们考虑一个包含三个组件的应用程序:前端、后端和数据库。我们将从一个基本的 Docker Compose 文件开始,然后通过域名配置对其进行增强。 - -```yaml -version: '3.8' - -services: - frontend: - build: - context: ./frontend - dockerfile: Dockerfile - volumes: - - ./frontend:/app - ports: - - "3000:3000" - depends_on: - - backend - - backend: - build: - context: ./backend - dockerfile: Dockerfile - volumes: - - ./backend:/app - ports: - - "5000:5000" - environment: - - DATABASE_URL=postgres://postgres:password@database:5432/mydatabase - depends_on: - - database - - database: - image: postgres:13 - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - POSTGRES_DB: mydatabase - volumes: - - db-data:/var/lib/postgresql/data - -volumes: - db-data: -``` - -## 步骤 1:添加网络 - -首先,我们将 `dokploy-network` 添加到我们的服务中: - -```yaml -version: '3.8' - -services: - frontend: - # ...(之前的配置) - networks: - - dokploy-network - - backend: - # ...(之前的配置) - networks: - - dokploy-network - - database: - # ...(之前的配置) - networks: - - dokploy-network - -volumes: - db-data: - -networks: - dokploy-network: - external: true -``` - -## 步骤 2:配置 Traefik 标签 - -现在,让我们添加 Traefik 标签以将域名路由到我们的服务。我们将专注于前端和后端服务: - -{/* 必须添加这些标签: - -1. `traefik.enable=true` -此标签告诉 Traefik 此服务应由 Traefik 路由。 -2. `traefik.http.routers..rule=Host('your-domain.dokploy.com')` -此标签告诉 Traefik 使用的域名是 `your-domain.dokploy.com` -3. `traefik.http.routers..entrypoints=web` -此标签告诉 Traefik 该服务应通过 `http` 协议访问。 -4. `traefik.http.services..loadbalancer.server.port=3000` -此标签告诉 Traefik 使用的端口是 `3000` - -注意:对于 loadbalancer.server.port,确保分配您服务所使用的端口。请注意,您无需像这样暴露端口: - -注意:在 loadbalancer.server.port 确保分配您服务使用的端口,并且需要注意的是,您无需以这种方式暴露端口: - -`'3000:3000'` 这是不正确的,您只需分配服务正在使用的端口,在这种情况下为 `3000`。 - -确保创建指向您的域名的 `A` 记录,这可以通过您的 DNS 提供商完成。*/} - -```yaml -version: '3.8' - -services: - frontend: - build: - context: ./frontend - dockerfile: Dockerfile - volumes: - - ./frontend:/app - expose: - - 3000 - depends_on: - - backend - networks: - - dokploy-network - labels: - - traefik.enable=true - - traefik.http.routers.frontend-app.rule=Host(`frontend.dokploy.com`) - - traefik.http.routers.frontend-app.entrypoints=web - - traefik.http.services.frontend-app.loadbalancer.server.port=3000 - - backend: - build: - context: ./backend - dockerfile: Dockerfile - volumes: - - ./backend:/app - expose: - - 5000 - environment: - - DATABASE_URL=postgres://postgres:password@database:5432/mydatabase - depends_on: - - database - networks: - - dokploy-network - labels: - - traefik.enable=true - - traefik.http.routers.backend-app.rule=Host(`backend.dokploy.com`) - - traefik.http.routers.backend-app.entrypoints=web - - traefik.http.services.backend-app.loadbalancer.server.port=5000 - - database: - # ...(与之前相同) - -volumes: - db-data: - -networks: - dokploy-network: - external: true -``` - -## 理解 Traefik 标签 - -1. `traefik.enable=true` 启用服务的 Traefik 路由。 -2. `traefik.http.routers..rule=Host('your-domain.dokploy.com')` 指定服务的域名。 -3. `traefik.http.routers..entrypoints=web` 将服务设置为可通过 HTTP 访问。 -4. `traefik.http.services..loadbalancer.server.port=3000` 指定服务内部使用的端口。 - -**注意**:将 `` 替换为每个服务的唯一标识符(例如,frontend-app、backend-app 等)。 - -## 重要考虑事项 - -1. **端口暴露**:使用 `expose` 而不是 `ports` 来暴露主机机器的端口。这确保端口不会暴露给主机机器。 -2. **DNS 配置**:确保您在 DNS 提供商设置中创建指向您域名的 `A` 记录。 -3. **HTTPS**:对于 HTTPS,您可以使用 Let's Encrypt 或其他 SSL/TLS 证书。 - -## 部署 - -有了这些配置,您现在可以使用 Docker Compose 部署您的应用程序。此设置应足以通过 Traefik 使用自定义域路由启动和运行您的服务。 - -## SSL 证书和进一步配置 - -如果您有关于何时使用 Let's Encrypt 或其他 SSL 证书选项的问题,您可以在以下资源中找到更详细的信息: - -1. [证书](/docs/core/domain/certificates) -2. [Docker Compose 域名](/docs/core/domain/docker-compose-setup) -3. [Docker Compose 示例](/docs/core/docker-compose/example) - -如果您有任何进一步的问题或需要帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc),我们很乐意为您提供帮助。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/docker-compose/domains.mdx b/apps/docs/content/docs/core/docker-compose/domains.mdx deleted file mode 100644 index 82534d0d..00000000 --- a/apps/docs/content/docs/core/docker-compose/domains.mdx +++ /dev/null @@ -1,181 +0,0 @@ ---- -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. - -Key Steps: - -1. Add the service to the `dokploy-network`. -2. Use Traefik labels to configure routing. - -import { Callout } from "fumadocs-ui/components/callout"; - - - 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. - - -Example Scenario - -Let's consider an application with three components: a frontend, a backend, and a database. We'll start with a basic Docker Compose file and then enhance it with domain configuration. - -```yaml -version: "3.8" - -services: - frontend: - build: - context: ./frontend - dockerfile: Dockerfile - volumes: - - ./frontend:/app - ports: - - "3000:3000" - depends_on: - - backend - - backend: - build: - context: ./backend - dockerfile: Dockerfile - volumes: - - ./backend:/app - ports: - - "5000:5000" - environment: - - DATABASE_URL=postgres://postgres:password@database:5432/mydatabase - depends_on: - - database - - database: - image: postgres:13 - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: password - POSTGRES_DB: mydatabase - volumes: - - db-data:/var/lib/postgresql/data - -volumes: - db-data: -``` - -## Step 1: Add the Network - -First, we'll add the dokploy-network to our services: - -```yaml -version: "3.8" - -services: - frontend: - # ... (previous configuration) - networks: - - dokploy-network - - backend: - # ... (previous configuration) - networks: - - dokploy-network - - database: - # ... (previous configuration) - networks: - - dokploy-network - -volumes: - db-data: - -networks: - dokploy-network: - external: true -``` - -Step 2: Configuring Traefik Labels - -Now, let's add Traefik labels to route domains to our services. We'll focus on the frontend and backend services: - -```yaml -version: "3.8" - -services: - frontend: - build: - context: ./frontend - dockerfile: Dockerfile - volumes: - - ./frontend:/app - expose: - - 3000 - depends_on: - - backend - networks: - - dokploy-network - labels: - - traefik.enable=true - - traefik.http.routers.frontend-app.rule=Host(`frontend.dokploy.com`) - - traefik.http.routers.frontend-app.entrypoints=web - - traefik.http.services.frontend-app.loadbalancer.server.port=3000 - - backend: - build: - context: ./backend - dockerfile: Dockerfile - volumes: - - ./backend:/app - expose: - - 5000 - environment: - - DATABASE_URL=postgres://postgres:password@database:5432/mydatabase - depends_on: - - database - networks: - - dokploy-network - labels: - - traefik.enable=true - - traefik.http.routers.backend-app.rule=Host(`backend.dokploy.com`) - - traefik.http.routers.backend-app.entrypoints=web - - traefik.http.services.backend-app.loadbalancer.server.port=5000 - - database: - # ... (same as before) - -volumes: - db-data: - -networks: - dokploy-network: - external: true -``` - -Understanding Traefik Labels - -1. `traefik.enable=true` Enables Traefik routing for the service. -2. `traefik.http.routers..rule=Host('your-domain.dokploy.com')` Specifies the domain for the service -3. `traefik.http.routers..entrypoints=web` Sets the service to be accessible via HTTP. -4. `traefik.http.services..loadbalancer.server.port=3000` Specifies the port your service is using internally. - -**Note**: Replace `` with a unique identifier for each service (e.g., frontend-app, backend-app, etc.). - -## Important Considerations - -1. **Port Exposure**: Use `expose` instead of `ports` to expose ports to the host machine. This ensures that the ports are not exposed to the host machine. -2. **DNS Configuration**: Ensure you create `A` records pointing to your domain in your DNS Provider Settings. -3. **HTTPS**: For HTTPS, you can use Let's Encrypt or other SSL/TLS certificates. - -## Deployment - -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. diff --git a/apps/docs/content/docs/core/docker-compose/example.cn.mdx b/apps/docs/content/docs/core/docker-compose/example.cn.mdx deleted file mode 100644 index df05c713..00000000 --- a/apps/docs/content/docs/core/docker-compose/example.cn.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: "示例" -description: "学习如何在 Dokploy 中使用 Docker Compose" - ---- - -## 教程 - -在本教程中,我们将使用 Docker Compose 创建一个简单的应用程序,并将流量路由到可访问的域名。 - -### 步骤 - -1. 创建一个新项目。 -2. 创建一个新服务 `Compose`,并选择 Compose 类型为 `Docker Compose`。 -3. Fork 这个仓库:[Repo](https://github.com/Dokploy/docker-compose-test)。 -4. 选择提供商类型:GitHub 或 Git。 -5. 选择仓库:`Dokploy/docker-compose-test`。 -6. 选择分支:`main`。 -7. 将 Compose 路径设置为 `./docker-compose.yml` 并保存。 -![Docker compose configuration](/assets/images/compose/setup.png) - -### 更新你的 `docker-compose.yml` - -在现有的 `docker-compose.yml` 文件中添加以下内容: - -1. 为每个服务添加网络 `dokploy-network`。 -2. 添加 Traefik 标签,使服务能够通过域名访问。 - -示例: - -让我们修改以下的 Compose 文件,使其能够在 Dokploy 中运行: -```yaml -version: "3" - -services: - next-app: - build: - context: ./next-app - dockerfile: prod.Dockerfile - args: - ENV_VARIABLE: ${ENV_VARIABLE} - NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} - restart: always - ports: - - 3000:3000 - networks: - - my_network -networks: - my_network: - external: true -``` - - -更新版本,添加了 dokploy-network 和 Traefik 标签: - -import { Callout } from 'fumadocs-ui/components/callout'; - - -不要为每个服务设置 container_name 属性,否则会导致日志、指标和其他功能出现问题。 - -{/* :::danger -不要为每个服务设置 container_name 属性,否则会导致日志、指标和其他功能出现问题。 - -::: */} - -```yaml -version: "3" - -services: - next-app: - build: - context: ./next-app - dockerfile: prod.Dockerfile - args: - ENV_VARIABLE: ${ENV_VARIABLE} - NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} - restart: always - ports: - - 3000 - networks: - - dokploy-network - labels: - - "traefik.enable=true" - - "traefik.http.routers..rule=Host(`your-domain.com`)" - - "traefik.http.routers..entrypoints=websecure" - - "traefik.http.routers..tls.certResolver=letsencrypt" - - "traefik.http.services..loadbalancer.server.port=3000" -networks: - dokploy-network: - external: true -``` - -确保将 A 记录指向您希望用于服务的域名。 - - - -通过点击 "deploy" 部署应用程序,等待部署完成。然后给 Traefik 大约 10 秒的时间来生成证书。之后,您就可以通过设置的域名访问应用程序。 - - - -**提示**: - -1. 为每个路由器设置唯一名称:`traefik.http.routers.` -2. 为每个服务设置唯一名称:`traefik.http.services.` -3. 确保网络已连接到 `dokploy-network` -4. 将入口点设置为 websecure,并将证书解析器设置为 letsencrypt,以生成证书。 - diff --git a/apps/docs/content/docs/core/docker-compose/example.mdx b/apps/docs/content/docs/core/docker-compose/example.mdx deleted file mode 100644 index 89cddc2f..00000000 --- a/apps/docs/content/docs/core/docker-compose/example.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "Example" -description: "Learn how to use Docker Compose with Dokploy" - ---- - -## Tutorial - -In this tutorial, we will create a simple application using Docker Compose and route the traffic to an accessible domain. - - -### Steps - -1. Create a new project. -2. Create a new service `Compose` and select the Compose Type `Docker Compose`. -3. Fork this repository: [Repo](https://github.com/Dokploy/docker-compose-test). -4. Select Provider type: GitHub or Git. -5. Select the repository: `Dokploy/docker-compose-test`. -6. Select the branch: `main`. -7. Set the Compose Path to `./docker-compose.yml` and save. -![Docker compose configuration](/assets/images/compose/setup.png) - - -### Updating Your `docker-compose.yml` - -Add the following to your existing `docker-compose.yml` file: - -1. Add the network `dokploy-network` to each service. -2. Add labels for Traefik to make the service accessible through the domain. - -Example: - -Let's modify the following compose file to make it work with Dokploy: - -```yaml -version: "3" - -services: - next-app: - build: - context: ./next-app - dockerfile: prod.Dockerfile - args: - ENV_VARIABLE: ${ENV_VARIABLE} - NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} - restart: always - ports: - - 3000:3000 - networks: - - my_network -networks: - my_network: - external: true -``` - - -Updated version with dokploy-network and Traefik labels: - -import { Callout } from 'fumadocs-ui/components/callout'; - - -Don't set container_name property to the each service, it will cause issues with logs, metrics and other features - -{/* :::danger -Don't set container_name property to the each service, it will cause issues with logs, metrics and other features - -::: */} - -```yaml -version: "3" - -services: - next-app: - build: - context: ./next-app - dockerfile: prod.Dockerfile - args: - ENV_VARIABLE: ${ENV_VARIABLE} - NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE} - restart: always - ports: - - 3000 - networks: - - dokploy-network - labels: - - "traefik.enable=true" - - "traefik.http.routers..rule=Host(`your-domain.com`)" - - "traefik.http.routers..entrypoints=websecure" - - "traefik.http.routers..tls.certResolver=letsencrypt" - - "traefik.http.services..loadbalancer.server.port=3000" -networks: - dokploy-network: - external: true -``` - -Make sure to point the A record to the domain you want to use for your service. - - - -Deploy the application by clicking on "deploy" and wait for the deployment to complete. Then give Traefik about 10 seconds to generate the certificates. You can then access the application through the domain you have set. - - - -**Tips**: - -1. Set unique names for each router: `traefik.http.routers.` -2. Set unique names for each service: `traefik.http.services.` -3. Ensure the network is linked to the `dokploy-network` -4. Set the entry point to websecure and the certificate resolver to letsencrypt to generate certificates. - diff --git a/apps/docs/content/docs/core/docker-compose/overview.cn.mdx b/apps/docs/content/docs/core/docker-compose/overview.cn.mdx deleted file mode 100644 index 34d83b70..00000000 --- a/apps/docs/content/docs/core/docker-compose/overview.cn.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "概述" -description: "了解如何使用 Docker Compose 和 Dokploy" ---- - -import { Callout } from "fumadocs-ui/components/callout"; - -Dokploy 集成了 Docker Compose 和 Docker Stack,以提供灵活的部署解决方案。无论您是在本地开发还是进行大规模部署,Dokploy 都能通过这些强大的 Docker 工具简化应用管理。 - -### 配置方法 - -Dokploy 提供两种创建 Docker Compose 配置的方法: - -- **Docker Compose**:适用于标准 Docker Compose 配置。 -- **Stack**:旨在使用 Docker Swarm 进行应用编排。请注意,在此模式下,一些 Docker Compose 功能(例如 `build`)不可用。 - -### 一般 - -配置代码来源、应用构建方式,并管理部署、更新、删除应用及停止应用等操作。 - -### 环境 - -Dokploy 内置的代码编辑器允许您为 Docker Compose 文件指定环境变量。默认情况下,Dokploy 会在指定的 Docker Compose 文件路径中创建 `.env` 文件。 - -### 监控 - -在 Dokploy 中可以单独监控每个服务。如果您的应用包含多个服务,可以单独监控每个服务,以确保最佳性能。 - -### 日志 - -通过 Dokploy 日志查看器访问每个服务的详细日志,这可以帮助排除故障并确保服务的稳定性。 - -### 部署 - -您可以查看应用的最近 10 次部署。当您实时部署应用时,将创建一个新的部署记录,并逐渐显示应用的构建过程。 - -我们还提供一个按钮,可以取消排队中的部署。请注意,正在进行的部署无法取消。 - -我们提供了一个 webhook,以便您可以通过推送到 GitHub、Gitea、GitLab、Bitbucket 仓库来触发自己的部署。 - -### 高级 - -本节为经验丰富的用户提供高级配置选项。包括在容器内自定义命令和卷的工具。 - -- **命令**:Dokploy 定义了一个命令来运行 Docker Compose 文件,确保通过 UI 完全控制。不过,您可以向命令添加标志或选项。 -- **卷**:为了确保数据在部署之间持久化,配置应用的存储卷。 - - - - -Docker 卷是一种持久化 Docker 容器生成和使用的数据的方式。它们对于在容器重启之间维护数据或在不同容器之间共享数据尤其有用。 - -要将卷绑定到主机,可以在您的 docker-compose.yml 文件中使用以下语法,但这种方式在新部署时会清理卷: - -```yaml -volumes: - - "/folder:/path/in/container" ❌ -``` - -建议使用 ../files 文件夹,以确保您的数据在部署之间保持持久。例如: - -```yaml -volumes: - - "../files/my-database:/var/lib/mysql" ✅ - - "../files/my-configs:/etc/my-app/config" ✅ -``` - - \ No newline at end of file diff --git a/apps/docs/content/docs/core/docker-compose/overview.mdx b/apps/docs/content/docs/core/docker-compose/overview.mdx deleted file mode 100644 index 813e323c..00000000 --- a/apps/docs/content/docs/core/docker-compose/overview.mdx +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "Overview" -description: "Learn how to use Docker Compose with Dokploy" ---- - -import { Callout } from "fumadocs-ui/components/callout"; - -Dokploy integrates with Docker Compose and Docker Stack to provide flexible deployment solutions. Whether you are developing locally or deploying at scale, Dokploy facilitates application management through these powerful Docker tools. - -### Configuration Methods - -Dokploy provides two methods for creating Docker Compose configurations: - -- **Docker Compose**: Ideal for standard Docker Compose configurations. -- **Stack**: Geared towards orchestrating applications using Docker Swarm. Note that some Docker Compose features, such as `build`, are not available in this mode. - -### General - -Configure the source of your code, the way your application is built, and also manage actions like deploying, updating, and deleting your application, and stopping it. - -### Enviroment - -A code editor within Dokploy allows you to specify environment variables for your Docker Compose file. By default, Dokploy creates a `.env` file in the specified Docker Compose file path. - -### Monitoring - -Monitor each service individually within Dokploy. If your application consists of multiple services, each can be monitored separately to ensure optimal performance. - -### Logs - -Access detailed logs for each service through the Dokploy log viewer, which can help in troubleshooting and ensuring the stability of your services. - -### Deployments - -You can view the last 10 deployments of your application. When you deploy your application in real time, a new deployment record will be created and it will gradually show you how your application is being built. - -We also offer a button to cancel deployments that are in queue. Note that those in progress cannot be canceled. - -We provide a webhook so that you can trigger your own deployments by pushing to your GitHub, Gitea, GitLab, Bitbucket repository. - -### Advanced - -This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container and volumes. - -- **Command**: Dokploy has a defined command to run the Docker Compose file, ensuring complete control through the UI. However, you can append flags or options to the command. -- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application. - - - - -Docker volumes are a way to persist data generated and used by Docker containers. They are particularly useful for maintaining data between container restarts or for sharing data among different containers. - -To bind a volume to the host machine, you can use the following syntax in your docker-compose.yml file, but this way will clean up the volumes when a new deployment is made: - -```yaml -volumes: - - "/folder:/path/in/container" ❌ -``` - -It's recommended to use the ../files folder to ensure your data persists between deployments. For example: - -```yaml -volumes: - - "../files/my-database:/var/lib/mysql" ✅ - - "../files/my-configs:/etc/my-app/config" ✅ -``` - - diff --git a/apps/docs/content/docs/core/docker-compose/providers.cn.mdx b/apps/docs/content/docs/core/docker-compose/providers.cn.mdx deleted file mode 100644 index fca7754b..00000000 --- a/apps/docs/content/docs/core/docker-compose/providers.cn.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "提供商" -description: "了解如何在 Dokploy 中使用 Docker Compose。" ---- - -Dokploy 提供几种部署方法,使得无论您是使用 GitHub、任何 Git 提供商、原始方法还是自动部署,流程都更加简化。 - -- GitHub -- Git(任何 Git 提供商) -- 原始方法 - -## GitHub - -通过 GitHub 部署非常简单: - -1. 在 `/dashboard/settings/server` 中配置您的 GitHub 存储库。 -2. 在创建应用程序时,Dokploy 会自动检索可用的存储库和分支。 - -## Git - -对于来自任何 Git 存储库的部署,无论是公共的还是私有的,您可以使用 SSH 或 HTTPS: - -1. 输入存储库 URL。 -2. 指定您希望部署的分支。 - -### 私有存储库 - -对于私有存储库,请使用 SSH 进行身份验证。我们提供一个锁定图标以生成 SSH 密钥。 - - - -然后,您可以复制 SSH 密钥并将其粘贴到您账户的设置中。 - - - -这使您能够从私有存储库中拉取代码,这种方法几乎适用于所有提供商。 - -## 原始方法 - -您可以直接在代码编辑器中指定 Docker Compose 文件并触发部署。 diff --git a/apps/docs/content/docs/core/docker-compose/providers.mdx b/apps/docs/content/docs/core/docker-compose/providers.mdx deleted file mode 100644 index f091ec36..00000000 --- a/apps/docs/content/docs/core/docker-compose/providers.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: "Providers" -description: "Learn how to use Docker Compose with Dokploy" ---- - -Dokploy offers several deployment methods, streamlining the process whether you're utilizing GitHub, any Git provider, Raw, or automated deployments. - -- GitHub -- Gitlab -- Bitbucket -- Git (Any Git Provider) -- Raw - -## GitHub - -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. - -## Git - -For deployments from any Git repository, whether public or private, you can use either SSH or HTTPS: - -1. Enter the repository URL. -2. Specify the branch you wish to deploy. - -### Private Repositories - -For private repositories, authenticate using SSH. We provide a lock icon to generate an SSH key. - - - -You can then copy the SSH key and paste it into the settings of your account. - - - -This enables you to pull repositories from your private repository, a method consistent across nearly all providers. - -## Raw - -You specify a docker compose file directly in the code editor and trigger a deployment. diff --git a/apps/docs/content/docs/core/docker/overview.cn.mdx b/apps/docs/content/docs/core/docker/overview.cn.mdx deleted file mode 100644 index 1c87e4fa..00000000 --- a/apps/docs/content/docs/core/docker/overview.cn.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: 概述 -description: "了解 Dokploy 如何使用 Docker Swarm 直接从仪表板部署应用程序和管理容器。" ---- - -Dokploy 利用 Docker Swarm 为您的应用程序编排和管理容器部署,提供直观的监控界面。 - -## 查看容器 - -要监视和管理服务器上运行的容器: - -- 导航到 Dokploy 中的 `/dashboard/docker` 页面。 -- 此页面显示您的服务器上当前活动的所有容器。 - -## 容器行为 - -对于每个容器,您都有几个管理选项: - -- **View Logs(查看日志)**: 访问容器的实时日志以监控其活动并排除问题。 -- **View Config(查看配置)**: 检查容器的配置设置以了解其部署参数。 -- **Terminal(终端)**: 直接在容器内打开终端会话以执行高级管理任务。 - -这些功能提供了全面的工具来有效管理应用程序的容器,所有这些都来自 Dokploy 的用户友好型仪表板。 diff --git a/apps/docs/content/docs/core/docker/overview.mdx b/apps/docs/content/docs/core/docker/overview.mdx deleted file mode 100644 index 7448375a..00000000 --- a/apps/docs/content/docs/core/docker/overview.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Overview -description: 'Understand how Dokploy uses Docker Swarm for deploying applications and managing containers directly from the dashboard.' ---- - -Dokploy leverages Docker Swarm to orchestrate and manage container deployments for your applications, providing an intuitive interface for monitoring and control. - -## Viewing Containers - -To monitor and manage the containers running on your server: - -- Navigate to the `/dashboard/docker` route in Dokploy. -- This page displays all the containers currently active on your server. - -## Container Actions - -For each container, you have several management options: - -- **View Logs**: Access real-time logs from the container to monitor its activity and troubleshoot issues. -- **View Config**: Review the configuration settings of the container to understand its deployment parameters. -- **Terminal**: Open a terminal session directly within the container for advanced management tasks. - -These features provide comprehensive tools to manage your applications' containers effectively, all from within Dokploy’s user-friendly dashboard. \ No newline at end of file diff --git a/apps/docs/content/docs/core/domain/application-setup.cn.mdx b/apps/docs/content/docs/core/domain/application-setup.cn.mdx deleted file mode 100644 index 01028b35..00000000 --- a/apps/docs/content/docs/core/domain/application-setup.cn.mdx +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: "应用程序域名设置" -description: "了解如何为应用程序设置域名" ---- - - -## 介绍 - -本指南详细介绍了如何为您的应用程序设置域名。 - -## 要求 - -如果您没有域名,请首先参阅 `Web域名设置` 部分。 - -## 创建 DNS 记录 - -1. 将 `A` 记录添加到您的 DNS 设置中: - - **名称:** 输入您要指向的路线 (例如, `app` 到 `app.yourdomain.com`). - - **值:** 输入服务器的 IP 地址, 例如 `1.2.3.4`. - -## 应用程序域名设置 - -1. 导航至应用程序的仪表板。 -2. 转到 “域名” 选项卡并单击 “添加域名”。 -3. 输入您在上一步中创建的 DNS 记录 (例如:`app.yourdomain.com`)。 - -import { Callout } from 'fumadocs-ui/components/callout'; - - - -**注意:** 将容器端口设置为您的应用程序正在运行的端口。 - - - -等待 20-30 秒,让 Traefik 生成证书,之后您可以通过新设置的域访问您的应用程序。 - -转到任何应用程序并转到 “域名” 选项卡并单击 “添加域名” ,然后只需输入您在上一步中创建的记录即可。 - diff --git a/apps/docs/content/docs/core/domain/application-setup.mdx b/apps/docs/content/docs/core/domain/application-setup.mdx deleted file mode 100644 index 4e862f34..00000000 --- a/apps/docs/content/docs/core/domain/application-setup.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "Application Domain Setup" -description: "Learn how to setup a domain for an application" ---- - -This guide details how to set up a domain for your application. - -## Create DNS Record - -1. Add an `A` record to your DNS settings: - - **Name:** Enter the route you want to point to (e.g., `app` for `app.yourdomain.com`). - - **Value:** Type in the IP address of your server, such as `1.2.3.4`. - -## Application Domain Setup - -1. Navigate to your application's dashboard. -2. Go to the `Domains` tab and click on `Add Domain`. -3. Enter the DNS record you created in the previous step (e.g., `app.yourdomain.com`). -4. Make sure to assign the right container port (e.g., NextJS: `3000`). -5. Choose your certificate option: - - `None` - - `Let's Encrypt` - - -For detailed instructions on setting up certificates, refer to the [Certificates](/docs/core/domain/certificates) documentation. - - - - diff --git a/apps/docs/content/docs/core/domain/certificates.cn.mdx b/apps/docs/content/docs/core/domain/certificates.cn.mdx deleted file mode 100644 index aeb62438..00000000 --- a/apps/docs/content/docs/core/domain/certificates.cn.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "证书" -description: "了解如何为 Dokploy 面板设置证书" ---- - -import { Callout } from 'fumadocs-ui/components/callout'; - -在为 Dokploy 使用域名时,我们提供三种证书选项: - -- 不使用 (`None`) -- 使用免费的 SSL 证书(来自 [Let's Encrypt](https://letsencrypt.org/)) -- 使用自定义 SSL 证书 - -## 不使用(None) - -选择 `None` 意味着我们不会分配 `tlsResolver`,因此你的 DNS 提供商可以从他们的服务器实现 SSL 证书。 - -当你在 Cloudflare 上注册域名时,Cloudflare 会自动分配 SSL 证书,因此你需要在 Dokploy 中选择 `None` 并禁用 HTTPS。 - -## Let's Encrypt - -使用来自 [Let's Encrypt](https://letsencrypt.org/) 的免费 SSL 证书是最简单的选项,但它有一些限制: - -1. **速率限制**:在特定时间范围内,每个域名和账户可发放的证书数量有限制。 -2. **有效期短**:证书仅有效 90 天,但 Traefik 会自动为你续期。 -3. **通配符证书**:虽然支持,但获取通配符证书需要 DNS-01 验证,可能会更复杂。 -4. **仅域名验证**:Let's Encrypt 仅提供域名验证(DV)证书,这意味着它们只验证域名所有权,而不验证背后的组织。 -5. **无担保**:证书没有任何担保或责任覆盖,可能不适用于所有用例。 - -### 其他提供商 - -对于由 Cloudflare 以外的提供商管理的域名,流程非常简单: - -1. 在 Dokploy 中选择 `Let's Encrypt` 并启用 `HTTPS`。 -2. 确保 DNS 记录已正确设置为指向你的服务器。 -3. 其余工作由 Traefik 处理,证书应在大约 20 秒内生成。 - -### Cloudflare 设置 - -如果你的域名由 Cloudflare 管理: - -1. 确保你的域名在 Cloudflare 中设置为 `Full (Strict)` 模式。 -2. 在 Dokploy 中选择 `Let's Encrypt` 并启用 `HTTPS`。 - -Cloudflare 配置步骤: - -1. 登录 Cloudflare 并导航至 `Websites` -> `Your Domain` -> `SSL/TLS` -> `Overview`。 -2. 你会看到四种模式(Off、Flexible、Full、Full (Strict))。 -3. 要使用 Let's Encrypt,选择 `Full (Strict)`。 - - - **注意**:在应用程序中创建域名时,确保使用 `Let's Encrypt` 证书并启用 `HTTPS`。证书的生成通常需要大约 20 秒。如果证书未生成,请重启 Traefik 并重试。 - - -## 自定义 SSL - -我们提供了创建证书并让 Traefik 引用它的方法,但这并不意味着它会自动生效。你需要调整 Traefik 配置以使用它。 - -你可以在[这里](https://docs.traefik.io/https/acme/#custom-ssl-certificates)阅读更多关于如何创建自定义证书的内容。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/domain/certificates.mdx b/apps/docs/content/docs/core/domain/certificates.mdx deleted file mode 100644 index bf8bc72b..00000000 --- a/apps/docs/content/docs/core/domain/certificates.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: "Certificates" -description: "Learn how to set up certificates for the Dokploy panel" ---- - -import { Callout } from 'fumadocs-ui/components/callout'; - -When using a domain for Dokploy, we offer 3 options for certificates: - -- Use `None` -- Use a free SSL certificate from [Let's Encrypt](https://letsencrypt.org/) -- Use a custom SSL certificate - -## None - -Using `None` basically means we will not assign a `tlsResolver`, so your DNS provider can implement SSL certificates from their own server. - -When you register a domain on Cloudflare, the SSL certificate is automatically assigned by Cloudflare, so you need to select `None` in Dokploy and disable HTTPS. - -## Let's Encrypt - -Using a free SSL certificate from [Let's Encrypt](https://letsencrypt.org/) is the easiest option, but it comes with some limitations: - -1. **Rate Limits**: There are limits on the number of certificates you can issue per domain and account within specific time frames. -2. **Short Validity Period**: Certificates are valid for only 90 days, but Traefik automatically renews them for you. -3. **Wildcard Certificates**: While supported, obtaining wildcard certificates requires DNS-01 validation, which can be more complex. -4. **Domain Validation Only**: Let's Encrypt only provides Domain Validation (DV) certificates, which means they only verify domain ownership, not the organization behind it. -5. **No Warranty**: Certificates come without any warranties or liability coverage, which might not be suitable for all use cases. - -### Other Providers - -For domains managed by providers other than Cloudflare, the process is simple: - -1. In Dokploy, select `Let's Encrypt` and enable `HTTPS`. -2. Ensure your DNS records are correctly set up to point to your server. -3. Traefik will handle the rest, and the certificate should be generated within about 20 seconds. - -### Cloudflare Setup - -If your domain is managed by Cloudflare: - -1. Ensure your domain is set to `Full (Strict)` mode in Cloudflare. -2. In Dokploy, select `Let's Encrypt` and enable `HTTPS`. - -Steps for Cloudflare configuration: - -1. Log in to Cloudflare and navigate to `Websites` -> `Your Domain` -> `SSL/TLS` -> `Overview`. -2. You will see 4 different modes (Off, Flexible, Full, Full (Strict)). -3. To use Let's Encrypt, select `Full (Strict)`. - - - **Note:** When creating a domain in your application, ensure you use the `Let's Encrypt` certificate and enable `HTTPS`. The generation of certificates typically takes about 20 seconds. If the certificate is not generated, restart Traefik and try again. - - -## Custom SSL - -We provide a way to create a certificate and have Traefik reference it, but that doesn't mean it will work automatically. You need to adjust the Traefik configuration to use it. - -You can read more about how to create a custom certificate [here](https://docs.traefik.io/https/acme/#custom-ssl-certificates). diff --git a/apps/docs/content/docs/core/domain/docker-compose-setup.cn.mdx b/apps/docs/content/docs/core/domain/docker-compose-setup.cn.mdx deleted file mode 100644 index 2dd99403..00000000 --- a/apps/docs/content/docs/core/domain/docker-compose-setup.cn.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Docker Compose 设置" -description: "了解如何为 Docker Compose 应用程序设置域名" ---- -import { Step, Steps } from 'fumadocs-ui/components/steps'; - -本指南详细说明了如何为你的 Docker Compose 应用程序设置域名。 - -## 创建 DNS 记录 - -1. 添加一个 `A` 记录到你的 DNS 设置中: - - **名称:** 输入你希望指向的路径(例如,`app` 对应 `app.yourdomain.com`)。 - - **值:** 输入你的服务器 IP 地址,例如 `1.2.3.4`。 - -## Docker Compose 域名设置 - -要使 Docker Compose 服务或容器通过域名访问,需要在现有的 Docker Compose 文件中添加两部分内容。 - - - -添加 `dokploy-network` 网络到每个服务。 - -```yaml -services: - app: - image: nextjs-app - networks: - - dokploy-network - ports: - - "3000" - -networks: - dokploy-network: - external: true -``` - - - -添加 Traefik 标签,使服务可以通过域名访问。 - -1. 如果你使用的是默认的 Cloudflare 配置,添加以下标签: - -- `traefik.http.routers..entrypoints=web` - -2. 如果你使用的是 Let's Encrypt 或 Cloudflare 的 Full Strict 模式,添加以下标签: - -- `traefik.http.routers..entrypoints=websecure` -- `traefik.http.routers..tls.certResolver=letsencrypt` - -```yaml -services: - app: - image: nextjs-app - networks: - - dokploy-network - ports: - - "3000" - labels: - - "traefik.enable=true" - - "traefik.http.routers..entrypoints=websecure" - - "traefik.http.routers..tls.certResolver=letsencrypt" - - "traefik.http.routers..rule=Host(`app.yourdomain.com`)" - - "traefik.http.services..loadbalancer.server.port=3000" -networks: - dokploy-network: - external: true -``` - - - -### 基本 `docker-compose.yml` 文件示例 - -有关基本 `docker-compose.yml` 文件的示例,请参阅 [Docker Compose Quickstart](/docs/core/docker-compose/example#tutorial) 文档。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/domain/docker-compose-setup.mdx b/apps/docs/content/docs/core/domain/docker-compose-setup.mdx deleted file mode 100644 index afd12ac4..00000000 --- a/apps/docs/content/docs/core/domain/docker-compose-setup.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: "Docker Compose Setup" -description: "Learn how to setup a domain for a Docker Compose application" ---- -import { Step, Steps } from 'fumadocs-ui/components/steps'; - -This guide details how to set up a domain for your Docker Compose application. - -## Create DNS Record - -1. Add an `A` record to your DNS settings: - - **Name:** Enter the route you want to point to (e.g., `app` for `app.yourdomain.com`). - - **Value:** Type in the IP address of your server, such as `1.2.3.4`. - -## Docker Compose Domain Setup - -To make a Docker Compose service or container accessible via a domain, add two things to your existing Docker Compose file. - - - -Add the `dokploy-network` network to each service. - - -```yaml -services: - app: - image: nextjs-app - networks: - - dokploy-network - ports: - - "3000" - -networks: - dokploy-network: - external: true -``` - - - - - -Traefik labels to make the service accessible through the domain. - - -1. if you are using the default Cloudflare configuration, add the following label: - -- `traefik.http.routers..entrypoints=web` - -2. If you are using Let's Encrypt or Cloudflare's Full Strict mode, add the following labels: - -- `traefik.http.routers..entrypoints=websecure` -- `traefik.http.routers..tls.certResolver=letsencrypt` - - - ```yaml -services: - app: - image: nextjs-app - networks: - - dokploy-network - ports: - - "3000" - labels: - - "traefik.enable=true" - - "traefik.http.routers..entrypoints=websecure" - - "traefik.http.routers..tls.certResolver=letsencrypt" - - "traefik.http.routers..rule=Host(`app.yourdomain.com`)" - - "traefik.http.services..loadbalancer.server.port=3000" -networks: - dokploy-network: - external: true -``` - - - - - - - - -### Example of a Basic `docker-compose.yml` - - -For example of a basic `docker-compose.yml` file, refer to the [Docker Compose Quickstart](/docs/core/docker-compose/example#tutorial) documentation. diff --git a/apps/docs/content/docs/core/domain/requirements.cn.mdx b/apps/docs/content/docs/core/domain/requirements.cn.mdx deleted file mode 100644 index b247cbb4..00000000 --- a/apps/docs/content/docs/core/domain/requirements.cn.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "要求" -description: "查看为 Dokploy 面板配置域名的要求" ---- - -本指南将帮助你了解将域名分配给 Dokploy 面板或在其他应用程序(无论是 Docker Compose 还是其他)中使用的要求。 - -## 要求 - -在开始之前,请确保你已从以下提供商之一或你选择的其他提供商购买了域名: - -- [Cloudflare](https://www.cloudflare.com/) -- [Namecheap](https://www.namecheap.com/domains/) -- [Name.com](https://www.name.com/) -- [GoDaddy](https://www.godaddy.com/) -- [Domain.com](https://www.domain.com/) - -## 转移设置(可选) - -我们建议将你的域名转移到 Cloudflare,以获得免费 SSL 证书并灵活使用工具: - -- [将域名转移到 Cloudflare](https://developers.cloudflare.com/registrar/get-started/transfer-domain-to-cloudflare/) \ No newline at end of file diff --git a/apps/docs/content/docs/core/domain/requirements.mdx b/apps/docs/content/docs/core/domain/requirements.mdx deleted file mode 100644 index 6dfa3577..00000000 --- a/apps/docs/content/docs/core/domain/requirements.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Requirements" -description: "See a requirements for a domain for the Dokploy panel" ---- - -This guide will give you an idea of the requirements to assign a domain to your Dokploy panel or use it in any other application, whether Docker Compose or otherwise. - -## Requirements - -Before beginning, ensure you have a domain purchased from one of the following providers or a provider of your choice: - -- [Cloudflare](https://www.cloudflare.com/) -- [Namecheap](https://www.namecheap.com/domains/) -- [Name.com](https://www.name.com/) -- [GoDaddy](https://www.godaddy.com/) -- [Domain.com](https://www.domain.com/) - - -## Transfer Setup(Optional) - -We recommend transferring your domain to Cloudflare for free SSL certificates and flexibility in using tools: - -- [Transfer Domain to Cloudflare](https://developers.cloudflare.com/registrar/get-started/transfer-domain-to-cloudflare/) - diff --git a/apps/docs/content/docs/core/domain/web-domain-setup.cn.mdx b/apps/docs/content/docs/core/domain/web-domain-setup.cn.mdx deleted file mode 100644 index 99225564..00000000 --- a/apps/docs/content/docs/core/domain/web-domain-setup.cn.mdx +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Web 域名设置" -description: "学习如何为 Dokploy 面板设置主域名" ---- - -## 介绍 - -本指南涵盖 Dokploy 面板主域名的基本设置。 - -## 要求 - -开始之前,请确保您已从以下提供商之一购买了域名: - -- [Cloudflare](https://www.cloudflare.com/) -- [Namecheap](https://www.namecheap.com/domains/) -- [Name.com](https://www.name.com/) -- [GoDaddy](https://www.godaddy.com/) -- [Domain.com](https://www.domain.com/) -- [阿里云](https://www.aliyun.com/) -- [腾讯云](https://cloud.tencent.com/) - -## 域名转移 - -我们建议将您的域转移到 Cloudflare 以提升安全性和增强服务: - -- [将域名转移到 Cloudflare](https://developers.cloudflare.com/registrar/get-started/transfer-domain-to-cloudflare/) - -## DNS 设置 - -使用 [Cloudflare](https://www.cloudflare.com/) 用于 DNS 管理: - -1. 登录 Cloudflare 并导航至 `Websites` -> `Your Domain` -> `DNS` -> `Records`. -2. 点击 `Add record`, 选择 `A`. -3. 在 name 字段中输入 `web` 和, 在值字段中输入您的 IP 地址(例如,`1.2.3.4`) 。 -4. 保存记录。 您的 DNS 记录将是 `web.dokploy.com`. - - - -## Dokploy 面板设置 - -1. 登录您的 Dokploy 面板。 -2. 导航到 `/dashboard/settings/server`. -3. 在服务器域下,将您的域设置为与 Cloudflare 中配置的域相匹配(例如, `web.dokploy.com`). -4. 保存,应用更改需要约 20 秒的时间生效。 -5. 通过以下方式访问您的面板 `https://web.dokploy.com`. - - diff --git a/apps/docs/content/docs/core/domain/web-domain-setup.mdx b/apps/docs/content/docs/core/domain/web-domain-setup.mdx deleted file mode 100644 index cf2e9822..00000000 --- a/apps/docs/content/docs/core/domain/web-domain-setup.mdx +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Web Domain Setup" -description: "Learn how to setup a main domain for the Dokploy panel" ---- - -This guide covers the basic setup of a main domain for your Dokploy panel. - -## DNS Setup - -We'll use [Cloudflare](https://www.cloudflare.com/) for DNS management, but you can use any provider. The steps should be similar. - -1. Log in to Cloudflare and navigate to `Websites` -> `Your Domain` -> `DNS` -> `Records`. -2. Click on `Add record`, select `A`. -3. Enter `canary` in the name field and your IP address (e.g., `1.2.3.4`) in the value field. -4. Save the record. Your DNS record will be `canary.dokploy.com`. - - - - -## Dokploy Panel Setup - -1. Log in to your Dokploy panel. -2. Navigate to `/dashboard/settings/server`. -3. Under Server domain, set your domain to match the one configured in Cloudflare (e.g., `canary.dokploy.com`). -4. Choose your certificate option: - - `None` - - `Let's Encrypt` -6. Access your panel via `https://canary.dokploy.com`. - - -For detailed instructions on setting up certificates, refer to the [Certificates](/docs/core/domain/certificates) documentation. - - - \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/astro-ssr.cn.mdx b/apps/docs/content/docs/core/examples/astro-ssr.cn.mdx deleted file mode 100644 index ff8a2c43..00000000 --- a/apps/docs/content/docs/core/examples/astro-ssr.cn.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/astro-ssr.mdx b/apps/docs/content/docs/core/examples/astro-ssr.mdx deleted file mode 100644 index 805a2f10..00000000 --- a/apps/docs/content/docs/core/examples/astro-ssr.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/astro.cn.mdx b/apps/docs/content/docs/core/examples/astro.cn.mdx deleted file mode 100644 index 84b5570a..00000000 --- a/apps/docs/content/docs/core/examples/astro.cn.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/astro.mdx b/apps/docs/content/docs/core/examples/astro.mdx deleted file mode 100644 index cfc7595e..00000000 --- a/apps/docs/content/docs/core/examples/astro.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/lit.cn.mdx b/apps/docs/content/docs/core/examples/lit.cn.mdx deleted file mode 100644 index dd768029..00000000 --- a/apps/docs/content/docs/core/examples/lit.cn.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/lit.mdx b/apps/docs/content/docs/core/examples/lit.mdx deleted file mode 100644 index c9f5e2dd..00000000 --- a/apps/docs/content/docs/core/examples/lit.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/nestjs.cn.mdx b/apps/docs/content/docs/core/examples/nestjs.cn.mdx deleted file mode 100644 index c7a8e692..00000000 --- a/apps/docs/content/docs/core/examples/nestjs.cn.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -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)。 diff --git a/apps/docs/content/docs/core/examples/nestjs.mdx b/apps/docs/content/docs/core/examples/nestjs.mdx deleted file mode 100644 index b10bb748..00000000 --- a/apps/docs/content/docs/core/examples/nestjs.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -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). diff --git a/apps/docs/content/docs/core/examples/nextjs.cn.mdx b/apps/docs/content/docs/core/examples/nextjs.cn.mdx deleted file mode 100644 index 70144755..00000000 --- a/apps/docs/content/docs/core/examples/nextjs.cn.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -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)。 diff --git a/apps/docs/content/docs/core/examples/nextjs.mdx b/apps/docs/content/docs/core/examples/nextjs.mdx deleted file mode 100644 index f351ea50..00000000 --- a/apps/docs/content/docs/core/examples/nextjs.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/preact.cn.mdx b/apps/docs/content/docs/core/examples/preact.cn.mdx deleted file mode 100644 index 7874f96f..00000000 --- a/apps/docs/content/docs/core/examples/preact.cn.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/preact.mdx b/apps/docs/content/docs/core/examples/preact.mdx deleted file mode 100644 index bdedf75f..00000000 --- a/apps/docs/content/docs/core/examples/preact.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/qwik.cn.mdx b/apps/docs/content/docs/core/examples/qwik.cn.mdx deleted file mode 100644 index 164d2178..00000000 --- a/apps/docs/content/docs/core/examples/qwik.cn.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/qwik.mdx b/apps/docs/content/docs/core/examples/qwik.mdx deleted file mode 100644 index 92101d51..00000000 --- a/apps/docs/content/docs/core/examples/qwik.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/remix.cn.mdx b/apps/docs/content/docs/core/examples/remix.cn.mdx deleted file mode 100644 index f8bb1a3c..00000000 --- a/apps/docs/content/docs/core/examples/remix.cn.mdx +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Remix -description: 部署一个简单的 Remix 应用程序。 ---- - - -此示例将部署一个简单的 Remix 应用程序。 - -1. **在您的应用程序中使用 Git 提供商**: - - 仓库:`https://github.com/Dokploy/examples.git` - - 分支:`main` - - 构建路径:`/remix` - -2. **点击部署**: - - 通过点击部署按钮来部署您的应用程序。 - -3. **生成域名**: - - 点击生成域名按钮。 - - 将为您生成一个新域名。 - - 您可以使用此域名访问您的应用程序。 - -如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。 diff --git a/apps/docs/content/docs/core/examples/remix.mdx b/apps/docs/content/docs/core/examples/remix.mdx deleted file mode 100644 index b7a028ef..00000000 --- a/apps/docs/content/docs/core/examples/remix.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/solidjs.cn.mdx b/apps/docs/content/docs/core/examples/solidjs.cn.mdx deleted file mode 100644 index b61bfcfc..00000000 --- a/apps/docs/content/docs/core/examples/solidjs.cn.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/solidjs.mdx b/apps/docs/content/docs/core/examples/solidjs.mdx deleted file mode 100644 index 15adf339..00000000 --- a/apps/docs/content/docs/core/examples/solidjs.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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). diff --git a/apps/docs/content/docs/core/examples/svelte.cn.mdx b/apps/docs/content/docs/core/examples/svelte.cn.mdx deleted file mode 100644 index f57c6e2e..00000000 --- a/apps/docs/content/docs/core/examples/svelte.cn.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/svelte.mdx b/apps/docs/content/docs/core/examples/svelte.mdx deleted file mode 100644 index 1397db08..00000000 --- a/apps/docs/content/docs/core/examples/svelte.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/vite-react.cn.mdx b/apps/docs/content/docs/core/examples/vite-react.cn.mdx deleted file mode 100644 index bfdd430d..00000000 --- a/apps/docs/content/docs/core/examples/vite-react.cn.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/vite-react.mdx b/apps/docs/content/docs/core/examples/vite-react.mdx deleted file mode 100644 index 78ac71b9..00000000 --- a/apps/docs/content/docs/core/examples/vite-react.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/vuejs.cn.mdx b/apps/docs/content/docs/core/examples/vuejs.cn.mdx deleted file mode 100644 index badc775a..00000000 --- a/apps/docs/content/docs/core/examples/vuejs.cn.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -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)。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/examples/vuejs.mdx b/apps/docs/content/docs/core/examples/vuejs.mdx deleted file mode 100644 index 28b03f98..00000000 --- a/apps/docs/content/docs/core/examples/vuejs.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -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). \ No newline at end of file diff --git a/apps/docs/content/docs/core/extra/api-reference.mdx b/apps/docs/content/docs/core/extra/api-reference.mdx deleted file mode 100644 index bb160803..00000000 --- a/apps/docs/content/docs/core/extra/api-reference.mdx +++ /dev/null @@ -1,22668 +0,0 @@ ---- -title: Dokploy API -description: Endpoints for dokploy -full: true ---- - -import { Root, API, APIInfo, APIExample, Responses, Response, ResponseTypes, ExampleResponse, TypeScriptResponse, Property, ObjectCollapsible, Requests, Request } from "fumadocs-ui/components/api"; - - - - - - - -## admin-one - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/admin.one" -``` - - - - - -```js -fetch("http://localhost:3000/admin.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-createUserInvitation - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Format: `"email"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/admin.createUserInvitation" \ - -d '{ - "email": "user@example.com" -}' -``` - - - - - -```js -fetch("http://localhost:3000/admin.createUserInvitation", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-removeUser - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/admin.removeUser" \ - -d '{ - "authId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/admin.removeUser", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-getUserByToken - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/admin.getUserByToken" -``` - - - - - -```js -fetch("http://localhost:3000/admin.getUserByToken", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-assignPermissions - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/admin.assignPermissions" \ - -d '{ - "userId": "string", - "canCreateProjects": true, - "canCreateServices": true, - "canDeleteProjects": true, - "canDeleteServices": true, - "accesedProjects": [ - "string" - ], - "accesedServices": [ - "string" - ], - "canAccessToTraefikFiles": true, - "canAccessToDocker": true, - "canAccessToAPI": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/admin.assignPermissions", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-cleanGithubApp - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/admin.cleanGithubApp" -``` - - - - - -```js -fetch("http://localhost:3000/admin.cleanGithubApp", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-getRepositories - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/admin.getRepositories" -``` - - - - - -```js -fetch("http://localhost:3000/admin.getRepositories", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-getBranches - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/admin.getBranches" -``` - - - - - -```js -fetch("http://localhost:3000/admin.getBranches", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## admin-haveGithubConfigured - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/admin.haveGithubConfigured" -``` - - - - - -```js -fetch("http://localhost:3000/admin.haveGithubConfigured", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## docker-getContainers - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/docker.getContainers" -``` - - - - - -```js -fetch("http://localhost:3000/docker.getContainers", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## docker-getConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/docker.getConfig" -``` - - - - - -```js -fetch("http://localhost:3000/docker.getConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## docker-getContainersByAppNameMatch - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/docker.getContainersByAppNameMatch" -``` - - - - - -```js -fetch("http://localhost:3000/docker.getContainersByAppNameMatch", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## docker-getContainersByAppLabel - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/docker.getContainersByAppLabel" -``` - - - - - -```js -fetch("http://localhost:3000/docker.getContainersByAppLabel", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-createAdmin - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Format: `"email"` - - - - - -Minimum length: `8` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.createAdmin" \ - -d '{ - "email": "user@example.com", - "password": "stringst" -}' -``` - - - - - -```js -fetch("http://localhost:3000/auth.createAdmin", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-createUser - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `8` - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.createUser" \ - -d '{ - "password": "stringst", - "id": "string", - "token": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/auth.createUser", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-login - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Format: `"email"` - - - - - -Minimum length: `8` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.login" \ - -d '{ - "email": "user@example.com", - "password": "stringst" -}' -``` - - - - - -```js -fetch("http://localhost:3000/auth.login", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-get - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/auth.get" -``` - - - - - -```js -fetch("http://localhost:3000/auth.get", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-logout - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.logout" -``` - - - - - -```js -fetch("http://localhost:3000/auth.logout", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - -Value in: `"admin" | "user"` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.update" \ - -d '{ - "id": "string", - "email": "string", - "password": "string", - "rol": "admin", - "image": "string", - "secret": "string", - "token": "string", - "is2FAEnabled": true, - "createdAt": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/auth.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-generateToken - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.generateToken" -``` - - - - - -```js -fetch("http://localhost:3000/auth.generateToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/auth.one" -``` - - - - - -```js -fetch("http://localhost:3000/auth.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-updateByAdmin - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - -Value in: `"admin" | "user"` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.updateByAdmin" \ - -d '{ - "id": "string", - "email": "string", - "password": "string", - "rol": "admin", - "image": "string", - "secret": "string", - "token": "string", - "is2FAEnabled": true, - "createdAt": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/auth.updateByAdmin", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-generate2FASecret - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/auth.generate2FASecret" -``` - - - - - -```js -fetch("http://localhost:3000/auth.generate2FASecret", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-verify2FASetup - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `6` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.verify2FASetup" \ - -d '{ - "pin": "string", - "secret": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/auth.verify2FASetup", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-verifyLogin2FA - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `6` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.verifyLogin2FA" \ - -d '{ - "pin": "string", - "id": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/auth.verifyLogin2FA", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-disable2FA - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.disable2FA" -``` - - - - - -```js -fetch("http://localhost:3000/auth.disable2FA", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## auth-verifyToken - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/auth.verifyToken" -``` - - - - - -```js -fetch("http://localhost:3000/auth.verifyToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/project.create" \ - -d '{ - "name": "string", - "description": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/project.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/project.one" -``` - - - - - -```js -fetch("http://localhost:3000/project.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/project.all" -``` - - - - - -```js -fetch("http://localhost:3000/project.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/project.remove" \ - -d '{ - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/project.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## project-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/project.update" \ - -d '{ - "name": "string", - "description": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/project.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.create" \ - -d '{ - "name": "string", - "appName": "string", - "description": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/application.one" -``` - - - - - -```js -fetch("http://localhost:3000/application.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.reload" \ - -d '{ - "appName": "string", - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.delete" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.stop" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.start" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-redeploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.redeploy" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.redeploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.saveEnvironment" \ - -d '{ - "applicationId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveBuildType - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.saveBuildType" \ - -d '{ - "applicationId": "string", - "buildType": "dockerfile", - "dockerfile": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.saveBuildType", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveGithubProvider - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.saveGithubProvider" \ - -d '{ - "applicationId": "string", - "repository": "string", - "branch": "string", - "owner": "string", - "buildPath": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.saveGithubProvider", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveDockerProvider - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.saveDockerProvider" \ - -d '{ - "dockerImage": "string", - "applicationId": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.saveDockerProvider", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-saveGitProdiver - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.saveGitProdiver" \ - -d '{ - "customGitBranch": "string", - "applicationId": "string", - "customGitBuildPath": "string", - "customGitUrl": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.saveGitProdiver", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-generateSSHKey - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.generateSSHKey" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.generateSSHKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-removeSSHKey - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.removeSSHKey" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.removeSSHKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-markRunning - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.markRunning" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.markRunning", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"github" | "docker" | "git"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - -Value in: `"dockerfile" | "heroku_buildpacks" | "paketo_buildpacks" | "nixpacks"` - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.update" \ - -d '{ - "applicationId": "string", - "name": "string", - "appName": "string", - "description": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "title": "string", - "enabled": true, - "subtitle": "string", - "command": "string", - "refreshToken": "string", - "sourceType": "github", - "repository": "string", - "owner": "string", - "branch": "string", - "buildPath": "string", - "autoDeploy": true, - "username": "string", - "password": "string", - "dockerImage": "string", - "customGitUrl": "string", - "customGitBranch": "string", - "customGitBuildPath": "string", - "customGitSSHKey": "string", - "dockerfile": "string", - "healthCheckSwarm": { - "Test": [ - "string" - ], - "Interval": 0, - "Timeout": 0, - "StartPeriod": 0, - "Retries": 0 - }, - "restartPolicySwarm": { - "Condition": "string", - "Delay": 0, - "MaxAttempts": 0, - "Window": 0 - }, - "placementSwarm": { - "Constraints": [ - "string" - ], - "Preferences": [ - { - "Spread": { - "SpreadDescriptor": "string" - } - } - ], - "MaxReplicas": 0, - "Platforms": [ - { - "Architecture": "string", - "OS": "string" - } - ] - }, - "updateConfigSwarm": { - "Parallelism": 0, - "Delay": 0, - "FailureAction": "string", - "Monitor": 0, - "MaxFailureRatio": 0, - "Order": "string" - }, - "rollbackConfigSwarm": { - "Parallelism": 0, - "Delay": 0, - "FailureAction": "string", - "Monitor": 0, - "MaxFailureRatio": 0, - "Order": "string" - }, - "modeSwarm": { - "Replicated": { - "Replicas": 0 - }, - "Global": {}, - "ReplicatedJob": { - "MaxConcurrent": 0, - "TotalCompletions": 0 - }, - "GlobalJob": {} - }, - "labelsSwarm": { - "property1": "string", - "property2": "string" - }, - "networkSwarm": [ - { - "Target": "string", - "Aliases": [ - "string" - ], - "DriverOpts": {} - } - ], - "replicas": 0, - "applicationStatus": "idle", - "buildType": "dockerfile", - "createdAt": "string", - "registryId": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-refreshToken - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.refreshToken" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.refreshToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.deploy" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-cleanQueues - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.cleanQueues" \ - -d '{ - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.cleanQueues", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-readTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/application.readTraefikConfig" -``` - - - - - -```js -fetch("http://localhost:3000/application.readTraefikConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-updateTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/application.updateTraefikConfig" \ - -d '{ - "applicationId": "string", - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/application.updateTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## application-readAppMonitoring - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/application.readAppMonitoring" -``` - - - - - -```js -fetch("http://localhost:3000/application.readAppMonitoring", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Default: `"mysql:8"` - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.create" \ - -d '{ - "name": "string", - "appName": "string", - "dockerImage": "mysql:8", - "projectId": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "databaseRootPassword": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/mysql.one" -``` - - - - - -```js -fetch("http://localhost:3000/mysql.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.start" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.stop" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.saveExternalPort" \ - -d '{ - "mysqlId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.deploy" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.changeStatus" \ - -d '{ - "mysqlId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.reload" \ - -d '{ - "mysqlId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.remove" \ - -d '{ - "mysqlId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.saveEnvironment" \ - -d '{ - "mysqlId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mysql-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"mysql:8"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mysql.update" \ - -d '{ - "mysqlId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "databaseRootPassword": "string", - "dockerImage": "mysql:8", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mysql.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Default: `"postgres:15"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.create" \ - -d '{ - "name": "string", - "appName": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "dockerImage": "postgres:15", - "projectId": "string", - "description": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/postgres.one" -``` - - - - - -```js -fetch("http://localhost:3000/postgres.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.start" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.stop" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.saveExternalPort" \ - -d '{ - "postgresId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.deploy" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.changeStatus" \ - -d '{ - "postgresId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.remove" \ - -d '{ - "postgresId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.saveEnvironment" \ - -d '{ - "postgresId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.reload" \ - -d '{ - "postgresId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## postgres-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"postgres:15"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/postgres.update" \ - -d '{ - "postgresId": "string", - "name": "string", - "appName": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "description": "string", - "dockerImage": "postgres:15", - "command": "string", - "env": "string", - "memoryReservation": 0, - "externalPort": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/postgres.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Default: `"redis:8"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.create" \ - -d '{ - "name": "string", - "appName": "string", - "databasePassword": "string", - "dockerImage": "redis:8", - "projectId": "string", - "description": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/redis.one" -``` - - - - - -```js -fetch("http://localhost:3000/redis.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.start" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.reload" \ - -d '{ - "redisId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.stop" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.saveExternalPort" \ - -d '{ - "redisId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.deploy" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.changeStatus" \ - -d '{ - "redisId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.remove" \ - -d '{ - "redisId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.saveEnvironment" \ - -d '{ - "redisId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redis-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"redis:8"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redis.update" \ - -d '{ - "redisId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databasePassword": "string", - "dockerImage": "redis:8", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "createdAt": "string", - "applicationStatus": "idle", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redis.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Default: `"mongo:15"` - - - - - - - - - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.create" \ - -d '{ - "name": "string", - "appName": "string", - "dockerImage": "mongo:15", - "projectId": "string", - "description": "string", - "databaseUser": "string", - "databasePassword": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/mongo.one" -``` - - - - - -```js -fetch("http://localhost:3000/mongo.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.start" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.stop" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.saveExternalPort" \ - -d '{ - "mongoId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.deploy" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.changeStatus" \ - -d '{ - "mongoId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.reload" \ - -d '{ - "mongoId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.remove" \ - -d '{ - "mongoId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.saveEnvironment" \ - -d '{ - "mongoId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mongo-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - - - - - -Default: `"mongo:15"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mongo.update" \ - -d '{ - "mongoId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databaseUser": "string", - "databasePassword": "string", - "dockerImage": "mongo:15", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mongo.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Default: `"mariadb:6"` - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.create" \ - -d '{ - "name": "string", - "appName": "string", - "dockerImage": "mariadb:6", - "databaseRootPassword": "string", - "projectId": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/mariadb.one" -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-start - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.start" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.start", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.stop" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-saveExternalPort - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.saveExternalPort" \ - -d '{ - "mariadbId": "string", - "externalPort": 0 -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.saveExternalPort", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.deploy" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-changeStatus - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.changeStatus" \ - -d '{ - "mariadbId": "string", - "applicationStatus": "idle" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.changeStatus", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.remove" \ - -d '{ - "mariadbId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-saveEnvironment - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.saveEnvironment" \ - -d '{ - "mariadbId": "string", - "env": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.saveEnvironment", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-reload - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.reload" \ - -d '{ - "mariadbId": "string", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.reload", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mariadb-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"mariadb:6"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mariadb.update" \ - -d '{ - "mariadbId": "string", - "name": "string", - "appName": "string", - "description": "string", - "databaseName": "string", - "databaseUser": "string", - "databasePassword": "string", - "databaseRootPassword": "string", - "dockerImage": "mariadb:6", - "command": "string", - "env": "string", - "memoryReservation": 0, - "memoryLimit": 0, - "cpuReservation": 0, - "cpuLimit": 0, - "externalPort": 0, - "applicationStatus": "idle", - "createdAt": "string", - "projectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mariadb.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - -Value in: `"docker-compose" | "stack"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.create" \ - -d '{ - "name": "string", - "description": "string", - "projectId": "string", - "composeType": "docker-compose", - "appName": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/compose.one" -``` - - - - - -```js -fetch("http://localhost:3000/compose.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - -Value in: `"git" | "github" | "raw"` - - - - - -Value in: `"docker-compose" | "stack"` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Value in: `"idle" | "running" | "done" | "error"` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.update" \ - -d '{ - "composeId": "string", - "name": "string", - "appName": "string", - "description": "string", - "env": "string", - "composeFile": "string", - "refreshToken": "string", - "sourceType": "git", - "composeType": "docker-compose", - "repository": "string", - "owner": "string", - "branch": "string", - "autoDeploy": true, - "customGitUrl": "string", - "customGitBranch": "string", - "customGitSSHKey": "string", - "command": "string", - "composePath": "string", - "composeStatus": "idle", - "projectId": "string", - "createdAt": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.delete" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-cleanQueues - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.cleanQueues" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.cleanQueues", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-allServices - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/compose.allServices" -``` - - - - - -```js -fetch("http://localhost:3000/compose.allServices", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-randomizeCompose - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.randomizeCompose" \ - -d '{ - "composeId": "string", - "prefix": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.randomizeCompose", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-deploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.deploy" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.deploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-redeploy - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.redeploy" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.redeploy", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-stop - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.stop" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.stop", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-getDefaultCommand - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/compose.getDefaultCommand" -``` - - - - - -```js -fetch("http://localhost:3000/compose.getDefaultCommand", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-generateSSHKey - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.generateSSHKey" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.generateSSHKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-refreshToken - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.refreshToken" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.refreshToken", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-removeSSHKey - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.removeSSHKey" \ - -d '{ - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.removeSSHKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-deployTemplate - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/compose.deployTemplate" \ - -d '{ - "projectId": "string", - "id": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/compose.deployTemplate", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## compose-templates - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/compose.templates" -``` - - - - - -```js -fetch("http://localhost:3000/compose.templates", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## user-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/user.all" -``` - - - - - -```js -fetch("http://localhost:3000/user.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## user-byAuthId - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/user.byAuthId" -``` - - - - - -```js -fetch("http://localhost:3000/user.byAuthId", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## user-byUserId - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/user.byUserId" -``` - - - - - -```js -fetch("http://localhost:3000/user.byUserId", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - -Value in: `"letsencrypt" | "none"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/domain.create" \ - -d '{ - "host": "string", - "path": "string", - "port": 0, - "https": true, - "applicationId": "string", - "certificateType": "letsencrypt" -}' -``` - - - - - -```js -fetch("http://localhost:3000/domain.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-byApplicationId - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/domain.byApplicationId" -``` - - - - - -```js -fetch("http://localhost:3000/domain.byApplicationId", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Value in: `"letsencrypt" | "none"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/domain.update" \ - -d '{ - "domainId": "string", - "host": "string", - "path": "string", - "port": 0, - "https": true, - "certificateType": "letsencrypt" -}' -``` - - - - - -```js -fetch("http://localhost:3000/domain.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/domain.one" -``` - - - - - -```js -fetch("http://localhost:3000/domain.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## domain-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/domain.delete" \ - -d '{ - "domainId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/domain.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/destination.create" \ - -d '{ - "name": "string", - "accessKey": "string", - "bucket": "string", - "region": "string", - "endpoint": "string", - "secretAccessKey": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/destination.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-testConnection - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/destination.testConnection" \ - -d '{ - "name": "string", - "accessKey": "string", - "bucket": "string", - "region": "string", - "endpoint": "string", - "secretAccessKey": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/destination.testConnection", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/destination.one" -``` - - - - - -```js -fetch("http://localhost:3000/destination.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/destination.all" -``` - - - - - -```js -fetch("http://localhost:3000/destination.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/destination.remove" \ - -d '{ - "destinationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/destination.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## destination-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/destination.update" \ - -d '{ - "name": "string", - "accessKey": "string", - "bucket": "string", - "region": "string", - "endpoint": "string", - "secretAccessKey": "string", - "destinationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/destination.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - -Value in: `"postgres" | "mariadb" | "mysql" | "mongo"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/backup.create" \ - -d '{ - "schedule": "string", - "enabled": true, - "prefix": "string", - "destinationId": "string", - "database": "string", - "mariadbId": "string", - "mysqlId": "string", - "postgresId": "string", - "mongoId": "string", - "databaseType": "postgres" -}' -``` - - - - - -```js -fetch("http://localhost:3000/backup.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/backup.one" -``` - - - - - -```js -fetch("http://localhost:3000/backup.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Minimum length: `1` - - - - - - - - - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/backup.update" \ - -d '{ - "schedule": "string", - "enabled": true, - "prefix": "string", - "backupId": "string", - "destinationId": "string", - "database": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/backup.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/backup.remove" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/backup.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupPostgres - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/backup.manualBackupPostgres" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/backup.manualBackupPostgres", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupMySql - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/backup.manualBackupMySql" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/backup.manualBackupMySql", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupMariadb - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/backup.manualBackupMariadb" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/backup.manualBackupMariadb", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## backup-manualBackupMongo - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/backup.manualBackupMongo" \ - -d '{ - "backupId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/backup.manualBackupMongo", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## deployment-all - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/deployment.all" -``` - - - - - -```js -fetch("http://localhost:3000/deployment.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## deployment-allByCompose - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/deployment.allByCompose" -``` - - - - - -```js -fetch("http://localhost:3000/deployment.allByCompose", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mounts-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Value in: `"bind" | "volume" | "file"` - - - - - - - - - - - - - - - - - -Minimum length: `1` - - - - - -Default: `"application"` - -Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mounts.create" \ - -d '{ - "type": "bind", - "hostPath": "string", - "volumeName": "string", - "content": "string", - "mountPath": "string", - "serviceType": "application", - "serviceId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mounts.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mounts-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mounts.remove" \ - -d '{ - "mountId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mounts.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mounts-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/mounts.one" -``` - - - - - -```js -fetch("http://localhost:3000/mounts.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## mounts-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Value in: `"bind" | "volume" | "file"` - - - - - - - - - - - - - - - - - -Default: `"application"` - -Value in: `"application" | "postgres" | "mysql" | "mariadb" | "mongo" | "redis" | "compose"` - - - - - -Minimum length: `1` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/mounts.update" \ - -d '{ - "mountId": "string", - "type": "bind", - "hostPath": "string", - "volumeName": "string", - "content": "string", - "serviceType": "application", - "mountPath": "string", - "applicationId": "string", - "postgresId": "string", - "mariadbId": "string", - "mongoId": "string", - "mysqlId": "string", - "redisId": "string", - "composeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/mounts.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## certificates-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/certificates.create" \ - -d '{ - "certificateId": "string", - "name": "string", - "certificateData": "string", - "privateKey": "string", - "certificatePath": "string", - "autoRenew": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/certificates.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## certificates-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/certificates.one" -``` - - - - - -```js -fetch("http://localhost:3000/certificates.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## certificates-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/certificates.remove" \ - -d '{ - "certificateId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/certificates.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## certificates-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/certificates.all" -``` - - - - - -```js -fetch("http://localhost:3000/certificates.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-reloadServer - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.reloadServer" -``` - - - - - -```js -fetch("http://localhost:3000/settings.reloadServer", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-reloadTraefik - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.reloadTraefik" -``` - - - - - -```js -fetch("http://localhost:3000/settings.reloadTraefik", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanUnusedImages - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanUnusedImages" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanUnusedImages", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanUnusedVolumes - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanUnusedVolumes" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanUnusedVolumes", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanStoppedContainers - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanStoppedContainers" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanStoppedContainers", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanDockerBuilder - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanDockerBuilder" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanDockerBuilder", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanDockerPrune - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanDockerPrune" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanDockerPrune", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanAll - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanAll" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanAll", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanMonitoring - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanMonitoring" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanMonitoring", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-saveSSHPrivateKey - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.saveSSHPrivateKey" \ - -d '{ - "sshPrivateKey": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/settings.saveSSHPrivateKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-assignDomainServer - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Default: `"none"` - -Value in: `"letsencrypt" | "none"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.assignDomainServer" \ - -d '{ - "letsEncryptEmail": "string", - "host": "string", - "certificateType": "letsencrypt" -}' -``` - - - - - -```js -fetch("http://localhost:3000/settings.assignDomainServer", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-cleanSSHPrivateKey - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.cleanSSHPrivateKey" -``` - - - - - -```js -fetch("http://localhost:3000/settings.cleanSSHPrivateKey", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateDockerCleanup - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.updateDockerCleanup" \ - -d '{ - "enableDockerCleanup": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/settings.updateDockerCleanup", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/settings.readTraefikConfig" -``` - - - - - -```js -fetch("http://localhost:3000/settings.readTraefikConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.updateTraefikConfig" \ - -d '{ - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/settings.updateTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readWebServerTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/settings.readWebServerTraefikConfig" -``` - - - - - -```js -fetch("http://localhost:3000/settings.readWebServerTraefikConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateWebServerTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.updateWebServerTraefikConfig" \ - -d '{ - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/settings.updateWebServerTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readMiddlewareTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/settings.readMiddlewareTraefikConfig" -``` - - - - - -```js -fetch("http://localhost:3000/settings.readMiddlewareTraefikConfig", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateMiddlewareTraefikConfig - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.updateMiddlewareTraefikConfig" \ - -d '{ - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/settings.updateMiddlewareTraefikConfig", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-checkAndUpdateImage - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.checkAndUpdateImage" -``` - - - - - -```js -fetch("http://localhost:3000/settings.checkAndUpdateImage", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateServer - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.updateServer" -``` - - - - - -```js -fetch("http://localhost:3000/settings.updateServer", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-getDokployVersion - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/settings.getDokployVersion" -``` - - - - - -```js -fetch("http://localhost:3000/settings.getDokployVersion", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readDirectories - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/settings.readDirectories" -``` - - - - - -```js -fetch("http://localhost:3000/settings.readDirectories", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-updateTraefikFile - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/settings.updateTraefikFile" \ - -d '{ - "path": "string", - "traefikConfig": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/settings.updateTraefikFile", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-readTraefikFile - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/settings.readTraefikFile" -``` - - - - - -```js -fetch("http://localhost:3000/settings.readTraefikFile", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## settings-getOpenApiDocument - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/settings.getOpenApiDocument" -``` - - - - - -```js -fetch("http://localhost:3000/settings.getOpenApiDocument", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## security-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/security.create" \ - -d '{ - "applicationId": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/security.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## security-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/security.one" -``` - - - - - -```js -fetch("http://localhost:3000/security.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## security-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/security.delete" \ - -d '{ - "securityId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/security.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## security-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/security.update" \ - -d '{ - "securityId": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/security.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redirects-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redirects.create" \ - -d '{ - "regex": "string", - "replacement": "string", - "permanent": true, - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redirects.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redirects-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/redirects.one" -``` - - - - - -```js -fetch("http://localhost:3000/redirects.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redirects-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redirects.delete" \ - -d '{ - "redirectId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/redirects.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## redirects-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/redirects.update" \ - -d '{ - "redirectId": "string", - "regex": "string", - "replacement": "string", - "permanent": true -}' -``` - - - - - -```js -fetch("http://localhost:3000/redirects.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## port-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - - - - - - - -Default: `"tcp"` - -Value in: `"tcp" | "udp"` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/port.create" \ - -d '{ - "publishedPort": 0, - "targetPort": 0, - "protocol": "tcp", - "applicationId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/port.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## port-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/port.one" -``` - - - - - -```js -fetch("http://localhost:3000/port.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## port-delete - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/port.delete" \ - -d '{ - "portId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/port.delete", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## port-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - - - - - - - - - -Default: `"tcp"` - -Value in: `"tcp" | "udp"` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/port.update" \ - -d '{ - "portId": "string", - "publishedPort": 0, - "targetPort": 0, - "protocol": "tcp" -}' -``` - - - - - -```js -fetch("http://localhost:3000/port.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-create - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Value in: `"selfHosted" | "cloud"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/registry.create" \ - -d '{ - "registryName": "string", - "username": "string", - "password": "string", - "registryUrl": "string", - "registryType": "selfHosted", - "imagePrefix": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/registry.create", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-remove - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/registry.remove" \ - -d '{ - "registryId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/registry.remove", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-update - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Value in: `"selfHosted" | "cloud"` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/registry.update" \ - -d '{ - "registryId": "string", - "registryName": "string", - "imagePrefix": "string", - "username": "string", - "password": "string", - "registryUrl": "string", - "createdAt": "string", - "registryType": "selfHosted", - "adminId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/registry.update", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-all - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/registry.all" -``` - - - - - -```js -fetch("http://localhost:3000/registry.all", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-one - -### Authorization - -"} required={true}> - -In: `header` - - - -### Query Parameters - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/registry.one" -``` - - - - - -```js -fetch("http://localhost:3000/registry.one", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-testRegistry - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - - - - - -Value in: `"selfHosted" | "cloud"` - - - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/registry.testRegistry" \ - -d '{ - "registryName": "string", - "username": "string", - "password": "string", - "registryUrl": "string", - "registryType": "selfHosted", - "imagePrefix": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/registry.testRegistry", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## registry-enableSelfHostedRegistry - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - - - -Minimum length: `1` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/registry.enableSelfHostedRegistry" \ - -d '{ - "registryUrl": "string", - "username": "string", - "password": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/registry.enableSelfHostedRegistry", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## cluster-getNodes - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/cluster.getNodes" -``` - - - - - -```js -fetch("http://localhost:3000/cluster.getNodes", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## cluster-removeWorker - -### Authorization - -"} required={true}> - -In: `header` - - - -### Request Body - - - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X POST "http://localhost:3000/cluster.removeWorker" \ - -d '{ - "nodeId": "string" -}' -``` - - - - - -```js -fetch("http://localhost:3000/cluster.removeWorker", { - method: "POST" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## cluster-addWorker - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/cluster.addWorker" -``` - - - - - -```js -fetch("http://localhost:3000/cluster.addWorker", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - - - - -## cluster-addManager - -### Authorization - -"} required={true}> - -In: `header` - - - -| Status code | Description | -| ----------- | ----------- | -| `200` | Successful response | -| `default` | Error response | - - - - - - - - - -```bash -curl -X GET "http://localhost:3000/cluster.addManager" -``` - - - - - -```js -fetch("http://localhost:3000/cluster.addManager", { - method: "GET" -}); -``` - - - - - - - - - - - - - -```json -{ - "message": "string", - "code": "string", - "issues": [ - { - "message": "string" - } - ] -} -``` - - - - - -```ts -export interface Response { - message: string; - code: string; - issues?: { - message: string; - }[]; -} -``` - - - - - - - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/core/extra/comparison.cn.mdx b/apps/docs/content/docs/core/extra/comparison.cn.mdx deleted file mode 100644 index a5bcc42f..00000000 --- a/apps/docs/content/docs/core/extra/comparison.cn.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "优势" -description: "Dokploy、CapRover、Dokku 和 Coolify 的比较" ---- - -以下部署工具的比较: - -| 特征 | Dokploy | CapRover | Dokku | Coolify | -| -------------------- | ------- | ------------ | ------------ | ------- | -| **用户界面** | ✅ | ✅ | ❌ | ✅ | -| **Docker 编写支持** | ✅ | ❌ | ❌ | ✅ | -| **多节点支持** | ✅ | ✅ | ❌ | ✅ | -| **Traefik 集成** | ✅ | ✅ | 通过插件提供 | ✅ | -| **用户权限管理** | ✅ | ❌ | ❌ | ✅ | -| **高级用户权限管理** | ✅ | ❌ | ❌ | ❌ | -| **内置终端接入** | ✅ | ❌ | ❌ | ✅ | -| **数据库支持** | ✅ | ✅ | ❌ | ✅ | -| **监测** | ✅ | ✅ | ❌ | ❌ | -| **备份** | ✅ | 通过插件提供 | 通过插件提供 | ✅ | -| **开源** | ✅ | ✅ | ✅ | ✅ | -| **云/付费 版本** | ❌ | ✅ | ❌ | ✅ | diff --git a/apps/docs/content/docs/core/extra/comparison.mdx b/apps/docs/content/docs/core/extra/comparison.mdx deleted file mode 100644 index 028ea6d0..00000000 --- a/apps/docs/content/docs/core/extra/comparison.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -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** | ✅ | ❌ | ❌ | ✅ | -| **Advanced User Permission Management** | ✅ | ❌ | ❌ | ❌ | -| **Terminal Access Built In** | ✅ | ❌ | ❌ | ✅ | -| **Database Support** | ✅ | ✅ | ❌ | ✅ | -| **Monitoring** | ✅ | ✅ | ❌ | ❌ | -| **Backups** | ✅ | Available via Plugins | Available via Plugins | ✅ | -| **Open Source** | ✅ | ✅ | ✅ | ✅ | -| **Multi Server Support** | ✅ | ❌ | ❌ | ✅ | -| **Cloud/Paid Version** | ❌ | ✅ | ✅ | ✅ | diff --git a/apps/docs/content/docs/core/get-started/architecture.cn.mdx b/apps/docs/content/docs/core/get-started/architecture.cn.mdx deleted file mode 100644 index f9801ff1..00000000 --- a/apps/docs/content/docs/core/get-started/architecture.cn.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: '架构' -description: '概述 Dokploy 的核心架构组件。' ---- - -了解 Dokploy 的架构对于部署和扩展应用程序至关重要。以下是核心组件的示意图: - - - -## 安装过程 - -安装 Dokploy 时,它会自动设置以下组件: - -1. **Next.js 应用程序**:作为前端界面。利用 Next.js 提供集成的服务器端渲染体验,将 UI 和后端整合成一个统一的应用程序。 -2. **PostgreSQL 数据库**:作为 Dokploy 的主要数据库,因其稳健性和广泛采用而被选用。它存储所有配置和操作数据。 -3. **Redis 数据库**:用于管理部署队列。确保多个部署不会同时触发,避免服务器负载过高和潜在的冻结问题。 -4. **Traefik**:用作反向代理和负载均衡器。Traefik 促进动态路由和服务发现,通过 UI 允许声明性设置,简化配置过程。 - -## 目的和功能 - -Dokploy 架构中的每个组件都扮演着重要角色: - -- **Next.js**:提供可扩展且易于管理的前端框架,将服务器端和客户端逻辑封装在一个平台中,简化了部署和开发工作流。 -- **PostgreSQL**:提供可靠和安全的数据存储能力。在 Dokploy 中的使用确保了所有数据库操作的一致性和高性能。 -- **Redis**:处理并发和任务调度。通过使用 Redis,Dokploy 可以高效管理部署任务,避免在同时操作期间发生冲突和服务器过载。 -- **Traefik**:增强 Docker 集成。其声明性地读取和写入 Docker 配置的能力,使 Dokploy 能够自动化和简化网络流量管理和服务发现。 - -这种结构确保了 Dokploy 不仅在部署应用程序时高效,而且在处理大规模流量和数据时也具有稳健性。 diff --git a/apps/docs/content/docs/core/get-started/architecture.mdx b/apps/docs/content/docs/core/get-started/architecture.mdx deleted file mode 100644 index b2c88f76..00000000 --- a/apps/docs/content/docs/core/get-started/architecture.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: 'Architecture of Dokploy' -description: 'Overview of the core architecture components of Dokploy.' ---- - -Understanding the architecture of Dokploy is crucial for both deploying and scaling applications. Below is a diagram illustrating the core components: - - - - -## Installation Process - -When Dokploy is installed, it automatically sets up the following components: - -1. **Next.js Application**: Serves as the frontend interface. Utilizing Next.js allows for an integrated server-side rendering experience, streamlining the UI and backend into a single cohesive application. -2. **PostgreSQL Database**: Acts as the primary database for Dokploy, chosen for its robustness and widespread adoption. It stores all the configuration and operational data. -3. **Redis Database**: Employed for managing deployment queues. This ensures that multiple deployments do not trigger simultaneously, which could lead to high server load and potential freezing. -4. **Traefik**: Used as a reverse proxy and load balancer. Traefik facilitates dynamic routing and service discovery which simplifies the configuration process by allowing declarative setup through the UI. - -## Purpose and Functionality - -Each component in the Dokploy architecture plays a vital role: - -- **Next.js**: Provides a scalable and easy-to-manage frontend framework, encapsulating both server and client-side logic in one platform. This simplifies deployment and development workflows. -- **PostgreSQL**: Delivers reliable and secure data storage capabilities. Its use within Dokploy ensures consistency and high performance for all database operations. -- **Redis**: Handles concurrency and job scheduling. By using Redis, Dokploy can efficiently manage deployment tasks, avoiding collisions and server overload during simultaneous operations. -- **Traefik**: Enhances Docker integration. Its ability to read from and write to Docker configurations declaratively allows Dokploy to automate and streamline network traffic management and service discovery. - -This structure ensures that Dokploy is not only efficient in deploying applications but also robust in handling traffic and data at scale. diff --git a/apps/docs/content/docs/core/get-started/features.cn.mdx b/apps/docs/content/docs/core/get-started/features.cn.mdx deleted file mode 100644 index 355d0b68..00000000 --- a/apps/docs/content/docs/core/get-started/features.cn.mdx +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: '特点' -description: '探索 Dokploy 提供的全面功能套件,优化应用程序部署和管理。' ---- - -Dokploy 提供了一套全面的功能,旨在简化和增强应用程序部署过程。 - -## 应用程序部署 - -Dokploy 支持两种主要的应用程序部署方法: - -1. **应用程序**:这种简单的方法允许轻松部署。对于单个应用程序而言,它提供了接近即插即用的体验。 -2. **Docker Compose**:一种更高级的选项,需要创建 Dockerfiles 和 `docker-compose.yml`。此方法提供了更大的部署设置控制权和充分利用 Docker Compose 功能的能力。 - -### 应用程序管理 - -通过以下功能管理您的应用程序: - -**基本操作**: - 1. 部署、停止和删除应用程序。 - 2. 直接在应用程序容器中打开终端。 - -**源代码和构建配置**: - 1. 选择源代码提供商(GitHub、Git、Docker)。 - 2. 选择构建类型(Docker、Nixpacks、Heroku Buildpacks、Paketo Buildpacks)。 - -**环境管理**: - 1. 添加和管理环境变量。 - -**监控工具**: - 1. 监控 CPU、内存、磁盘和网络使用情况。 - -**日志**: - 1. 访问实时日志。 - -**部署**: - 1. 查看和管理部署,可以查看构建应用程序的日志。 - 2. 取消排队的部署,如果您有很多部署在队列中,尤其是在您的存储库中多次推送时,您可以取消即将到来的队列,但不能取消已在运行的部署。 - -**域名管理**: - 1. 添加、删除和生成域名。 - -**高级设置**: - 1. 自定义初始命令和集群设置。 - 2. 设置资源限制和管理数据持久化的卷。 - 3. 配置重定向、安全标头和端口设置。 - 4. 根据具体需求详细配置 Traefik。 - -### Docker Compose 管理 - -通过以下高级功能增强 Docker Compose 体验: - -**生命周期管理**: - 1. 部署、停止和删除 Docker Compose 设置。 - 2. 打开带有服务选择功能的终端。 - -**源代码配置**: - 1. 选择源代码提供商(GitHub、Git、Raw)。 - -**环境管理**: - 1. 添加和管理环境变量。 - -**监控工具**: - 1. 监控每个服务的 CPU、内存、磁盘和网络使用情况。 - -**日志**: - 1. 查看每个服务的实时日志。 - -**部署**: - 1. 查看和管理部署,可以查看构建应用程序的日志。 - 2. 取消排队的部署,如果您有很多部署在队列中,尤其是在您的存储库中多次推送时,您可以取消即将到来的队列,但不能取消已在运行的部署。 - -**高级设置**: - 1. 追加命令,默认情况下我们使用内部命令构建 Docker Compose,但您可以向现有命令追加命令。 - 2. 管理卷和挂载。 - -## 数据库部署 - -部署和管理各种数据库: - -**支持的数据库**: - 1. MySQL、PostgreSQL、MongoDB、Redis、MariaDB。 - -**常规管理**: - 1. 部署、停止和删除数据库。 - 2. 在数据库容器内打开终端。 - -**环境和监控**: - 1. 管理环境变量。 - 2. 监控 CPU、内存、磁盘和网络使用情况。 - -**备份和日志**: - 1. 配置手动和计划备份。 - 2. 查看实时日志。 - -**高级配置**: - 1. 使用自定义 Docker 镜像和初始命令。 - 2. 配置卷和资源限制。 - -这些功能旨在为您的部署环境提供灵活性和控制,确保 Dokploy 满足现代应用程序部署和管理的多样化需求。 diff --git a/apps/docs/content/docs/core/get-started/features.mdx b/apps/docs/content/docs/core/get-started/features.mdx deleted file mode 100644 index 8e2df4a7..00000000 --- a/apps/docs/content/docs/core/get-started/features.mdx +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: 'Features' -description: 'Explore the comprehensive suite of features available in Dokploy for optimized application deployment and management.' ---- - -Dokploy provides a comprehensive suite of features designed to simplify and enhance the application deployment process. - -## Application Deployment - -Dokploy supports two primary methods for deploying applications: - -1. **Applications**: This straightforward method allows for effortless deployment. Ideal for single applications, it offers a near plug-and-play experience. -2. **Docker Compose**: A more advanced option, requiring the creation of Dockerfiles and `docker-compose.yml`. This method provides greater control over deployment settings and full utilization of Docker Compose capabilities. - -### Applications Management - -Manage your applications through a range of features: - -**Basic Operations**: - 1. Deploy, stop, and delete applications. - 2. Open a terminal directly in the application container. - -**Source and Build Configuration**: - 1. Choose source providers (GitHub, Git, Docker). - 2. Select build types (Docker, Nixpacks, Heroku Buildpacks, Paketo Buildpacks). - - -**Environment Management**: - 1. Add and manage environment variables. - -**Monitoring Tools**: - 1. Monitor CPU, memory, disk, and network usage. - -**Logs**: - 1. Access real-time logs. - -**Deployments**: - 1. View and manage deployments, you can see the logs of the building application. - 2. Cancel queued deployments in case you have a lot of deployments in the queue, the most common is when you push alot of times in your repository, you can cancel the incoming queues, not the deployments that are already running. - -**Domain Management**: - 1. Add, delete, and generate domains. - -**Advanced Settings**: - 1. Customize initial commands and cluster settings. - 2. Set resource limits and manage volumes for data persistence. - 3. Configure redirects, security headers, and port settings. - 4. Detailed Traefik configuration for specific needs. - -### Docker Compose Management - -Enhance your Docker Compose experience with these advanced functionalities: - -**Lifecycle Management**: - 1. Deploy, stop, and delete Docker Compose setups. - 2. Open a terminal with service selection capability. - -**Source Configuration**: - 1. Choose source providers (GitHub, Git, Raw). - -**Environment Management**: - 1. Add and manage environment variables. - -**Monitoring Tools**: - 1. Monitor CPU, memory, disk, and network usage of each service. - -**Logs**: - 1. View real-time logs of each service. - -**Deployments**: - 1. View and manage deployments, you can see the logs of the building application. - 2. Cancel queued deployments in case you have a lot of deployments in the queue, the most common is when you push alot of times in your repository, you can cancel the incoming queues, not the deployments that are already running. - -**Advanced Settings**: - 1. Append command, by default we use a internal command to build the docker compose however, you can append a command to the existing one. - 2. Manage volumes and mounts. - -## Database Deployment - -Deploy and manage a variety of databases: - - -**Supported Databases**: - 1. MySQL, PostgreSQL, MongoDB, Redis, MariaDB. - -**General Management**: - 1. Deploy, stop, and delete databases. - 2. Open a terminal within the database container. - -**Environment and Monitoring**: - 1. Manage environment variables. - 2. Monitor CPU, memory, disk, and network usage. - -**Backups and Logs**: - 1. Configure manual and scheduled backups. - 2. View real-time logs. - -**Advanced Configuration**: - 1. Use custom Docker images and initial commands. - 2. Configure volumes and resource limits. - -These features are designed to offer flexibility and control over your deployment environments, ensuring that Dokploy meets the diverse needs of modern application deployment and management. diff --git a/apps/docs/content/docs/core/get-started/installation.cn.mdx b/apps/docs/content/docs/core/get-started/installation.cn.mdx deleted file mode 100644 index 5ed9fb26..00000000 --- a/apps/docs/content/docs/core/get-started/installation.cn.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "安装" -description: "借助这本易于上手的安装指南,几分钟内即可在您的服务器上启动并运行Dokploy。" ---- - - -## 设置您的环境 - -按照以下步骤在本地设置 Dokploy 并将其部署到您的服务器, 管理 Docker 容器和应用程序: - -{/* create a list please of the steps */} - -您需要按照顺序执行以下步骤: - -1. [Virtual Private Server (VPS)](#virtual-private-server-vps) -2. [Docker](#docker) - -## Virtual Private Server (VPS) - -有多个 VPS 提供商可供选择。以下是最常见的 VPS 提供商列表: - -我们已经在两个 Linux Distros 上进行了测试: - -- Ubuntu Server 20.04 LTS -- Debian 10 - -### 服务商 - -- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets) -- [Hetzner](https://www.hetzner.com/cloud/) -- [Linode](https://www.linode.com/es/pricing/#compute-shared) -- [Vultr](https://www.vultr.com/pricing/#cloud-compute) -- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available) -- [Google Cloud](https://cloud.google.com/) -- [AWS](https://aws.amazon.com/ec2/pricing/) -- [阿里云](https://www.aliyun.com/) -- [腾讯云](https://cloud.tencent.com/) - -### 要求 - -为了确保 Dokploy 的流畅体验,您的服务器应该至少有 2 GB RAM 和 30 GB 磁盘空间。该规范有助于处理 Docker 在构建期间消耗的资源并防止系统假死。 - -import { Callout } from 'fumadocs-ui/components/callout'; - - - -**建议:** 为了实现成本效率和可靠的服务,我们推荐 Hetzner 作为最佳物有所值的 VPS 提供商(需要信用卡)。 - - - -### Docker - -Dokploy 利用 Docker,因此在您的服务器上安装 Docker 至关重要。如果尚未安装 Docker,请使用以下命令自动安装: - -```bash -curl -sSL https://dokploy.com/install.sh | sh -``` - -## 完成设置 - -运行安装脚本后,Dokploy 及其依赖项将在您的服务器上设置。以下是如何完成设置并开始使用 Dokploy: - -### 访问 Dokploy - -打开您的网络浏览器并导航至 `http://your-ip-from-your-vps:3000`。 您将被引导到初始设置页面,在其中您可以配置 Dokploy 的管理帐号。 - -### 初始配置 - -1. **创建管理员帐号:** 填写必要的详细信息以设置您的管理员帐户。 该帐户将成为 Dokploy 的管理员帐户。 - -{/* ![域名 dokpoly 配置](../../../../assets/images/setup.png) */} - \ No newline at end of file diff --git a/apps/docs/content/docs/core/get-started/installation.mdx b/apps/docs/content/docs/core/get-started/installation.mdx deleted file mode 100644 index 4bd4490f..00000000 --- a/apps/docs/content/docs/core/get-started/installation.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Installation -description: "Get Dokploy up and running on your server within minutes with this easy-to-follow installation guide." ---- - -Follow these steps in order to set up Dokploy locally and deploy it to your server, effectively managing Docker containers and applications: - -You need to follow this steps in the same order: - -1. [Virtual Private Server (VPS)](#virtual-private-server-vps) - -## Virtual Private Server (VPS) - -There are multiple VPS providers to choose from: - -We have tested on the following Linux Distros: - -- Ubuntu 24.04 LTS -- Ubuntu 23.10 -- Ubuntu 22.04 LTS -- Ubuntu 20.04 LTS -- Ubuntu 18.04 LTS -- Debian 12 -- Debian 11 -- Debian 10 -- Fedora 40 -- Centos 9 -- Centos 8 - -### Providers - -- [Hostinger](https://www.hostinger.com/vps-hosting?ref=dokploy) Get 20% Discount using this referral link: [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: [Referral Link](https://m.do.co/c/db24efd43f35) -- [Hetzner](https://www.hetzner.com/cloud/) Get 20€ credits for free with this referral link: [Referral Link](https://hetzner.cloud/?ref=vou4fhxJ1W2D) -- [Linode](https://www.linode.com/es/pricing/#compute-shared) -- [Vultr](https://www.vultr.com/pricing/#cloud-compute) -- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available) -- [Google Cloud](https://cloud.google.com/) -- [AWS](https://aws.amazon.com/ec2/pricing/) - -### Requirements - -To ensure a smooth experience with Dokploy, your server should have at least 2GB of RAM and 30GB of disk space. This specification helps to handle the resources consumed by Docker during builds and prevents system freezes. - -import { Callout } from "fumadocs-ui/components/callout"; - - - **Suggestion:** For cost efficiency with reliable service, we recommend - Hetzner as the best value-for-money VPS provider. - - -### Docker - -Dokploy utilizes Docker, so it is essential to have Docker installed on your server. If Docker is not already installed, use the following command to install it automatically: - -```bash -curl -sSL https://dokploy.com/install.sh | sh -``` - -## Completing the Setup - -After running the installation script, Dokploy and its dependencies will be set up on your server. Here's how to finalize the setup and start using Dokploy: - -### Accessing Dokploy - -Open your web browser and navigate to `http://your-ip-from-your-vps:3000`. You will be directed to the initial setup page where you can configure the administrative account for Dokploy. - -### Initial Configuration - -1. **Create an Admin Account:** Fill in the necessary details to set up your administrator account. This account will be the admin account for Dokploy. - -{" "} - - diff --git a/apps/docs/content/docs/core/get-started/introduction.cn.mdx b/apps/docs/content/docs/core/get-started/introduction.cn.mdx deleted file mode 100644 index 657728ac..00000000 --- a/apps/docs/content/docs/core/get-started/introduction.cn.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Dokploy 文档 -description: "了解如何使用Dokploy部署应用程序, Dokploy是Heroku、Vercel和Netlify的开源替代品。" ---- - -import { Card, Cards } from 'fumadocs-ui/components/card'; - -## 欢迎来到 Dokploy - -Dokploy 是一款稳定、易于使用的部署解决方案,旨在简化应用程序管理流程。 可将 Dokploy 视为 Heroku、Vercel 和 Netliify 等平台的免费可托管替代品, 使用稳定的 [Docker](https://www.docker.com/) 和灵活的 [Traefik](https://traefik.io/) 构建. - -![Logo](/logo.png) - -## 为什么选择 Dokploy? - -- **简单:** 简单的设置、管理、部署。 -- **灵活:** 支持广泛的应用程序和数据库。 -- **开源:** 免费开源软件,可供任何人使用。 - -## 设置 Dokploy - -开始使用 Dokploy 很简单。 遵循我们的指南有效地安装和配置您的应用程序和数据库。 - -## 开始 - -跟随我,一起开始吧。 - - - - - - - - - - - - diff --git a/apps/docs/content/docs/core/get-started/introduction.mdx b/apps/docs/content/docs/core/get-started/introduction.mdx deleted file mode 100644 index 551e8040..00000000 --- a/apps/docs/content/docs/core/get-started/introduction.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Welcome to Dokploy -description: Dokploy is a open source alternative to Heroku, Vercel, and Netlify. - ---- -import { Card, Cards } from 'fumadocs-ui/components/card'; - - -Dokploy is a stable, easy-to-use deployment solution designed to simplify the application management process. Think of Dokploy as your free self hostable alternative to platforms like Heroku, Vercel, and Netlify, leveraging the robustness of [Docker](https://www.docker.com/) and the flexibility of [Traefik](https://traefik.io/). - - - -{/* */} - -![Logo](/logo.png) - -## Why Choose Dokploy? - -- **Simplicity:** Easy setup and management of deployments. -- **Flexibility:** Supports a wide range of applications and databases. -- **Open Source:** Free and open-source software, available for anyone to use. - - -## Setting up Dokploy - -Getting started with Dokploy is straightforward. Follow our guides to install and configure your applications and databases effectively. - -## Setting up - -Please go to get started. - - - - - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/core/get-started/manual-installation.cn.mdx b/apps/docs/content/docs/core/get-started/manual-installation.cn.mdx deleted file mode 100644 index 92c987a8..00000000 --- a/apps/docs/content/docs/core/get-started/manual-installation.cn.mdx +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: '手动安装' -description: '学习如何在服务器上手动安装 Dokploy。' ---- - -如果您希望自定义 Dokploy 在服务器上的安装,可以修改以下几个方面: - -1. **为 Dokploy 使用特定端口** - 这对于避免与其他服务的冲突非常理想。 -2. **选择特定版本的 Dokploy** - 可以选择如 canary、latest 或特定 Docker 标签(例如 v0.0.1)版本。 -3. **指定 Traefik 的 HTTP 和 HTTPS 端口** - 当与其他服务器(如 Nginx)一起运行时非常有用。 - -## 安装脚本 - -下面是一个在 Linux 服务器上安装 Dokploy 的 Bash 脚本。确保在非容器的 Linux 环境中以 root 身份运行,并确保端口 80 和 443 是空闲的。 - -```bash -#!/bin/bash -# Ensure the script is run as root -if [ "$(id -u)" != "0" ]; then - echo "This script must be run as root" >&2 - exit 1 -fi - -# Check for Linux OS (not macOS or inside a Docker container) -if [ "$(uname)" = "Darwin" ]; then - echo "This script must be run on Linux" >&2 - exit 1 -fi - -if [ -f /.dockerenv ]; then - echo "This script must be run on a native Linux host" >&2 - exit 1 -fi - -# Check for occupied ports -if ss -tulnp | grep ':80 ' >/dev/null; then - echo "Error: Port 80 is already in use" >&2 - exit 1 -fi - -if ss -tulnp | grep ':443 ' >/dev/null; then - echo "Error: Port 443 is already in use" >&2 - exit 1 -fi - -# Function to check if a command exists -command_exists() { - command -v "$@" > /dev/null 2>&1 -} - -# Install Docker if it is not installed -if command_exists docker; then - echo "Docker already installed" -else - curl -sSL https://get.docker.com | sh -fi - -# Initialize Docker Swarm -docker swarm leave --force 2>/dev/null - - get_ip() { - # Try to get IPv4 - local ipv4=$(curl -4s https://ifconfig.io 2>/dev/null) - - if [ -n "$ipv4" ]; then - echo "$ipv4" - else - # Try to get IPv6 - local ipv6=$(curl -6s https://ifconfig.io 2>/dev/null) - if [ -n "$ipv6" ]; then - echo "$ipv6" - fi - fi - } - - advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}" - - docker swarm init --advertise-addr $advertise_addr - - if [ $? -ne 0 ]; then - echo "Error: Failed to initialize Docker Swarm" >&2 - exit 1 - fi - - docker network rm -f dokploy-network 2>/dev/null - docker network create --driver overlay --attachable dokploy-network - - echo "Network created" - - mkdir -p /etc/dokploy - - chmod 777 /etc/dokploy - -# Pull and deploy Dokploy -docker pull dokploy/dokploy:latest -docker service create \ - --name dokploy \ - --replicas 1 \ - --network dokploy-network \ - --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ - --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ - --publish published=3000,target=3000,mode=host \ - --update-parallelism 1 \ - --update-order stop-first \ - -e PORT= \ - -e TRAEFIK_SSL_PORT= \ - -e TRAEFIK_PORT= \ - -e ADVERTISE_ADDR=$advertise_addr \ - dokploy/dokploy:latest - -# Output success message -GREEN="\033[0;32m" -YELLOW="\033[1;33m" -BLUE="\033[0;34m" -NC="\033[0m" # No Color -printf "${GREEN}Congratulations, Dokploy is installed!${NC}\n" -printf "${BLUE}Wait 15 seconds for the server to start${NC}\n" -printf "${YELLOW}Please go to http://${advertise_addr}:3000${NC}\n\n" - -``` - - -这个脚本包括对常见陷阱的检查,如果未安装 Docker 则安装 Docker,初始化 Docker Swarm,创建网络,然后拉取并部署 Dokploy。脚本运行后,它提供成功消息和访问 Dokploy 的说明。 - -这种结构化的格式清晰地列出了先决条件、步骤和安装后信息,使其对执行手动安装的用户来说非常友好和易于理解。 - -## 自定义安装 -#### 自定义 swarm 广播地址 - -`docker swarm init` 命令中的 `--advertise-addr` 参数指定了 Docker Swarm 管理节点应该向 Swarm 中的其他节点广播的 IP 地址或接口。其他节点使用该地址与管理节点通信。 - -默认情况下,此脚本使用通过 `curl -s ifconfig.me` 命令获得的服务器外部 IP 地址。但是,根据您的网络配置,特别是如果您的服务器有多个网络接口或如果您在私有网络中设置 Swarm,您可能需要自定义此地址。 - -要自定义 `--advertise-addr` 参数,请将以下行: -`advertise_addr=$(curl -s ifconfig.me)` - -替换为您所需的 IP 地址或接口,例如: -`advertise_addr="192.168.1.100"` - -:warning: 该 IP 地址应对将加入 Swarm 的所有节点可访问。 - -## 已有 Docker Swarm - -如果您的服务器上已经运行了 Docker Swarm,并且您想使用 Dokploy,可以使用以下命令加入它: - -```bash -docker network create --driver overlay --attachable dokploy-network - -mkdir -p /etc/dokploy - -chmod -R 777 /etc/dokploy - -docker pull dokploy/dokploy:latest - -# 安装 -docker service create \ - --name dokploy \ - --replicas 1 \ - --network dokploy-network \ - --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ - --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ - --publish published=3000,target=3000,mode=host \ - --update-parallelism 1 \ - --update-order stop-first \ - dokploy/dokploy:latest -``` diff --git a/apps/docs/content/docs/core/get-started/manual-installation.mdx b/apps/docs/content/docs/core/get-started/manual-installation.mdx deleted file mode 100644 index 9c3ad984..00000000 --- a/apps/docs/content/docs/core/get-started/manual-installation.mdx +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: 'Manual Installation' -description: 'Learn how to manually install Dokploy on your server.' ---- - -If you wish to customize the Dokploy installation on your server, you can modify several aspects: - -1. **Use a specific port for Dokploy** - Ideal for avoiding conflicts with other services. -2. **Select a specific version of Dokploy** - Choose between versions like canary, latest, or a specific Docker tag (e.g., v0.0.1). -3. **Specify HTTP and HTTPS ports for Traefik** - Useful when running alongside other servers like Nginx. - -## Installation Script - -Here is a Bash script for installing Dokploy on a Linux server. Make sure you run this as root on a Linux environment that is not a container, and ensure ports 80 and 443 are free. - -```bash -#!/bin/bash -# Ensure the script is run as root -if [ "$(id -u)" != "0" ]; then - echo "This script must be run as root" >&2 - exit 1 -fi - -# Check for Linux OS (not macOS or inside a Docker container) -if [ "$(uname)" = "Darwin" ]; then - echo "This script must be run on Linux" >&2 - exit 1 -fi - -if [ -f /.dockerenv ]; then - echo "This script must be run on a native Linux host" >&2 - exit 1 -fi - -# Check for occupied ports -if ss -tulnp | grep ':80 ' >/dev/null; then - echo "Error: Port 80 is already in use" >&2 - exit 1 -fi - -if ss -tulnp | grep ':443 ' >/dev/null; then - echo "Error: Port 443 is already in use" >&2 - exit 1 -fi - -# Function to check if a command exists -command_exists() { - command -v "$@" > /dev/null 2>&1 -} - -# Install Docker if it is not installed -if command_exists docker; then - echo "Docker already installed" -else - curl -sSL https://get.docker.com | sh -fi - -# Initialize Docker Swarm -docker swarm leave --force 2>/dev/null - - get_ip() { - # Try to get IPv4 - local ipv4=$(curl -4s https://ifconfig.io 2>/dev/null) - - if [ -n "$ipv4" ]; then - echo "$ipv4" - else - # Try to get IPv6 - local ipv6=$(curl -6s https://ifconfig.io 2>/dev/null) - if [ -n "$ipv6" ]; then - echo "$ipv6" - fi - fi - } - - advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}" - - docker swarm init --advertise-addr $advertise_addr - - if [ $? -ne 0 ]; then - echo "Error: Failed to initialize Docker Swarm" >&2 - exit 1 - fi - - docker network rm -f dokploy-network 2>/dev/null - docker network create --driver overlay --attachable dokploy-network - - echo "Network created" - - mkdir -p /etc/dokploy - - chmod 777 /etc/dokploy - -# Pull and deploy Dokploy -docker pull dokploy/dokploy:latest -docker service create \ - --name dokploy \ - --replicas 1 \ - --network dokploy-network \ - --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ - --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ - --publish published=3000,target=3000,mode=host \ - --update-parallelism 1 \ - --update-order stop-first \ - -e PORT= \ - -e TRAEFIK_SSL_PORT= \ - -e TRAEFIK_PORT= \ - -e ADVERTISE_ADDR=$advertise_addr \ - dokploy/dokploy:latest - -# Output success message -GREEN="\033[0;32m" -YELLOW="\033[1;33m" -BLUE="\033[0;34m" -NC="\033[0m" # No Color -printf "${GREEN}Congratulations, Dokploy is installed!${NC}\n" -printf "${BLUE}Wait 15 seconds for the server to start${NC}\n" -printf "${YELLOW}Please go to http://${advertise_addr}:3000${NC}\n\n" - -``` - - -This script includes checks for common pitfalls, installs Docker if it’s not already installed, initializes a Docker Swarm, creates a network, and then pulls and deploys Dokploy. After the script runs, it provides a success message and instructions for accessing Dokploy. - -This structured format clearly lays out the prerequisites, steps, and post-installation information, making it user-friendly and accessible for those performing manual installations. - -## Customize install -#### Customize swarm advertise address - -The --advertise-addr parameter in the docker swarm init command specifies the IP address or interface that the Docker Swarm manager node should advertise to other nodes in the Swarm. This address is used by other nodes to communicate with the manager. - -By default, this script uses the external IP address of the server, obtained using the `curl -s ifconfig.me` command. However, you might need to customize this address based on your network configuration, especially if your server has multiple network interfaces or if you're setting up Swarm in a private network. - -To customize the --advertise-addr parameter, replace the line: `advertise_addr=$(curl -s ifconfig.me)` with your desired IP address or interface, for example: -`advertise_addr="192.168.1.100"` - -:warning: This IP address should be accessible to all nodes that will join the Swarm. - - -## Existing Docker swarm - -If you already have a Docker swarm running on your server and you want to use dokploy, you can use the following command to join it: - - -```bash -docker network create --driver overlay --attachable dokploy-network - -mkdir -p /etc/dokploy - -chmod -R 777 /etc/dokploy - -docker pull dokploy/dokploy:latest - -# Installation -docker service create \ - --name dokploy \ - --replicas 1 \ - --network dokploy-network \ - --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ - --mount type=bind,source=/etc/dokploy,target=/etc/dokploy \ - --publish published=3000,target=3000,mode=host \ - --update-parallelism 1 \ - --update-order stop-first \ - dokploy/dokploy:latest -``` diff --git a/apps/docs/content/docs/core/get-started/reset-password.cn.mdx b/apps/docs/content/docs/core/get-started/reset-password.cn.mdx deleted file mode 100644 index 4102fb94..00000000 --- a/apps/docs/content/docs/core/get-started/reset-password.cn.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "重置密码" -description: "重置您的密码以访问您的 Dokploy 帐户。" ---- - -## 重置密码 - -要重置密码,请执行以下步骤: - -1. 登录您的 VPS。 -2. 运行`docker ps`获取 dokploy 容器的容器 ID。 -3. 运行 `docker exec -it bash -c "pnpm run reset-password"` 打开 dokploy 容器中的 shell。 -4. 它将显示随机密码。 复制它并使用它再次访问仪表板。 diff --git a/apps/docs/content/docs/core/get-started/reset-password.mdx b/apps/docs/content/docs/core/get-started/reset-password.mdx deleted file mode 100644 index 893754f0..00000000 --- a/apps/docs/content/docs/core/get-started/reset-password.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Reset Password -description: "Reset your password to access your Dokploy account." ---- - -import { Step, Steps } from 'fumadocs-ui/components/steps'; - -To reset your password, follow these steps: - - - -Log in to your VPS. - - - - - -Run the command below to get the container ID of the dokploy container. - -```bash -docker ps -``` - - - - - -Run command below to open a shell in the dokploy container. -```bash - docker exec -it bash -c "pnpm run reset-password" -``` - - - - - -It will display a random password. Copy it and use it to access again to the dashboard. - - - - \ No newline at end of file diff --git a/apps/docs/content/docs/core/get-started/uninstall.cn.mdx b/apps/docs/content/docs/core/get-started/uninstall.cn.mdx deleted file mode 100644 index 790a74bf..00000000 --- a/apps/docs/content/docs/core/get-started/uninstall.cn.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: "卸载" -description: "了解如何在服务器上卸载 Dokploy" ---- - -## 卸载步骤 - -按照以下步骤从您的服务器中完全删除 Dokploy 及其组件。 - -### 第 1 步: 删除 Docker Swarm 服务 - -首先,删除 Docker Swarm 中的 Dokploy 以及相关服务: - -```bash -docker service rm dokploy dokploy-traefik dokploy-postgres dokploy-redis -``` - -### 第 2 步: 删除 Docker 挂载卷 - -接下来,删除 Dokploy 创建的 Docker 卷: - -```bash -docker volume rm -f dokploy-postgres-database redis-data-volume -``` - -### 第 3 步: 删除 Dokploy 文件 - -最后,从服务器上删除 Dokploy 文件和目录: - -```bash -sudo rm -rf /etc/dokploy -``` diff --git a/apps/docs/content/docs/core/get-started/uninstall.mdx b/apps/docs/content/docs/core/get-started/uninstall.mdx deleted file mode 100644 index 3f2e0cd4..00000000 --- a/apps/docs/content/docs/core/get-started/uninstall.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Uninstall -description: "Learn how to uninstall Dokploy on your server" ---- - -import { Step, Steps } from 'fumadocs-ui/components/steps'; - -Follow these steps to completely remove Dokploy and its components from your server. - - - -Remove the docker swarm services created by Dokploy: - - ```bash - docker service rm dokploy dokploy-traefik dokploy-postgres dokploy-redis - ``` - - - - - -Remove the docker volumes created by Dokploy: - - ```bash - docker volume rm -f dokploy-postgres-database redis-data-volume - ``` - - - - - -Remove the dokploy files and directories from your server: - - ```bash - sudo rm -rf /etc/dokploy - ``` - - - \ No newline at end of file diff --git a/apps/docs/content/docs/core/meta.cn.json b/apps/docs/content/docs/core/meta.cn.json deleted file mode 100644 index 67f53a52..00000000 --- a/apps/docs/content/docs/core/meta.cn.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "title": "Core", - "root": true, - "pages": [ - "---入门---", - "get-started/introduction", - "get-started/architecture", - "get-started/features", - "get-started/installation", - "get-started/manual-installation", - "get-started/reset-password", - "get-started/uninstall", - "---域名---", - "domain/requirements", - "domain/certificates", - "domain/web-domain-setup", - "domain/application-setup", - "domain/docker-compose-setup", - "---服务器---", - "server/overview", - "server/profile", - "server/appearance", - "server/s3-destination", - "server/certificates", - "server/users", - "server/cluster", - "---应用程序---", - "application/overview", - "application/providers", - "application/build-type", - "application/domains", - "application/auto-deploy", - "application/advanced", - "---数据库---", - "databases/overview", - "databases/backups", - "databases/connection", - "---Docker Compose---", - "docker-compose/overview", - "docker-compose/providers", - "docker-compose/auto-deploy", - "docker-compose/domains", - "docker-compose/example", - "docker-compose/templates", - "---模板---", - "templates/overview", - "---示例---", - "examples/nextjs", - "examples/vuejs", - "examples/vite-react", - "examples/nestjs", - "examples/svelte", - "examples/remix", - "examples/qwik", - "examples/preact", - "examples/solidjs", - "examples/astro", - "examples/astro-ssr", - "examples/go-fiber", - "examples/lit", - "---Traefik---", - "traefik/overview", - "---Docker---", - "docker/overview", - "---监控---", - "monitoring/overview", - "---集群---", - "cluster/overview", - "---部署---", - "deployments/oracle-cloud", - "---附加内容---", - "extra/comparison", - "---故障排除---", - "troubleshooting/overview" - ] -} diff --git a/apps/docs/content/docs/core/meta.json b/apps/docs/content/docs/core/meta.json deleted file mode 100644 index b2c3020f..00000000 --- a/apps/docs/content/docs/core/meta.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "title": "Core", - "root": true, - "pages": [ - "---Get Started---", - "get-started/introduction", - "get-started/architecture", - "get-started/features", - "get-started/installation", - "get-started/manual-installation", - "get-started/reset-password", - "get-started/uninstall", - "---Domain---", - "domain/requirements", - "domain/certificates", - "domain/web-domain-setup", - "domain/application-setup", - "domain/docker-compose-setup", - "---Server---", - "server/overview", - "server/profile", - "server/appearance", - "server/s3-destination", - "server/certificates", - "server/users", - "server/cluster", - "---Application---", - "application/overview", - "application/providers", - "application/build-type", - "application/domains", - "application/auto-deploy", - "application/advanced", - "---Databases---", - "databases/overview", - "databases/backups", - "databases/connection", - "---Docker Compose---", - "docker-compose/overview", - "docker-compose/providers", - "docker-compose/auto-deploy", - "docker-compose/domains", - "docker-compose/example", - "docker-compose/templates", - "---Templates---", - "templates/overview", - "---Examples---", - "examples/nextjs", - "examples/vuejs", - "examples/vite-react", - "examples/nestjs", - "examples/svelte", - "examples/remix", - "examples/qwik", - "examples/preact", - "examples/solidjs", - "examples/astro", - "examples/astro-ssr", - "examples/go-fiber", - "examples/lit", - "---Traefik---", - "traefik/overview", - "---Docker---", - "docker/overview", - "---Monitoring---", - "monitoring/overview", - "---Multi Server---", - "multi-server/overview", - "multi-server/example", - "---Cluster---", - "cluster/overview", - "---Deployments---", - "deployments/oracle-cloud", - "---Extra---", - "extra/comparison", - "---Troubleshooting---", - "troubleshooting/overview" - ] -} diff --git a/apps/docs/content/docs/core/monitoring/overview.cn.mdx b/apps/docs/content/docs/core/monitoring/overview.cn.mdx deleted file mode 100644 index 7dd11a5e..00000000 --- a/apps/docs/content/docs/core/monitoring/overview.cn.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 概述 -description: "全面探索 Dokploy 中用于跟踪应用程序、数据库和服务器资源的性能的监控功能。" ---- - -Dokploy 包括一个强大的监控系统,旨在让您实时了解应用程序、数据库和服务器性能。 - -## 应用程序和数据库监控 - -通过 `Monitoring` 选项卡监控应用程序和数据库的性能: - -- **Real-Time Metrics(实时指标)**: 如果您的应用程序或数据库正在运行,您将看到有关 CPU、内存、磁盘和网络使用情况的实时数据。 -- **Historical Data(历史数据)**: 对于当前未运行的应用程序或数据库,Dokploy 会显示最后记录的指标。 - -## 服务器监控 - -在 `/dashboard/monitoring` 页面的 `Monitoring` 选项卡实时跟踪服务器的整体性能: - -- **CPU Usage(CPU 使用状况)**: 查看时间维度上当前处理器负载和使用状态。 -- **Memory Usage(内存使用状况)**: 查看正在使用多少内存以及有多少可用内存。 -- **Storage and Disk Usage(磁盘使用状况)**: 查看已使用和剩余的总存储空间,以及特定的磁盘使用统计数据。 -- **Network Usage(网络使用状况)**: 跟踪入站和出站网络流量以了解带宽使用情况。 - -Dokploy 中的这些监控工具提供重要数据,帮助您有效管理资源,确保服务器和托管应用程序的最佳性能。 diff --git a/apps/docs/content/docs/core/monitoring/overview.mdx b/apps/docs/content/docs/core/monitoring/overview.mdx deleted file mode 100644 index 68e8f8b6..00000000 --- a/apps/docs/content/docs/core/monitoring/overview.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Overview -description: 'Explore the comprehensive monitoring features in Dokploy for tracking the performance of applications, databases, and server resources.' ---- - - -Dokploy includes a robust monitoring system designed to give you real-time insights into your applications, databases, and server performance. - - - -## Applications & Databases Monitoring - -Monitor the performance of your applications and databases through the `Monitoring` tab: - -- **Real-Time Metrics**: If your application or database is running, you will see real-time data on CPU, memory, disk, and network usage. -- **Historical Data**: For applications or databases that are not currently running, Dokploy displays the last recorded metrics. - - -## Server Monitoring - -Keep track of your server's overall performance using the `Monitoring` tab located at `/dashboard/monitoring`: - -- **CPU Usage**: View the current CPU load and usage patterns over time. -- **Memory Usage**: Monitor how much memory is being used and how much is available. -- **Storage and Disk Usage**: Check the total storage used and remaining, along with specific disk usage statistics. -- **Network Usage**: Track inbound and outbound network traffic to understand bandwidth usage. - -These monitoring tools in Dokploy provide essential data that helps you manage resources effectively, ensuring optimal performance of your server and hosted applications. \ No newline at end of file diff --git a/apps/docs/content/docs/core/multi-server/example.mdx b/apps/docs/content/docs/core/multi-server/example.mdx deleted file mode 100644 index 109722c4..00000000 --- a/apps/docs/content/docs/core/multi-server/example.mdx +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Example -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. - - - -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). -- [Linode](https://www.linode.com/es/pricing/#compute-shared). -- [Vultr](https://www.vultr.com/pricing/#cloud-compute). -- [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: - - - -The steps are similar across other providers. - -5. Copy the server’s IP address and ensure you know the username (often `root`). Fill in all fields and click `Create`. - - - -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. - - - -8. Click `Deployments`, then `Setup Server`. If everything is correct, you should see output similar to this: - - - - - You only need to run this setup once. If Dokploy updates later, check the - release notes to see if rerunning this command is required. - - -9. You're ready to deploy your apps! Let's test it out: - - - -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` - - - -11. Once the build is done, go to `Domains` and create a free domain. Just click `Create` and you’re good to go! 🎊 - -{" "} - - diff --git a/apps/docs/content/docs/core/multi-server/overview.mdx b/apps/docs/content/docs/core/multi-server/overview.mdx deleted file mode 100644 index 051b314c..00000000 --- a/apps/docs/content/docs/core/multi-server/overview.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Overview -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. - - - Remote server monitoring is not supported due to performance reasons. - diff --git a/apps/docs/content/docs/core/server/appearance.cn.mdx b/apps/docs/content/docs/core/server/appearance.cn.mdx deleted file mode 100644 index fdb41e96..00000000 --- a/apps/docs/content/docs/core/server/appearance.cn.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: 外观 -description: '调整服务器界面的视觉外观。' ---- - -外观部分允许您自定义服务器界面的视觉外观。 - -## 主题 - -1. **明亮**: 选择明亮主题。 -2. **黑暗**: 选择黑暗主题。 -3. **系统**: 选择系统主题。 diff --git a/apps/docs/content/docs/core/server/appearance.mdx b/apps/docs/content/docs/core/server/appearance.mdx deleted file mode 100644 index faa7e5ee..00000000 --- a/apps/docs/content/docs/core/server/appearance.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Appearance -description: 'Adjust the visual appearance of your server interface.' ---- - - -The Appearance section allows you to customize the visual appearance of your server interface. - -## Theme - -1. **Light**: Select the light theme. -2. **Dark**: Select the dark theme. -3. **System**: Select the system theme. diff --git a/apps/docs/content/docs/core/server/certificates.cn.mdx b/apps/docs/content/docs/core/server/certificates.cn.mdx deleted file mode 100644 index fc6013f8..00000000 --- a/apps/docs/content/docs/core/server/certificates.cn.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 证书 -description: '管理 SSL/TLS 证书。' ---- -import { Callout } from 'fumadocs-ui/components/callout'; - -证书部分允许您高效管理 SSL/TLS 证书。 - -## 操作 - -- **创建**: 创建一个新的证书。 -- **删除**: 删除现有的证书。 - -### 创建证书 - -要创建一个新的证书,请填写以下详细信息的表单: - -- **名称**: 输入证书的名称(可以是您选择的任何名称)。 -- **证书数据**: 提供证书的详细信息。 -- **私钥**: 输入私钥。 - - -此操作将在服务器上创建证书。有关更详细的配置和管理,请使用 `Traefik` 选项卡。 - diff --git a/apps/docs/content/docs/core/server/certificates.mdx b/apps/docs/content/docs/core/server/certificates.mdx deleted file mode 100644 index cdcbae2e..00000000 --- a/apps/docs/content/docs/core/server/certificates.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Certificates -description: 'Manage SSL/TLS certificates.' ---- -import { Callout } from 'fumadocs-ui/components/callout'; - - -The Certificates section alows you to manage SSL/TLS certificates efficiently. - -## Actions - -- **Create**: Create a new certificate. -- **Delete**: Delete an existing certificate. - -### Create a Certificate - -To create a new certificate, fill out the form with the following details: - -- **Name**: Enter a name for the certificate (this can be anything you choose). -- **Certificate Data**: Provide the certificate details. -- **Private Key**: Enter the private key. - - -This action will create the certificate on the server. For more detailed configuration and management, use the `Traefik` tab. - \ No newline at end of file diff --git a/apps/docs/content/docs/core/server/cluster.cn.mdx b/apps/docs/content/docs/core/server/cluster.cn.mdx deleted file mode 100644 index 5dbfc542..00000000 --- a/apps/docs/content/docs/core/server/cluster.cn.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: 集群(高级) -description: '管理服务器集群设置。' ---- - -在 Dokploy 中部署应用程序时,所有应用程序都在同一个节点上运行。如果您希望在不同的服务器上运行应用程序,可以使用集群功能。 - -使用集群的理念是允许每台服务器托管不同的应用程序,并通过 Traefik 和负载均衡器将流量从 Dokploy 服务器重定向到您选择的服务器。 - -## 服务器扩展方法 - -扩展服务器的主要方式有两种: - -1. **垂直扩展**: 这涉及向同一 Dokploy 服务器添加更多资源,例如更多的 CPU 和 RAM。 -2. **水平扩展**: 这种方法涉及添加多台服务器。 - -### 垂直扩展 - -我们建议使用垂直扩展来提高应用程序的处理能力,因为这更快,并且需要更少的额外配置。 - -要进行垂直扩展,您需要向 Dokploy 服务器添加更多资源,即更多的 CPU 和 RAM。这可以通过您的 VPS 提供商完成。 - -理想情况下,首先检查您能够处理的垂直扩展限制。如果您发现不足,可以考虑水平扩展。 - -### 水平扩展 - -水平扩展通常需要更多的额外配置,并涉及添加更多服务器(VPS)。 - -如果您选择第二个选项,我们将继续配置不同的服务器。 - -## 集群设置的要求 - -1. 运行中的 Dokploy 服务器(管理器)。 -2. 至少有一台与 Dokploy 服务器架构相同的额外服务器。 -3. 拥有一个 Docker 注册表。 - -## 配置 Docker 注册表 - -首先,我们需要配置一个 Docker 注册表,因为在部署应用程序时,您需要一个注册表来在其他服务器上部署和下载应用程序镜像。 - -我们提供两种配置注册表的方法: - -1. **外部注册表**: 使用您想要的任何注册表。 -2. **自托管注册表**: 我们为您创建和配置自托管注册表。 - -### 外部注册表 - -您可以使用任何注册表,如 Docker Hub、DigitalOcean Spaces、ECR 或您选择的注册表。确保输入正确的凭据并在添加注册表之前测试连接。 - -### 自托管注册表 - -我们将询问您以下三件事: - -1. 用户名。 -2. 密码。 -3. 域名。确保此域名指向 Dokploy VPS。 - -设置完成后,集群部分将解锁。 - -## 理解 Docker Swarm - -我们建议您阅读以下信息,以更好地理解 Docker Swarm 的工作原理及其调度: [Docker Swarm 文档](https://docs.docker.com/engine/swarm/) 以及其架构: [Swarm 模式的工作原理](https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/)。 - -## 管理您的集群 - -现在您可以执行两项操作: - -1. 添加工作节点。 -2. 添加管理节点。 - -管理节点有两个功能: - -1. 管理集群状态。 -2. 调度服务。 - -工作节点的唯一目的是运行容器,按照管理节点创建或设定的规则进行操作。 - -## 添加节点 - -您可以点击“添加节点”按钮,系统将显示您需要遵循的说明,以将您的服务器作为节点添加并加入 Dokploy 管理节点。 - - - -按照说明操作后,工作节点或管理节点将出现在表格中。 - - diff --git a/apps/docs/content/docs/core/server/cluster.mdx b/apps/docs/content/docs/core/server/cluster.mdx deleted file mode 100644 index 7326c055..00000000 --- a/apps/docs/content/docs/core/server/cluster.mdx +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Cluster (Advanced) -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. - - - -Once you follow the instructions, the workers or managers will appear in the table. - - diff --git a/apps/docs/content/docs/core/server/overview.cn.mdx b/apps/docs/content/docs/core/server/overview.cn.mdx deleted file mode 100644 index be323d5e..00000000 --- a/apps/docs/content/docs/core/server/overview.cn.mdx +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: 概述 -description: "Dokploy 提供多种功能来有效管理您的服务器。其中包括管理服务器设置、配置文件、外观、S3存储、证书和用户。" ---- - -import { Callout } from 'fumadocs-ui/components/callout'; - -## 服务器 - -`Server` 选项卡提供服务管理的各种功能: - -- **Reload Instance(重新加载实例)**: 重新加载 Dokploy 实例. -- **Watch Logs(观察日志)**: 监视服务器日志. -- **Traefik Configuration(Traefik 配置)**: 查看 Traefik 的主要配置。 -- **View Middlewares(查看中间件)**: 检查活动的中间件。 -- **SSH Access(SSH 访问)**: 输入服务器终端(需要 SSH 密钥)。 - -### 服务器域名 - -设置服务器域并配置 Let's Encrypt 证书以启用 HTTPS。 - -### GitHub 集成 - -配置您的 GitHub 帐户以管理组织或个人项目。 将用于您从 GitHub创建应用程序和部署存储库。 - -### 空间管理 - -清理未使用的 Docker 镜像、卷和容器来管理服务器空间。 - -### Traefik - -访问和管理 Traefik 设置: - -- **Reload(重载)**: 刷新 Traefik 配置。 -- **Watch Logs(查看日志)**: 查看 Traefik 日志。 -- **View Config(视图配置)**: 检查 Traefik 配置。 -- **Terminal Access(终端访问)**: 通过终端访问 Traefik。 - -## 服务器信息 - -自定义您的个人资料,包括电子邮件、密码和头像。 - -### 两步验证 - -使用 Google Authenticator 应用程序启用双重身份验证。 - -## 服务器外观 - -调整服务器界面的视觉外观、主题。 - -## S3 存储 - -配置 S3 存储桶用于备份存储。这包括设置访问密钥、秘密密钥、桶名称、区域和访问地址。 - -### 创建 - -为了创建新的 S3 存储桶,您需要填写表单。 - -- Name: 这可以是您想要的任何东西,它将是存储桶的名称。 -- Access Key: 这是您将用来访问存储桶的访问密钥。 -- Secret Key: 这是您将用来访问存储桶的密钥。 -- Bucket: 这是您将用来访问存储桶的名称。 -- Region: 这是您将用来访问存储桶的区域。 -- Endpoint: 这是您将用来访问存储桶的地址。 - - - 有一个按钮`Test`将测试与您的存储桶的连接,如果正确,它会向您显示成功消息。 - - -## 证书 - -管理 SSL/TLS 证书: - -- **Name**: 为证书指定名称。 -- **Certificate Data**: 提供证书详细信息。 -- **Private Key**: 输入私钥。 - - - 它只会在服务器中创建证书,如果您需要更详细地配置或管理,您可以使用 `Traefik` 选项卡来配置它。 - - -## 用户 - -管理 Dokploy 中的用户角色和权限。每个实例仅限一个管理员角色。 - -### 权限 - -Dokploy 提供多种权限来管理您的用户。 - -**Create Projects** 将允许您创建新项目。 - -**Create Services** 将允许您创建新的应用程序或数据库。 - -**Access to traefik files tab** 将允许您访问 traefik 文件选项卡。 - -**Delete Projects** 将允许您删除项目。 - -**Delete Services** 将允许您删除服务。 - -**Access to Docker tab** 将允许您访问 docker 选项卡。 - -您还可以应用权限以允许访问特定 项目/服务 - -## 提示和警告 - -- 使用 `Traefik` 选项卡进行详细的配置调整。 -- 使用前测试与 S3 桶的连接,以确保设置正确。 -- 请记住,如果需要详细管理,Dokploy 中添加的证书需要在 `Traefik` 选项卡中进一步配置。 diff --git a/apps/docs/content/docs/core/server/overview.mdx b/apps/docs/content/docs/core/server/overview.mdx deleted file mode 100644 index 28837de2..00000000 --- a/apps/docs/content/docs/core/server/overview.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Overview -description: 'Dokploy offers multiple functions to manage your server efficiently. These include managing server settings, profiles, appearance, S3 destinations, certificates, and users.' ---- -import { Callout } from 'fumadocs-ui/components/callout'; - -We provide multiples functions to manage and interact with the server directly. - - -## Server Domain - -Set the server domain to make your panel accessible via a domain. - -1. Set the domain -2. Set the Let's Encrypt email. -3. Choose a certificate option. - -## Github - -Configure your GitHub account to manage organization or personal projects. This section guides you through creating a GitHub app and deploying repositories. - - -## Web server settings - -Manage multiples settings for your server. - -### Server - -The `Server` section provides various functions: - -- **Reload Instance**: Reload the Dokploy instance. -- **Watch Logs**: Monitor server logs. -- **Traefik Configuration**: View main Traefik configurations. -- **View Middlewares**: Inspect active middlewares. -- **SSH Access**: Enter the server terminal (requires SSH key). - -### Traefik - -Access and manage Traefik settings: - -- **Reload**: Refresh Traefik configuration. -- **Watch Logs**: View Traefik logs. -- **View Config**: Inspect Traefik configuration. -- **Terminal Access**: Access Traefik via terminal. - -### Space Management - -Manage server space by cleaning unused Docker images, volumes, and containers. - -1. Clean unused images. -2. Clean unused volumes. -3. Clean stopped containers. -4. Clean Docker build cache & system. -5. Clean monitoring data. -6. Clean all. -7. Toggle to run a daily cleanup job. - -### Updates - -Check for Dokploy updates and apply them as needed. When you check for updates, a modal will open with an action button to check for updates. If a new version is available, the button will indicate it is loading. After a few seconds, it will display the new version and provide an option to update. - - - -#### Considerations - -- The update process usually takes between 20 seconds and 1 minute to complete. -- All your services and domains will remain operational during the update, so it is safe to apply an update. -- We are not responsible for any downtime caused by the update process. -- We recommend updating if you are experiencing a bug or want to access new features. -- It is important to read the release notes before updating to avoid any unexpected issues. diff --git a/apps/docs/content/docs/core/server/profile.cn.mdx b/apps/docs/content/docs/core/server/profile.cn.mdx deleted file mode 100644 index 0ef990fb..00000000 --- a/apps/docs/content/docs/core/server/profile.cn.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 个人资料 -description: '自定义您的个人资料设置,包括电子邮件、密码和头像。' ---- - -个人资料页面允许你自定义账户设置。 - -## 账户设置 - -1. **更改邮箱**:更新你的邮箱地址。 -2. **更改密码**:更新你的密码。 -3. **更改头像**:更新你的个人资料图片。 - -## 双因素认证 (2FA) - -通过使用 Google Authenticator 应用程序启用双因素认证来增强账户安全性。 - -## API/CLI 访问 - -你可以生成新的 API 密钥以访问 API/CLI。 - -1. **生成 API 密钥**:创建一个新的 API 密钥。 -2. **复制 API 密钥**:复制生成的 API 密钥以供使用。 -3. **查看 API 文档**:访问 Swagger API 文档,获取详细的 API 使用信息。 \ No newline at end of file diff --git a/apps/docs/content/docs/core/server/profile.mdx b/apps/docs/content/docs/core/server/profile.mdx deleted file mode 100644 index c7266399..00000000 --- a/apps/docs/content/docs/core/server/profile.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Profile -description: 'Customize your profile settings including email, password, and avatar.' ---- - -The Profile section allows you to customize your account settings. - -## Account Settings - -1. **Change Email**: Update your email address. -2. **Change Password**: Update your password. -3. **Change Avatar**: Update your profile picture. - -## Two-Factor Authentication (2FA) - -Enhance your account security by enabling two-factor authentication using the Google Authenticator app. - -## API/CLI Access - -You can generate a new API key to access the API/CLI. - -1. **Generate API Key**: Create a new API key. -2. **Copy API Key**: Copy the generated API key for use. -3. **View API Documentation**: Access the Swagger API documentation for detailed API usage. \ No newline at end of file diff --git a/apps/docs/content/docs/core/server/s3-destination.cn.mdx b/apps/docs/content/docs/core/server/s3-destination.cn.mdx deleted file mode 100644 index eeb8ffa8..00000000 --- a/apps/docs/content/docs/core/server/s3-destination.cn.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: S3 目标 -description: '配置 S3 桶作为备份存储。这包括设置访问密钥、秘密密钥、桶名称、区域和端点。' ---- -import { Callout } from 'fumadocs-ui/components/callout'; - -S3 目标部分对于备份数据库至关重要。 - -## 操作: - -1. **创建**: 创建一个新的 S3 目标。 -2. **删除**: 删除一个 S3 目标。 -3. **编辑**: 编辑一个 S3 目标。 -4. **测试**: 测试一个 S3 目标。 - -### 创建 - -要创建一个新的 S3 桶,您需要填写表单。 - -- **名称**: 这可以是您想要的任何名称,它将是桶的名称。 -- **访问密钥**: 这是您用来访问桶的访问密钥。 -- **秘密密钥**: 这是您用来访问桶的秘密密钥。 -- **桶**: 这是您将用来访问桶的桶名称。 -- **区域**: 这是您将用来访问桶的区域。 -- **端点**: 这是您将用来访问桶的端点。 - - - 有一个按钮 `测试`,用于测试与您的桶的连接,如果正确,它会显示成功消息。 - diff --git a/apps/docs/content/docs/core/server/s3-destination.mdx b/apps/docs/content/docs/core/server/s3-destination.mdx deleted file mode 100644 index ec68b97c..00000000 --- a/apps/docs/content/docs/core/server/s3-destination.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: S3 Destinations -description: 'Configure S3 buckets for backup storage. This includes setting up access keys, secret keys, bucket names, regions, and endpoints.' ---- -import { Callout } from 'fumadocs-ui/components/callout'; - - -The S3 Destinations section are essential for backing up your databases. - -## Actions: - -1. **Create**: Create a new S3 destination. -2. **Delete**: Delete a S3 destination. -3. **Edit**: Edit a S3 destination. -4. **Test**: Test a S3 destination. - -### Create - -In order to create a new S3 Bucket, you need to fill the form. - -- **Name**: This could be anything you want, it will be the name. -- **Access Key**: This is the access key that you will use to access your bucket. -- **Secret Key**: This is the secret key that you will use to access your bucket. -- **Bucket**: This is the bucket that you will use to access your bucket. -- **Region**: This is the region that you will use to access your bucket. -- **Endpoint**: This is the endpoint that you will use to access your bucket. - - - There is a Button `Test` that will test the connection to your bucket, if it is correct it will show you a success message. - - - diff --git a/apps/docs/content/docs/core/server/users.cn.mdx b/apps/docs/content/docs/core/server/users.cn.mdx deleted file mode 100644 index a986d7da..00000000 --- a/apps/docs/content/docs/core/server/users.cn.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: 用户 -description: '管理 Dokploy 中的用户角色和权限。每个实例仅限一个管理员角色。' ---- -import { Callout } from 'fumadocs-ui/components/callout'; - -在 Dokploy 中管理用户角色和权限。请注意,每个实例仅允许一个管理员角色。 - -## 权限 - -Dokploy 提供多种权限,以有效管理您的用户: - -- **创建项目**: 允许用户创建新项目。 -- **创建服务**: 允许用户创建新应用或数据库。 -- **访问 Traefik 文件选项卡**: 允许用户访问 Traefik 文件选项卡。 -- **删除项目**: 允许用户删除项目。 -- **删除服务**: 允许用户删除服务。 -- **访问 Docker 选项卡**: 允许用户访问 Docker 选项卡。 -- **访问 API/CLI**: 允许用户访问 API/CLI,包括 Swagger 路由。 - -您还可以向特定用户授予访问特定项目或服务的权限。 - -### 项目权限 - -根据您的项目和服务,您可以向特定用户分配权限,以便他们访问特定项目或服务。 diff --git a/apps/docs/content/docs/core/server/users.mdx b/apps/docs/content/docs/core/server/users.mdx deleted file mode 100644 index 5d375999..00000000 --- a/apps/docs/content/docs/core/server/users.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Users -description: 'Manage user roles and permissions within Dokploy. Admin roles are limited to one per instance.' ---- -import { Callout } from 'fumadocs-ui/components/callout'; - -Manage user roles and permissions within Dokploy. Note that only one admin role is allowed per instance. - -## Permissions - -Dokploy offers multiple permissions to manage your users effectively: - -- **Create Projects**: Allows the user to create new projects. -- **Create Services**: Allows the user to create new applications or databases. -- **Access Traefik Files Tab**: Allows the user to access the Traefik files tab. -- **Delete Projects**: Allows the user to delete projects. -- **Delete Services**: Allows the user to delete services. -- **Access Docker Tab**: Allows the user to access the Docker tab. -- **Access API/CLI**: Allows the user to access the API/CLI, including the Swagger route. - -You can also grant permissions to specific users for accessing particular projects or services. - -### Project Permissions - -Based on your projects and services, you can assign permissions to specific users to give them access to particular projects or services. diff --git a/apps/docs/content/docs/core/templates/overview.cn.mdx b/apps/docs/content/docs/core/templates/overview.cn.mdx deleted file mode 100644 index 8609412e..00000000 --- a/apps/docs/content/docs/core/templates/overview.cn.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: 模板 -description: Deploy open source templates with Dokploy ---- - -默认情况下,我们包含了一组模板,您可以使用这些模板快速启动项目。您也可以创建自己的模板。 - -## 模板 - -以下模板可用: - -- **Pocketbase**: 适用于您的下一款 SaaS 和移动应用的开源后端,仅需一个文件 -- **Calcom**: 安排会议的开源替代方案 -- **Plausible**: 开源分析平台 -- **Glitchtip**: 简单的事件错误日志记录 -- **Documenso**: 开源的 DocuSign 替代方案 -- **Grafana**: 用于指标的开源仪表板 -- **NocoDB**: 开源的 Airtable 替代方案 -- **AppSmith**: 开源的 CRM 替代方案 -- **Meilisearch**: 一个快速的搜索 API,轻松集成到您的应用、网站和工作流中 -- **Odoo**: 开源的 ERP 替代方案 -- **Rocketchat**: 开源的聊天平台 -- **Uptime Kuma**: 开源的运行时间监控 -- **PhpMyAdmin**: 开源数据库管理 -- **Minio**: 开源对象存储 -- **n8n**: 开源工作流自动化 -- **excalidraw**: 开源协作绘图工具 -- **Directus**: 现代数据栈 🐰 — Directus 是一个即时的 REST+GraphQL API 和直观的无代码数据协作应用程序,适用于任何 SQL 数据库 -- **Baserow**: 构建管理面板、内部工具和仪表板的平台 -- **Metabase**: 开源商业智能 -- **Wordpress**: 开源内容管理系统 - -## 创建您自己的模板 - -我们接受上传新模板到 dokploy 仓库的贡献。 - -请确保遵循创建模板的指南: - -[创建您自己的模板的步骤](https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#templates) diff --git a/apps/docs/content/docs/core/templates/overview.mdx b/apps/docs/content/docs/core/templates/overview.mdx deleted file mode 100644 index 6c8a7e8c..00000000 --- a/apps/docs/content/docs/core/templates/overview.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Templates -description: Deploy open source templates with Dokploy ---- - -By default we include a set of templates, that you can use to spin up templates quickly. You can also create your own templates. - -## Templates - -The following templates are available: - -- **Pocketbase**: Open Source backend for your next SaaS and Mobile app in 1 file -- **Calcom**: Open source alternative to calendly for scheduling meetings -- **Plausible**: Open source analytics platform -- **Glitchtip**: Simple tracking event error logging -- **Documenso**: The Open Source DocuSign Alternative. -- **Grafana**: Open source dashboard for your metrics -- **NocoDB:**: Open Source Airtable Alternative -- **AppSmith**: Open Source CRM Alternative -- **Meilisearch**: A lightning-fast search API that fits effortlessly into your apps, websites, and workflow -- **Odoo**: Open Source ERP Alternative -- **Rocketchat**: Open Source Chat Platform -- **Uptime Kuma**: Open Source Uptime Monitoring -- **PhpMyAdmin**: Open Source Database Administration -- **Minio**: Open Source Object Storage -- **n8n**: Open Source Workflow Automation -- **excalidraw**: Open Source Collaborative Drawing Tool -- **Directus**: The Modern Data Stack 🐰 — Directus is an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database. -- **Baserow**: Platform to build admin panels, internal tools, and dashboards -- **Metabase**: Open Source Business Intelligence -- **Wordpress**: Open Source Content Management System -- **Open WebUI**: Free and Open Source ChatGPT Alternative -- **Teable**: Open Source Airtable Alternative, Developer Friendly, No-code Database Built on Postgres -- **Roundcube**: Free and open source webmail software for the masses, written in PHP, uses SMTP[^1]. - -## Create your own template - -We accept contributions to upload new templates to the dokploy repository. - -Make sure to follow the guidelines for creating a template: - -[Steps to create your own template](https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#templates) - -[^1]: Please note that if you're self-hosting a mail server you need port 25 to be open for SMTP (Mail Transmission Protocol that allows you to send and receive) to work properly. Some VPS providers like [Hetzner](https://docs.hetzner.com/cloud/servers/faq/#why-can-i-not-send-any-mails-from-my-server) block this port by default for new clients. diff --git a/apps/docs/content/docs/core/traefik/overview.cn.mdx b/apps/docs/content/docs/core/traefik/overview.cn.mdx deleted file mode 100644 index ad321d3f..00000000 --- a/apps/docs/content/docs/core/traefik/overview.cn.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: 概述 -description: "了解如何在 Dokploy 中轻松管理每个应用程序的 Traefik 配置。" ---- - -Dokploy 简化了 Traefik 配置的管理,简化了每个应用程序的流程。 - -## 创建 - -每当您在 Dokploy 中创建新应用程序时,就会自动生成相应的 Traefik 配置。此配置专为新应用程序的需求量身定制,确保最佳性能和连接性。 - -## 管理 - -在 Dokploy 中管理 Traefik 配置有两种主要方法: - -### 仪表板 - -- 导航到 `/dashboard/traefik` 页面. -- 此页面提供所有 Traefik 配置文件的文件系统视图,允许直接编辑和查看。 - -### 通过应用程序设置 - -- 转到应用程序设置中的`Advanced`选项卡。 -- 滚动至页面底部的`Traefik`部分。 -- 单击此部分查看和修改您应用程序的特定 Traefik 配置文件。 - -这些方法为您如何通过 Dokploy 内的 Traefik 管理和自定义应用程序的路由和负载平衡行为提供了灵活性。 diff --git a/apps/docs/content/docs/core/traefik/overview.mdx b/apps/docs/content/docs/core/traefik/overview.mdx deleted file mode 100644 index fe5d1354..00000000 --- a/apps/docs/content/docs/core/traefik/overview.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Overview -description: 'Learn how to easily manage Traefik configurations in Dokploy for each application.' ---- - -Dokploy simplifies the management of Traefik configurations, streamlining the process for each application. - -## Create - -Whenever you create a new application in Dokploy, a corresponding Traefik configuration is automatically generated. This configuration is tailored to the needs of the new application, ensuring optimal performance and connectivity. - -## Manage - -There are two main ways to manage your Traefik configurations in Dokploy: - -### Via Dashboard - -- Navigate to the `/dashboard/traefik` route. -- This page provides a filesystem view of all Traefik configuration files, allowing for direct edits and reviews. - -### Via Application Settings - -- Go to the `Advanced` tab within your application's settings. -- Scroll to the `Traefik` section at the bottom of the page. -- Click on this section to view and modify the specific Traefik configuration file for your application. - -These methods provide flexibility in how you manage and customize the routing and load balancing behaviors of your applications through Traefik within Dokploy. \ No newline at end of file diff --git a/apps/docs/content/docs/core/troubleshooting/overview.cn.mdx b/apps/docs/content/docs/core/troubleshooting/overview.cn.mdx deleted file mode 100644 index 71f4f7b6..00000000 --- a/apps/docs/content/docs/core/troubleshooting/overview.cn.mdx +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: 概述 -description: 解决使用 Dokploy 时出现的最常见问题。 ---- - -正在进行中 diff --git a/apps/docs/content/docs/core/troubleshooting/overview.mdx b/apps/docs/content/docs/core/troubleshooting/overview.mdx deleted file mode 100644 index 66a9fe80..00000000 --- a/apps/docs/content/docs/core/troubleshooting/overview.mdx +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Overview -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 -``` diff --git a/apps/docs/generate-docs.mjs b/apps/docs/generate-docs.mjs deleted file mode 100644 index be73d637..00000000 --- a/apps/docs/generate-docs.mjs +++ /dev/null @@ -1,17 +0,0 @@ -import { generateFiles } from "fumadocs-openapi"; - -try { - void generateFiles({ - input: ["./api.json"], - output: "./content/docs/api", - per: "tag", - name: (tag, name) => { - console.log(tag, name); - return `reference-${name}`; - }, - }); -} catch (error) { - console.error(error); -} - -// united.com/customer-care diff --git a/apps/docs/i18n.ts b/apps/docs/i18n.ts deleted file mode 100644 index f22f55f4..00000000 --- a/apps/docs/i18n.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const defaultLanguage = "en"; -export const languages = ["en", "cn"]; diff --git a/apps/docs/mdx-components.tsx b/apps/docs/mdx-components.tsx deleted file mode 100644 index 10488dca..00000000 --- a/apps/docs/mdx-components.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { ImageZoom } from "fumadocs-ui/components/image-zoom"; -import defaultComponents from "fumadocs-ui/mdx"; -import type { MDXComponents } from "mdx/types"; - -export function useMDXComponents(components: MDXComponents): MDXComponents { - return { - ...defaultComponents, - ...components, - ImageZoom, - p: ({ children }) => ( -

{children}

- ), - li: ({ children, id }) => ( -
  • - {children} -
  • - ), - }; -} diff --git a/apps/docs/middleware.ts b/apps/docs/middleware.ts deleted file mode 100644 index 12db9c33..00000000 --- a/apps/docs/middleware.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { createI18nMiddleware } from "fumadocs-core/middleware"; -import { defaultLanguage, languages } from "./i18n"; - -export default createI18nMiddleware({ - languages, - defaultLanguage, -}); - -export const config = { - // Matcher ignoring `/_next/` and `/api/` - matcher: [ - "/((?!api|_next/static|_next/image|assets|favicon.ico|logo.png|robots.txt|sitemap.xml|icon.svg|sw.js).*)", - ], -}; diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs deleted file mode 100644 index 79de7bee..00000000 --- a/apps/docs/next.config.mjs +++ /dev/null @@ -1,16 +0,0 @@ -import createMDX from "fumadocs-mdx/config"; - -const withMDX = createMDX(); - -/** @type {import('next').NextConfig} */ -const config = { - eslint: { - ignoreDuringBuilds: true, - }, - typescript: { - ignoreBuildErrors: true, - }, - reactStrictMode: true, -}; - -export default withMDX(config); diff --git a/apps/docs/package.json b/apps/docs/package.json deleted file mode 100644 index 211d8449..00000000 --- a/apps/docs/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "docs", - "version": "0.0.0", - "private": true, - "scripts": { - "build": "next build", - "dev": "next dev", - "start": "next start", - "build:docs": "node generate-docs.mjs", - "typecheck": "tsc --noEmit" - }, - "dependencies": { - "fumadocs-core": "^12.5.6", - "fumadocs-mdx": "^8.2.34", - "fumadocs-openapi": "^3.3.0", - "fumadocs-ui": "^12.5.6", - "lucide-react": "^0.394.0", - "next": "^14.2.4", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-ga4": "^2.1.0" - }, - "devDependencies": { - "autoprefixer": "10.4.12", - "@types/mdx": "^2.0.13", - "@types/react": "^18.3.3", - "postcss": "^8.4.38", - "tailwindcss": "^3.4.1", - "typescript": "^5.4.5" - } -} diff --git a/apps/docs/postcss.config.js b/apps/docs/postcss.config.js deleted file mode 100644 index e873f1a4..00000000 --- a/apps/docs/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/apps/docs/public/android-chrome-192x192.png b/apps/docs/public/android-chrome-192x192.png deleted file mode 100644 index dff7c1e7..00000000 Binary files a/apps/docs/public/android-chrome-192x192.png and /dev/null differ diff --git a/apps/docs/public/android-chrome-512x512.png b/apps/docs/public/android-chrome-512x512.png deleted file mode 100644 index 5a15d2b5..00000000 Binary files a/apps/docs/public/android-chrome-512x512.png and /dev/null differ diff --git a/apps/docs/public/apple-touch-icon.png b/apps/docs/public/apple-touch-icon.png deleted file mode 100644 index d7636097..00000000 Binary files a/apps/docs/public/apple-touch-icon.png and /dev/null differ diff --git a/apps/docs/public/assets/add-node.png b/apps/docs/public/assets/add-node.png deleted file mode 100644 index 7329a08b..00000000 Binary files a/apps/docs/public/assets/add-node.png and /dev/null differ diff --git a/apps/docs/public/assets/architecture.png b/apps/docs/public/assets/architecture.png deleted file mode 100644 index e068b468..00000000 Binary files a/apps/docs/public/assets/architecture.png and /dev/null differ diff --git a/apps/docs/public/assets/cli/token.png b/apps/docs/public/assets/cli/token.png deleted file mode 100644 index cb4da0f1..00000000 Binary files a/apps/docs/public/assets/cli/token.png and /dev/null differ diff --git a/apps/docs/public/assets/diagram.png b/apps/docs/public/assets/diagram.png deleted file mode 100644 index 05efbcbd..00000000 Binary files a/apps/docs/public/assets/diagram.png and /dev/null differ diff --git a/apps/docs/public/assets/dokploy-ssh-compose.png b/apps/docs/public/assets/dokploy-ssh-compose.png deleted file mode 100644 index a0eade89..00000000 Binary files a/apps/docs/public/assets/dokploy-ssh-compose.png and /dev/null differ diff --git a/apps/docs/public/assets/dokploy-ssh-key.png b/apps/docs/public/assets/dokploy-ssh-key.png deleted file mode 100644 index 78a60b8b..00000000 Binary files a/apps/docs/public/assets/dokploy-ssh-key.png and /dev/null differ diff --git a/apps/docs/public/assets/favicon.png b/apps/docs/public/assets/favicon.png deleted file mode 100644 index 02c56ee2..00000000 Binary files a/apps/docs/public/assets/favicon.png and /dev/null differ diff --git a/apps/docs/public/assets/file-mount-configuration.webp b/apps/docs/public/assets/file-mount-configuration.webp deleted file mode 100644 index ad3a4bef..00000000 Binary files a/apps/docs/public/assets/file-mount-configuration.webp and /dev/null differ diff --git a/apps/docs/public/assets/file-mount.png b/apps/docs/public/assets/file-mount.png deleted file mode 100644 index a2320ec2..00000000 Binary files a/apps/docs/public/assets/file-mount.png and /dev/null differ diff --git a/apps/docs/public/assets/hostinger-add-sshkey.png b/apps/docs/public/assets/hostinger-add-sshkey.png deleted file mode 100644 index dfbb9a77..00000000 Binary files a/apps/docs/public/assets/hostinger-add-sshkey.png and /dev/null differ diff --git a/apps/docs/public/assets/houston.webp b/apps/docs/public/assets/houston.webp deleted file mode 100644 index 930c1649..00000000 Binary files a/apps/docs/public/assets/houston.webp and /dev/null differ diff --git a/apps/docs/public/assets/images/application-domain-setup/app-setup-domain.png b/apps/docs/public/assets/images/application-domain-setup/app-setup-domain.png deleted file mode 100644 index 2c218b09..00000000 Binary files a/apps/docs/public/assets/images/application-domain-setup/app-setup-domain.png and /dev/null differ diff --git a/apps/docs/public/assets/images/application-domain-setup/domain-setup.png b/apps/docs/public/assets/images/application-domain-setup/domain-setup.png deleted file mode 100644 index 080c6bd3..00000000 Binary files a/apps/docs/public/assets/images/application-domain-setup/domain-setup.png and /dev/null differ diff --git a/apps/docs/public/assets/images/checks-passed.png b/apps/docs/public/assets/images/checks-passed.png deleted file mode 100644 index 3303c773..00000000 Binary files a/apps/docs/public/assets/images/checks-passed.png and /dev/null differ diff --git a/apps/docs/public/assets/images/cluster/application.png b/apps/docs/public/assets/images/cluster/application.png deleted file mode 100644 index d01aab7d..00000000 Binary files a/apps/docs/public/assets/images/cluster/application.png and /dev/null differ diff --git a/apps/docs/public/assets/images/cluster/cluster.png b/apps/docs/public/assets/images/cluster/cluster.png deleted file mode 100644 index 8b6154b6..00000000 Binary files a/apps/docs/public/assets/images/cluster/cluster.png and /dev/null differ diff --git a/apps/docs/public/assets/images/cluster/nodes.png b/apps/docs/public/assets/images/cluster/nodes.png deleted file mode 100644 index d6797662..00000000 Binary files a/apps/docs/public/assets/images/cluster/nodes.png and /dev/null differ diff --git a/apps/docs/public/assets/images/cluster/registry.png b/apps/docs/public/assets/images/cluster/registry.png deleted file mode 100644 index fcf19259..00000000 Binary files a/apps/docs/public/assets/images/cluster/registry.png and /dev/null differ diff --git a/apps/docs/public/assets/images/cluster/swarm-settings.png b/apps/docs/public/assets/images/cluster/swarm-settings.png deleted file mode 100644 index f5c48215..00000000 Binary files a/apps/docs/public/assets/images/cluster/swarm-settings.png and /dev/null differ diff --git a/apps/docs/public/assets/images/compose/application.png b/apps/docs/public/assets/images/compose/application.png deleted file mode 100644 index a48389bf..00000000 Binary files a/apps/docs/public/assets/images/compose/application.png and /dev/null differ diff --git a/apps/docs/public/assets/images/compose/domain.png b/apps/docs/public/assets/images/compose/domain.png deleted file mode 100644 index 8b49b238..00000000 Binary files a/apps/docs/public/assets/images/compose/domain.png and /dev/null differ diff --git a/apps/docs/public/assets/images/compose/overview.png b/apps/docs/public/assets/images/compose/overview.png deleted file mode 100644 index 879e254b..00000000 Binary files a/apps/docs/public/assets/images/compose/overview.png and /dev/null differ diff --git a/apps/docs/public/assets/images/compose/setup.png b/apps/docs/public/assets/images/compose/setup.png deleted file mode 100644 index 8753dcad..00000000 Binary files a/apps/docs/public/assets/images/compose/setup.png and /dev/null differ diff --git a/apps/docs/public/assets/images/deployment/oracle/oracle-shape.png b/apps/docs/public/assets/images/deployment/oracle/oracle-shape.png deleted file mode 100644 index 732c39f8..00000000 Binary files a/apps/docs/public/assets/images/deployment/oracle/oracle-shape.png and /dev/null differ diff --git a/apps/docs/public/assets/images/hero-dark.svg b/apps/docs/public/assets/images/hero-dark.svg deleted file mode 100644 index c6a30e88..00000000 --- a/apps/docs/public/assets/images/hero-dark.svg +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/docs/public/assets/images/hero-light.svg b/apps/docs/public/assets/images/hero-light.svg deleted file mode 100644 index 297d68fb..00000000 --- a/apps/docs/public/assets/images/hero-light.svg +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/docs/public/assets/images/setup.png b/apps/docs/public/assets/images/setup.png deleted file mode 100644 index ff0cae02..00000000 Binary files a/apps/docs/public/assets/images/setup.png and /dev/null differ diff --git a/apps/docs/public/assets/images/web-domain-setup/dokploy-setup.png b/apps/docs/public/assets/images/web-domain-setup/dokploy-setup.png deleted file mode 100644 index c5c603ac..00000000 Binary files a/apps/docs/public/assets/images/web-domain-setup/dokploy-setup.png and /dev/null differ diff --git a/apps/docs/public/assets/images/web-domain-setup/domain-setup.png b/apps/docs/public/assets/images/web-domain-setup/domain-setup.png deleted file mode 100644 index 080c6bd3..00000000 Binary files a/apps/docs/public/assets/images/web-domain-setup/domain-setup.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-add-app.png b/apps/docs/public/assets/multi-server-add-app.png deleted file mode 100644 index d6f83882..00000000 Binary files a/apps/docs/public/assets/multi-server-add-app.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-add-server.png b/apps/docs/public/assets/multi-server-add-server.png deleted file mode 100644 index 48e34601..00000000 Binary files a/apps/docs/public/assets/multi-server-add-server.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-finish.png b/apps/docs/public/assets/multi-server-finish.png deleted file mode 100644 index 3f043010..00000000 Binary files a/apps/docs/public/assets/multi-server-finish.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-overview.png b/apps/docs/public/assets/multi-server-overview.png deleted file mode 100644 index e1d9c5e6..00000000 Binary files a/apps/docs/public/assets/multi-server-overview.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-setup-2.png b/apps/docs/public/assets/multi-server-setup-2.png deleted file mode 100644 index 2f7f907e..00000000 Binary files a/apps/docs/public/assets/multi-server-setup-2.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-setup-3.png b/apps/docs/public/assets/multi-server-setup-3.png deleted file mode 100644 index 66f9cc1e..00000000 Binary files a/apps/docs/public/assets/multi-server-setup-3.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-setup-app.png b/apps/docs/public/assets/multi-server-setup-app.png deleted file mode 100644 index 88393cb3..00000000 Binary files a/apps/docs/public/assets/multi-server-setup-app.png and /dev/null differ diff --git a/apps/docs/public/assets/multi-server-setup.png b/apps/docs/public/assets/multi-server-setup.png deleted file mode 100644 index c5bca6bf..00000000 Binary files a/apps/docs/public/assets/multi-server-setup.png and /dev/null differ diff --git a/apps/docs/public/assets/nodes.png b/apps/docs/public/assets/nodes.png deleted file mode 100644 index ad29056f..00000000 Binary files a/apps/docs/public/assets/nodes.png and /dev/null differ diff --git a/apps/docs/public/assets/private-repository.png b/apps/docs/public/assets/private-repository.png deleted file mode 100644 index 90766695..00000000 Binary files a/apps/docs/public/assets/private-repository.png and /dev/null differ diff --git a/apps/docs/public/assets/ssh-keys.png b/apps/docs/public/assets/ssh-keys.png deleted file mode 100644 index 52ee5c5e..00000000 Binary files a/apps/docs/public/assets/ssh-keys.png and /dev/null differ diff --git a/apps/docs/public/assets/webhook-github.png b/apps/docs/public/assets/webhook-github.png deleted file mode 100644 index eb3d004f..00000000 Binary files a/apps/docs/public/assets/webhook-github.png and /dev/null differ diff --git a/apps/docs/public/assets/webhook-url-compose.png b/apps/docs/public/assets/webhook-url-compose.png deleted file mode 100644 index 79e50fc6..00000000 Binary files a/apps/docs/public/assets/webhook-url-compose.png and /dev/null differ diff --git a/apps/docs/public/assets/webhook-url.png b/apps/docs/public/assets/webhook-url.png deleted file mode 100644 index ba307d59..00000000 Binary files a/apps/docs/public/assets/webhook-url.png and /dev/null differ diff --git a/apps/docs/public/favicon-16x16.png b/apps/docs/public/favicon-16x16.png deleted file mode 100644 index 246b15c8..00000000 Binary files a/apps/docs/public/favicon-16x16.png and /dev/null differ diff --git a/apps/docs/public/favicon-32x32.png b/apps/docs/public/favicon-32x32.png deleted file mode 100644 index a15c3da2..00000000 Binary files a/apps/docs/public/favicon-32x32.png and /dev/null differ diff --git a/apps/docs/public/favicon.ico b/apps/docs/public/favicon.ico deleted file mode 100644 index bb92b636..00000000 Binary files a/apps/docs/public/favicon.ico and /dev/null differ diff --git a/apps/docs/public/logo.png b/apps/docs/public/logo.png deleted file mode 100644 index 0b00500c..00000000 Binary files a/apps/docs/public/logo.png and /dev/null differ diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js deleted file mode 100644 index a0a8f161..00000000 --- a/apps/docs/tailwind.config.js +++ /dev/null @@ -1,31 +0,0 @@ -import { createPreset, presets } from "fumadocs-ui/tailwind-plugin"; - -/** @type {import('tailwindcss').Config} */ -export default { - content: [ - "./components/**/*.{ts,tsx}", - "./app/**/*.{ts,tsx}", - "./content/**/*.{md,mdx}", - "./mdx-components.{ts,tsx}", - "./node_modules/fumadocs-ui/dist/**/*.js", - ], - presets: [ - createPreset({ - preset: { - ...presets.default, - dark: { - ...presets.default.dark, - background: "0 0% 2%", - foreground: "0 0% 98%", - popover: "0 0% 4%", - card: "0 0% 4%", - muted: "0 0% 8%", - border: "0 0% 14%", - accent: "0 0% 15%", - "accent-foreground": "0 0% 100%", - "muted-foreground": "0 0% 60%", - }, - }, - }), - ], -}; diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json deleted file mode 100644 index 3671b0b3..00000000 --- a/apps/docs/tsconfig.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "target": "ESNext", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "paths": { - "@/*": ["./*"] - }, - "plugins": [ - { - "name": "next" - } - ] - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/apps/docs/utils/metadata.ts b/apps/docs/utils/metadata.ts deleted file mode 100644 index 4527b2b4..00000000 --- a/apps/docs/utils/metadata.ts +++ /dev/null @@ -1,6 +0,0 @@ -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(); diff --git a/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx b/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx index 6913aa24..8c15e2cd 100644 --- a/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx +++ b/apps/dokploy/components/dashboard/application/deployments/show-deployment.tsx @@ -37,7 +37,6 @@ export const ShowDeployment = ({ logPath, open, onClose, serverId }: Props) => { }; ws.onclose = () => { - console.log("WebSocket connection closed"); wsRef.current = null; // Clear reference on close }; diff --git a/apps/dokploy/components/dashboard/compose/deployments/show-deployment-compose.tsx b/apps/dokploy/components/dashboard/compose/deployments/show-deployment-compose.tsx index 8413b14b..14f3bcd7 100644 --- a/apps/dokploy/components/dashboard/compose/deployments/show-deployment-compose.tsx +++ b/apps/dokploy/components/dashboard/compose/deployments/show-deployment-compose.tsx @@ -43,7 +43,6 @@ export const ShowDeploymentCompose = ({ }; ws.onclose = () => { - console.log("WebSocket connection closed"); wsRef.current = null; }; diff --git a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx index ca9dbbb6..6fc0ab48 100644 --- a/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx +++ b/apps/dokploy/components/dashboard/docker/logs/docker-logs-id.tsx @@ -30,7 +30,6 @@ export const DockerLogsId: React.FC = ({ } if (wsRef.current) { - console.log(wsRef.current); if (wsRef.current.readyState === WebSocket.OPEN) { wsRef.current.close(); } diff --git a/apps/dokploy/components/dashboard/project/add-template.tsx b/apps/dokploy/components/dashboard/project/add-template.tsx index cf0f7e03..2062c9d7 100644 --- a/apps/dokploy/components/dashboard/project/add-template.tsx +++ b/apps/dokploy/components/dashboard/project/add-template.tsx @@ -54,6 +54,7 @@ import { cn } from "@/lib/utils"; import { api } from "@/utils/api"; import { ScrollArea } from "@radix-ui/react-scroll-area"; import { + BookText, CheckIcon, ChevronsUpDown, Code, @@ -249,7 +250,7 @@ export const AddTemplate = ({ projectId }: Props) => { "text-sm text-muted-foreground p-3 rounded-full hover:bg-border items-center flex transition-colors" } > - + )} { -

    +

    {template.description}

    diff --git a/apps/dokploy/components/dashboard/requests/show-requests.tsx b/apps/dokploy/components/dashboard/requests/show-requests.tsx index 1b066529..643d2bcb 100644 --- a/apps/dokploy/components/dashboard/requests/show-requests.tsx +++ b/apps/dokploy/components/dashboard/requests/show-requests.tsx @@ -34,7 +34,7 @@ export const ShowRequests = () => { Request Distribution -
    +
    Showing web and API requests over time diff --git a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx index 8156f7d8..6590f2ba 100644 --- a/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx +++ b/apps/dokploy/components/dashboard/settings/billing/show-billing.tsx @@ -1,3 +1,4 @@ +import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { NumberInput } from "@/components/ui/input"; import { Progress } from "@/components/ui/progress"; @@ -6,11 +7,18 @@ import { cn } from "@/lib/utils"; import { api } from "@/utils/api"; import { loadStripe } from "@stripe/stripe-js"; import clsx from "clsx"; -import { AlertTriangle, CheckIcon, MinusIcon, PlusIcon } from "lucide-react"; +import { + AlertTriangle, + CheckIcon, + Loader2, + MinusIcon, + PlusIcon, +} from "lucide-react"; +import Link from "next/link"; import React, { useState } from "react"; const stripePromise = loadStripe( - "pk_test_51QAm7bF3cxQuHeOz0xg04o9teeyTbbNHQPJ5Tr98MlTEan9MzewT3gwh0jSWBNvrRWZ5vASoBgxUSF4gPWsJwATk00Ir2JZ0S1", + process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY!, ); export const calculatePrice = (count: number, isAnnual = false) => { @@ -21,11 +29,10 @@ export const calculatePrice = (count: number, isAnnual = false) => { if (count <= 1) return 4.5; return count * 3.5; }; -// 178.156.147.118 export const ShowBilling = () => { const { data: servers } = api.server.all.useQuery(undefined); const { data: admin } = api.admin.one.useQuery(); - const { data } = api.stripe.getProducts.useQuery(); + const { data, isLoading } = api.stripe.getProducts.useQuery(); const { mutateAsync: createCheckoutSession } = api.stripe.createCheckoutSession.useMutation(); @@ -97,145 +104,191 @@ export const ShowBilling = () => { )}
    )} - {products?.map((product) => { - const featured = true; - return ( -
    -
    + + Need Help? We are here to help you. + + + Join to our Discord server and we will help you. + + - { - setServerQuantity(e.target.value as unknown as number); - }} - /> - - -
    -
    0 - ? "justify-between" - : "justify-end", - "flex flex-row items-center gap-2 mt-4", + + + Join Discord + + +
    + {isLoading ? ( + + Loading... + + + ) : ( + <> + {products?.map((product) => { + const featured = true; + return ( +
    +
    - {admin?.stripeCustomerId && ( - - )} - - {data?.subscriptions?.length === 0 && ( -
    - + {isAnnual && ( +
    + Recommended 🚀
    )} -
    + {isAnnual ? ( +
    +

    + $ {calculatePrice(serverQuantity, isAnnual).toFixed(2)}{" "} + USD +

    + | +

    + ${" "} + {( + calculatePrice(serverQuantity, isAnnual) / 12 + ).toFixed(2)}{" "} + / Month USD +

    +
    + ) : ( +

    + $ {calculatePrice(serverQuantity, isAnnual).toFixed(2)}{" "} + USD +

    + )} +

    + {product.name} +

    +

    + {product.description} +

    + +
      + {[ + "All the features of Dokploy", + "Unlimited deployments", + "Self-hosted on your own infrastructure", + "Full access to all deployment features", + "Dokploy integration", + "Backups", + "All Incoming features", + ].map((feature) => ( +
    • + + {feature} +
    • + ))} +
    +
    +
    + + {serverQuantity} Servers + +
    + +
    + + { + setServerQuantity( + e.target.value as unknown as number, + ); + }} + /> + + +
    +
    0 + ? "justify-between" + : "justify-end", + "flex flex-row items-center gap-2 mt-4", + )} + > + {admin?.stripeCustomerId && ( + + )} + + {data?.subscriptions?.length === 0 && ( +
    + +
    + )} +
    +
    +
    - -
    - ); - })} + ); + })} + + )} ); }; diff --git a/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx new file mode 100644 index 00000000..ca6a4dae --- /dev/null +++ b/apps/dokploy/components/dashboard/settings/billing/show-welcome-dokploy.tsx @@ -0,0 +1,62 @@ +import { ShowBilling } from "@/components/dashboard/settings/billing/show-billing"; +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog"; +import { api } from "@/utils/api"; +import type React from "react"; +import { useEffect, useState } from "react"; + +export const ShowWelcomeDokploy = () => { + const { data } = api.auth.get.useQuery(); + const [open, setOpen] = useState(false); + + const { data: isCloud, isLoading } = api.settings.isCloud.useQuery(); + + if (!isCloud || data?.rol !== "admin") { + return null; + } + + useEffect(() => { + if ( + !isLoading && + isCloud && + !localStorage.getItem("hasSeenCloudWelcomeModal") && + data?.rol === "admin" + ) { + setOpen(true); + } + }, [isCloud, isLoading]); + + const handleClose = (isOpen: boolean) => { + if (data?.rol === "admin") { + setOpen(isOpen); + if (!isOpen) { + localStorage.setItem("hasSeenCloudWelcomeModal", "true"); // Establece el flag al cerrar el modal + } + } + }; + + return ( + <> + + + + + Welcome to Dokploy Cloud 🎉 + +

    + Unlock powerful features to streamline your deployments and manage + projects effortlessly. +

    +
    +
    + +
    +
    +
    + + ); +}; diff --git a/apps/dokploy/components/dashboard/settings/profile/profile-form.tsx b/apps/dokploy/components/dashboard/settings/profile/profile-form.tsx index 43cd2f0e..3c8d51bb 100644 --- a/apps/dokploy/components/dashboard/settings/profile/profile-form.tsx +++ b/apps/dokploy/components/dashboard/settings/profile/profile-form.tsx @@ -52,8 +52,6 @@ export const ProfileForm = () => { const { data, refetch } = api.auth.get.useQuery(); const { mutateAsync, isLoading } = api.auth.update.useMutation(); - const { mutateAsync: generateToken, isLoading: isLoadingToken } = - api.auth.generateToken.useMutation(); const form = useForm({ defaultValues: { email: data?.email || "", @@ -76,7 +74,7 @@ export const ProfileForm = () => { const onSubmit = async (values: Profile) => { await mutateAsync({ - email: values.email, + email: values.email.toLowerCase(), password: values.password, image: values.image, }) diff --git a/apps/dokploy/components/dashboard/settings/users/add-user.tsx b/apps/dokploy/components/dashboard/settings/users/add-user.tsx index 16af8787..1643f37f 100644 --- a/apps/dokploy/components/dashboard/settings/users/add-user.tsx +++ b/apps/dokploy/components/dashboard/settings/users/add-user.tsx @@ -54,7 +54,7 @@ export const AddUser = () => { const onSubmit = async (data: AddUser) => { await mutateAsync({ - email: data.email, + email: data.email.toLowerCase(), }) .then(async () => { toast.success("Invitation created"); diff --git a/apps/dokploy/components/dashboard/settings/users/update-user.tsx b/apps/dokploy/components/dashboard/settings/users/update-user.tsx deleted file mode 100644 index 78ad2c1a..00000000 --- a/apps/dokploy/components/dashboard/settings/users/update-user.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import { AlertBlock } from "@/components/shared/alert-block"; -import { Button } from "@/components/ui/button"; -import { - Dialog, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, - DialogTrigger, -} from "@/components/ui/dialog"; -import { - Form, - FormControl, - FormField, - FormItem, - FormLabel, - FormMessage, -} from "@/components/ui/form"; -import { Input } from "@/components/ui/input"; -import { api } from "@/utils/api"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { SquarePen } from "lucide-react"; -import { useEffect } from "react"; -import { useForm } from "react-hook-form"; -import { toast } from "sonner"; -import { z } from "zod"; - -const updateUserSchema = z.object({ - email: z - .string() - .min(1, "Email is required") - .email({ message: "Invalid email" }), - password: z.string(), -}); - -type UpdateUser = z.infer; - -interface Props { - authId: string; -} - -export const UpdateUser = ({ authId }: Props) => { - const utils = api.useUtils(); - const { mutateAsync, error, isError, isLoading } = - api.auth.updateByAdmin.useMutation(); - const { data } = api.auth.one.useQuery( - { - id: authId, - }, - { - enabled: !!authId, - }, - ); - - const form = useForm({ - defaultValues: { - email: "", - password: "", - }, - resolver: zodResolver(updateUserSchema), - }); - useEffect(() => { - if (data) { - form.reset({ - email: data.email || "", - password: "", - }); - } - }, [data, form, form.reset]); - - const onSubmit = async (formData: UpdateUser) => { - await mutateAsync({ - email: formData.email === data?.email ? null : formData.email, - password: formData.password, - id: authId, - }) - .then(() => { - toast.success("User updated succesfully"); - utils.user.all.invalidate(); - }) - .catch(() => { - toast.error("Error to update the user"); - }) - .finally(() => {}); - }; - - return ( - - - - - - - Update User - Update the user - - {isError && {error?.message}} - -
    -
    -
    - - ( - - Email - - - - - - - )} - /> - ( - - Password - - - - - - - )} - /> - - - - - -
    -
    -
    -
    - ); -}; diff --git a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx index e1ccc0be..5bdba8b8 100644 --- a/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx +++ b/apps/dokploy/components/dashboard/settings/web-server/terminal-modal.tsx @@ -38,7 +38,10 @@ export const TerminalModal = ({ children, serverId }: Props) => { {children} - + event.preventDefault()} + > Terminal ({data?.name}) Easy way to access the server diff --git a/apps/dokploy/components/layouts/navbar.tsx b/apps/dokploy/components/layouts/navbar.tsx index 0b0e38ff..cead4683 100644 --- a/apps/dokploy/components/layouts/navbar.tsx +++ b/apps/dokploy/components/layouts/navbar.tsx @@ -19,6 +19,7 @@ import { buttonVariants } from "../ui/button"; export const Navbar = () => { const router = useRouter(); const { data } = api.auth.get.useQuery(); + const { data: isCloud } = api.settings.isCloud.useQuery(); const { data: user } = api.user.byAuthId.useQuery( { authId: data?.id || "", @@ -130,6 +131,16 @@ export const Navbar = () => { Settings + {isCloud && data?.rol === "admin" && ( + { + router.push("/dashboard/settings/billing"); + }} + > + Billing + + )} { router.push(tab?.index || ""); }} > -
    +
    {tabMap.map((tab, index) => { if (tab?.isShow && !tab?.isShow?.({ rol: data?.rol, user })) { diff --git a/apps/dokploy/drizzle/0042_fancy_havok.sql b/apps/dokploy/drizzle/0042_fancy_havok.sql new file mode 100644 index 00000000..a16ce816 --- /dev/null +++ b/apps/dokploy/drizzle/0042_fancy_havok.sql @@ -0,0 +1,2 @@ +ALTER TABLE "auth" ADD COLUMN "confirmationToken" text;--> statement-breakpoint +ALTER TABLE "auth" ADD COLUMN "confirmationExpiresAt" text; \ No newline at end of file diff --git a/apps/dokploy/drizzle/meta/0042_snapshot.json b/apps/dokploy/drizzle/meta/0042_snapshot.json new file mode 100644 index 00000000..9d8f76ef --- /dev/null +++ b/apps/dokploy/drizzle/meta/0042_snapshot.json @@ -0,0 +1,3968 @@ +{ + "id": "24bfb192-237f-4297-83d1-27988dcb6be2", + "prevId": "9933f3e8-77a2-40e6-b579-922fe6bb2cb6", + "version": "6", + "dialect": "postgresql", + "tables": { + "public.application": { + "name": "application", + "schema": "", + "columns": { + "applicationId": { + "name": "applicationId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "env": { + "name": "env", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "buildArgs": { + "name": "buildArgs", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "memoryReservation": { + "name": "memoryReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "memoryLimit": { + "name": "memoryLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuReservation": { + "name": "cpuReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuLimit": { + "name": "cpuLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "subtitle": { + "name": "subtitle", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "command": { + "name": "command", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "refreshToken": { + "name": "refreshToken", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sourceType": { + "name": "sourceType", + "type": "sourceType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'github'" + }, + "repository": { + "name": "repository", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "owner": { + "name": "owner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "branch": { + "name": "branch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "buildPath": { + "name": "buildPath", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'/'" + }, + "autoDeploy": { + "name": "autoDeploy", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "gitlabProjectId": { + "name": "gitlabProjectId", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "gitlabRepository": { + "name": "gitlabRepository", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabOwner": { + "name": "gitlabOwner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabBranch": { + "name": "gitlabBranch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabBuildPath": { + "name": "gitlabBuildPath", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'/'" + }, + "gitlabPathNamespace": { + "name": "gitlabPathNamespace", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketRepository": { + "name": "bitbucketRepository", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketOwner": { + "name": "bitbucketOwner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketBranch": { + "name": "bitbucketBranch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketBuildPath": { + "name": "bitbucketBuildPath", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'/'" + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dockerImage": { + "name": "dockerImage", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customGitUrl": { + "name": "customGitUrl", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customGitBranch": { + "name": "customGitBranch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customGitBuildPath": { + "name": "customGitBuildPath", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customGitSSHKeyId": { + "name": "customGitSSHKeyId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dockerfile": { + "name": "dockerfile", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dockerContextPath": { + "name": "dockerContextPath", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dockerBuildStage": { + "name": "dockerBuildStage", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dropBuildPath": { + "name": "dropBuildPath", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "healthCheckSwarm": { + "name": "healthCheckSwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "restartPolicySwarm": { + "name": "restartPolicySwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "placementSwarm": { + "name": "placementSwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "updateConfigSwarm": { + "name": "updateConfigSwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "rollbackConfigSwarm": { + "name": "rollbackConfigSwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "modeSwarm": { + "name": "modeSwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "labelsSwarm": { + "name": "labelsSwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "networkSwarm": { + "name": "networkSwarm", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "replicas": { + "name": "replicas", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 1 + }, + "applicationStatus": { + "name": "applicationStatus", + "type": "applicationStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'idle'" + }, + "buildType": { + "name": "buildType", + "type": "buildType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'nixpacks'" + }, + "publishDirectory": { + "name": "publishDirectory", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "registryId": { + "name": "registryId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "githubId": { + "name": "githubId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabId": { + "name": "gitlabId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketId": { + "name": "bitbucketId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": { + "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk", + "tableFrom": "application", + "tableTo": "ssh-key", + "columnsFrom": [ + "customGitSSHKeyId" + ], + "columnsTo": [ + "sshKeyId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "application_registryId_registry_registryId_fk": { + "name": "application_registryId_registry_registryId_fk", + "tableFrom": "application", + "tableTo": "registry", + "columnsFrom": [ + "registryId" + ], + "columnsTo": [ + "registryId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "application_projectId_project_projectId_fk": { + "name": "application_projectId_project_projectId_fk", + "tableFrom": "application", + "tableTo": "project", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "projectId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "application_githubId_github_githubId_fk": { + "name": "application_githubId_github_githubId_fk", + "tableFrom": "application", + "tableTo": "github", + "columnsFrom": [ + "githubId" + ], + "columnsTo": [ + "githubId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "application_gitlabId_gitlab_gitlabId_fk": { + "name": "application_gitlabId_gitlab_gitlabId_fk", + "tableFrom": "application", + "tableTo": "gitlab", + "columnsFrom": [ + "gitlabId" + ], + "columnsTo": [ + "gitlabId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "application_bitbucketId_bitbucket_bitbucketId_fk": { + "name": "application_bitbucketId_bitbucket_bitbucketId_fk", + "tableFrom": "application", + "tableTo": "bitbucket", + "columnsFrom": [ + "bitbucketId" + ], + "columnsTo": [ + "bitbucketId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "application_serverId_server_serverId_fk": { + "name": "application_serverId_server_serverId_fk", + "tableFrom": "application", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "application_appName_unique": { + "name": "application_appName_unique", + "nullsNotDistinct": false, + "columns": [ + "appName" + ] + } + } + }, + "public.postgres": { + "name": "postgres", + "schema": "", + "columns": { + "postgresId": { + "name": "postgresId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databaseName": { + "name": "databaseName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databaseUser": { + "name": "databaseUser", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databasePassword": { + "name": "databasePassword", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "dockerImage": { + "name": "dockerImage", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "command": { + "name": "command", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "env": { + "name": "env", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "memoryReservation": { + "name": "memoryReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "externalPort": { + "name": "externalPort", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "memoryLimit": { + "name": "memoryLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuReservation": { + "name": "cpuReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuLimit": { + "name": "cpuLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "applicationStatus": { + "name": "applicationStatus", + "type": "applicationStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'idle'" + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "postgres_projectId_project_projectId_fk": { + "name": "postgres_projectId_project_projectId_fk", + "tableFrom": "postgres", + "tableTo": "project", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "projectId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "postgres_serverId_server_serverId_fk": { + "name": "postgres_serverId_server_serverId_fk", + "tableFrom": "postgres", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "postgres_appName_unique": { + "name": "postgres_appName_unique", + "nullsNotDistinct": false, + "columns": [ + "appName" + ] + } + } + }, + "public.user": { + "name": "user", + "schema": "", + "columns": { + "userId": { + "name": "userId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "isRegistered": { + "name": "isRegistered", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "expirationDate": { + "name": "expirationDate", + "type": "timestamp(3)", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "canCreateProjects": { + "name": "canCreateProjects", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canAccessToSSHKeys": { + "name": "canAccessToSSHKeys", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canCreateServices": { + "name": "canCreateServices", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canDeleteProjects": { + "name": "canDeleteProjects", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canDeleteServices": { + "name": "canDeleteServices", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canAccessToDocker": { + "name": "canAccessToDocker", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canAccessToAPI": { + "name": "canAccessToAPI", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canAccessToGitProviders": { + "name": "canAccessToGitProviders", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "canAccessToTraefikFiles": { + "name": "canAccessToTraefikFiles", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "accesedProjects": { + "name": "accesedProjects", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "ARRAY[]::text[]" + }, + "accesedServices": { + "name": "accesedServices", + "type": "text[]", + "primaryKey": false, + "notNull": true, + "default": "ARRAY[]::text[]" + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "authId": { + "name": "authId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "user_adminId_admin_adminId_fk": { + "name": "user_adminId_admin_adminId_fk", + "tableFrom": "user", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "user_authId_auth_id_fk": { + "name": "user_authId_auth_id_fk", + "tableFrom": "user", + "tableTo": "auth", + "columnsFrom": [ + "authId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.admin": { + "name": "admin", + "schema": "", + "columns": { + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "serverIp": { + "name": "serverIp", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "certificateType": { + "name": "certificateType", + "type": "certificateType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'none'" + }, + "host": { + "name": "host", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "letsEncryptEmail": { + "name": "letsEncryptEmail", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sshPrivateKey": { + "name": "sshPrivateKey", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "enableDockerCleanup": { + "name": "enableDockerCleanup", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "enableLogRotation": { + "name": "enableLogRotation", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "authId": { + "name": "authId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "stripeCustomerId": { + "name": "stripeCustomerId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "stripeSubscriptionId": { + "name": "stripeSubscriptionId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serversQuantity": { + "name": "serversQuantity", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + } + }, + "indexes": {}, + "foreignKeys": { + "admin_authId_auth_id_fk": { + "name": "admin_authId_auth_id_fk", + "tableFrom": "admin", + "tableTo": "auth", + "columnsFrom": [ + "authId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.auth": { + "name": "auth", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "rol": { + "name": "rol", + "type": "Roles", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "image": { + "name": "image", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "secret": { + "name": "secret", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "token": { + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "is2FAEnabled": { + "name": "is2FAEnabled", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "resetPasswordToken": { + "name": "resetPasswordToken", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "resetPasswordExpiresAt": { + "name": "resetPasswordExpiresAt", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "confirmationToken": { + "name": "confirmationToken", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "confirmationExpiresAt": { + "name": "confirmationExpiresAt", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "auth_email_unique": { + "name": "auth_email_unique", + "nullsNotDistinct": false, + "columns": [ + "email" + ] + } + } + }, + "public.project": { + "name": "project", + "schema": "", + "columns": { + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "project_adminId_admin_adminId_fk": { + "name": "project_adminId_admin_adminId_fk", + "tableFrom": "project", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.domain": { + "name": "domain", + "schema": "", + "columns": { + "domainId": { + "name": "domainId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "host": { + "name": "host", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "https": { + "name": "https", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "port": { + "name": "port", + "type": "integer", + "primaryKey": false, + "notNull": false, + "default": 3000 + }, + "path": { + "name": "path", + "type": "text", + "primaryKey": false, + "notNull": false, + "default": "'/'" + }, + "serviceName": { + "name": "serviceName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "domainType": { + "name": "domainType", + "type": "domainType", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'application'" + }, + "uniqueConfigKey": { + "name": "uniqueConfigKey", + "type": "serial", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "composeId": { + "name": "composeId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "applicationId": { + "name": "applicationId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "certificateType": { + "name": "certificateType", + "type": "certificateType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'none'" + } + }, + "indexes": {}, + "foreignKeys": { + "domain_composeId_compose_composeId_fk": { + "name": "domain_composeId_compose_composeId_fk", + "tableFrom": "domain", + "tableTo": "compose", + "columnsFrom": [ + "composeId" + ], + "columnsTo": [ + "composeId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "domain_applicationId_application_applicationId_fk": { + "name": "domain_applicationId_application_applicationId_fk", + "tableFrom": "domain", + "tableTo": "application", + "columnsFrom": [ + "applicationId" + ], + "columnsTo": [ + "applicationId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.mariadb": { + "name": "mariadb", + "schema": "", + "columns": { + "mariadbId": { + "name": "mariadbId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "databaseName": { + "name": "databaseName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databaseUser": { + "name": "databaseUser", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databasePassword": { + "name": "databasePassword", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "rootPassword": { + "name": "rootPassword", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "dockerImage": { + "name": "dockerImage", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "command": { + "name": "command", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "env": { + "name": "env", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "memoryReservation": { + "name": "memoryReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "memoryLimit": { + "name": "memoryLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuReservation": { + "name": "cpuReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuLimit": { + "name": "cpuLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "externalPort": { + "name": "externalPort", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "applicationStatus": { + "name": "applicationStatus", + "type": "applicationStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'idle'" + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "mariadb_projectId_project_projectId_fk": { + "name": "mariadb_projectId_project_projectId_fk", + "tableFrom": "mariadb", + "tableTo": "project", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "projectId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mariadb_serverId_server_serverId_fk": { + "name": "mariadb_serverId_server_serverId_fk", + "tableFrom": "mariadb", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mariadb_appName_unique": { + "name": "mariadb_appName_unique", + "nullsNotDistinct": false, + "columns": [ + "appName" + ] + } + } + }, + "public.mongo": { + "name": "mongo", + "schema": "", + "columns": { + "mongoId": { + "name": "mongoId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "databaseUser": { + "name": "databaseUser", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databasePassword": { + "name": "databasePassword", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "dockerImage": { + "name": "dockerImage", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "command": { + "name": "command", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "env": { + "name": "env", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "memoryReservation": { + "name": "memoryReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "memoryLimit": { + "name": "memoryLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuReservation": { + "name": "cpuReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuLimit": { + "name": "cpuLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "externalPort": { + "name": "externalPort", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "applicationStatus": { + "name": "applicationStatus", + "type": "applicationStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'idle'" + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "mongo_projectId_project_projectId_fk": { + "name": "mongo_projectId_project_projectId_fk", + "tableFrom": "mongo", + "tableTo": "project", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "projectId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mongo_serverId_server_serverId_fk": { + "name": "mongo_serverId_server_serverId_fk", + "tableFrom": "mongo", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mongo_appName_unique": { + "name": "mongo_appName_unique", + "nullsNotDistinct": false, + "columns": [ + "appName" + ] + } + } + }, + "public.mysql": { + "name": "mysql", + "schema": "", + "columns": { + "mysqlId": { + "name": "mysqlId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "databaseName": { + "name": "databaseName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databaseUser": { + "name": "databaseUser", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databasePassword": { + "name": "databasePassword", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "rootPassword": { + "name": "rootPassword", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "dockerImage": { + "name": "dockerImage", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "command": { + "name": "command", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "env": { + "name": "env", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "memoryReservation": { + "name": "memoryReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "memoryLimit": { + "name": "memoryLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuReservation": { + "name": "cpuReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuLimit": { + "name": "cpuLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "externalPort": { + "name": "externalPort", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "applicationStatus": { + "name": "applicationStatus", + "type": "applicationStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'idle'" + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "mysql_projectId_project_projectId_fk": { + "name": "mysql_projectId_project_projectId_fk", + "tableFrom": "mysql", + "tableTo": "project", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "projectId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mysql_serverId_server_serverId_fk": { + "name": "mysql_serverId_server_serverId_fk", + "tableFrom": "mysql", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "mysql_appName_unique": { + "name": "mysql_appName_unique", + "nullsNotDistinct": false, + "columns": [ + "appName" + ] + } + } + }, + "public.backup": { + "name": "backup", + "schema": "", + "columns": { + "backupId": { + "name": "backupId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "schedule": { + "name": "schedule", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "enabled": { + "name": "enabled", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "database": { + "name": "database", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "prefix": { + "name": "prefix", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "destinationId": { + "name": "destinationId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "databaseType": { + "name": "databaseType", + "type": "databaseType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "postgresId": { + "name": "postgresId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mariadbId": { + "name": "mariadbId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mysqlId": { + "name": "mysqlId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mongoId": { + "name": "mongoId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "backup_destinationId_destination_destinationId_fk": { + "name": "backup_destinationId_destination_destinationId_fk", + "tableFrom": "backup", + "tableTo": "destination", + "columnsFrom": [ + "destinationId" + ], + "columnsTo": [ + "destinationId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "backup_postgresId_postgres_postgresId_fk": { + "name": "backup_postgresId_postgres_postgresId_fk", + "tableFrom": "backup", + "tableTo": "postgres", + "columnsFrom": [ + "postgresId" + ], + "columnsTo": [ + "postgresId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "backup_mariadbId_mariadb_mariadbId_fk": { + "name": "backup_mariadbId_mariadb_mariadbId_fk", + "tableFrom": "backup", + "tableTo": "mariadb", + "columnsFrom": [ + "mariadbId" + ], + "columnsTo": [ + "mariadbId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "backup_mysqlId_mysql_mysqlId_fk": { + "name": "backup_mysqlId_mysql_mysqlId_fk", + "tableFrom": "backup", + "tableTo": "mysql", + "columnsFrom": [ + "mysqlId" + ], + "columnsTo": [ + "mysqlId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "backup_mongoId_mongo_mongoId_fk": { + "name": "backup_mongoId_mongo_mongoId_fk", + "tableFrom": "backup", + "tableTo": "mongo", + "columnsFrom": [ + "mongoId" + ], + "columnsTo": [ + "mongoId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.destination": { + "name": "destination", + "schema": "", + "columns": { + "destinationId": { + "name": "destinationId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "accessKey": { + "name": "accessKey", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "secretAccessKey": { + "name": "secretAccessKey", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "bucket": { + "name": "bucket", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "region": { + "name": "region", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "endpoint": { + "name": "endpoint", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "destination_adminId_admin_adminId_fk": { + "name": "destination_adminId_admin_adminId_fk", + "tableFrom": "destination", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.deployment": { + "name": "deployment", + "schema": "", + "columns": { + "deploymentId": { + "name": "deploymentId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "status": { + "name": "status", + "type": "deploymentStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'running'" + }, + "logPath": { + "name": "logPath", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "applicationId": { + "name": "applicationId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "composeId": { + "name": "composeId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "deployment_applicationId_application_applicationId_fk": { + "name": "deployment_applicationId_application_applicationId_fk", + "tableFrom": "deployment", + "tableTo": "application", + "columnsFrom": [ + "applicationId" + ], + "columnsTo": [ + "applicationId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "deployment_composeId_compose_composeId_fk": { + "name": "deployment_composeId_compose_composeId_fk", + "tableFrom": "deployment", + "tableTo": "compose", + "columnsFrom": [ + "composeId" + ], + "columnsTo": [ + "composeId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "deployment_serverId_server_serverId_fk": { + "name": "deployment_serverId_server_serverId_fk", + "tableFrom": "deployment", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.mount": { + "name": "mount", + "schema": "", + "columns": { + "mountId": { + "name": "mountId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "type": { + "name": "type", + "type": "mountType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "hostPath": { + "name": "hostPath", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "volumeName": { + "name": "volumeName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "filePath": { + "name": "filePath", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "content": { + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serviceType": { + "name": "serviceType", + "type": "serviceType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'application'" + }, + "mountPath": { + "name": "mountPath", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "applicationId": { + "name": "applicationId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "postgresId": { + "name": "postgresId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mariadbId": { + "name": "mariadbId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mongoId": { + "name": "mongoId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "mysqlId": { + "name": "mysqlId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "redisId": { + "name": "redisId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "composeId": { + "name": "composeId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "mount_applicationId_application_applicationId_fk": { + "name": "mount_applicationId_application_applicationId_fk", + "tableFrom": "mount", + "tableTo": "application", + "columnsFrom": [ + "applicationId" + ], + "columnsTo": [ + "applicationId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mount_postgresId_postgres_postgresId_fk": { + "name": "mount_postgresId_postgres_postgresId_fk", + "tableFrom": "mount", + "tableTo": "postgres", + "columnsFrom": [ + "postgresId" + ], + "columnsTo": [ + "postgresId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mount_mariadbId_mariadb_mariadbId_fk": { + "name": "mount_mariadbId_mariadb_mariadbId_fk", + "tableFrom": "mount", + "tableTo": "mariadb", + "columnsFrom": [ + "mariadbId" + ], + "columnsTo": [ + "mariadbId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mount_mongoId_mongo_mongoId_fk": { + "name": "mount_mongoId_mongo_mongoId_fk", + "tableFrom": "mount", + "tableTo": "mongo", + "columnsFrom": [ + "mongoId" + ], + "columnsTo": [ + "mongoId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mount_mysqlId_mysql_mysqlId_fk": { + "name": "mount_mysqlId_mysql_mysqlId_fk", + "tableFrom": "mount", + "tableTo": "mysql", + "columnsFrom": [ + "mysqlId" + ], + "columnsTo": [ + "mysqlId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mount_redisId_redis_redisId_fk": { + "name": "mount_redisId_redis_redisId_fk", + "tableFrom": "mount", + "tableTo": "redis", + "columnsFrom": [ + "redisId" + ], + "columnsTo": [ + "redisId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "mount_composeId_compose_composeId_fk": { + "name": "mount_composeId_compose_composeId_fk", + "tableFrom": "mount", + "tableTo": "compose", + "columnsFrom": [ + "composeId" + ], + "columnsTo": [ + "composeId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.certificate": { + "name": "certificate", + "schema": "", + "columns": { + "certificateId": { + "name": "certificateId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "certificateData": { + "name": "certificateData", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "privateKey": { + "name": "privateKey", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "certificatePath": { + "name": "certificatePath", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "autoRenew": { + "name": "autoRenew", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "certificate_adminId_admin_adminId_fk": { + "name": "certificate_adminId_admin_adminId_fk", + "tableFrom": "certificate", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "certificate_serverId_server_serverId_fk": { + "name": "certificate_serverId_server_serverId_fk", + "tableFrom": "certificate", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "certificate_certificatePath_unique": { + "name": "certificate_certificatePath_unique", + "nullsNotDistinct": false, + "columns": [ + "certificatePath" + ] + } + } + }, + "public.session": { + "name": "session", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "session_user_id_auth_id_fk": { + "name": "session_user_id_auth_id_fk", + "tableFrom": "session", + "tableTo": "auth", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.redirect": { + "name": "redirect", + "schema": "", + "columns": { + "redirectId": { + "name": "redirectId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "regex": { + "name": "regex", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "replacement": { + "name": "replacement", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "permanent": { + "name": "permanent", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "uniqueConfigKey": { + "name": "uniqueConfigKey", + "type": "serial", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "applicationId": { + "name": "applicationId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "redirect_applicationId_application_applicationId_fk": { + "name": "redirect_applicationId_application_applicationId_fk", + "tableFrom": "redirect", + "tableTo": "application", + "columnsFrom": [ + "applicationId" + ], + "columnsTo": [ + "applicationId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.security": { + "name": "security", + "schema": "", + "columns": { + "securityId": { + "name": "securityId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "applicationId": { + "name": "applicationId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "security_applicationId_application_applicationId_fk": { + "name": "security_applicationId_application_applicationId_fk", + "tableFrom": "security", + "tableTo": "application", + "columnsFrom": [ + "applicationId" + ], + "columnsTo": [ + "applicationId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "security_username_applicationId_unique": { + "name": "security_username_applicationId_unique", + "nullsNotDistinct": false, + "columns": [ + "username", + "applicationId" + ] + } + } + }, + "public.port": { + "name": "port", + "schema": "", + "columns": { + "portId": { + "name": "portId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "publishedPort": { + "name": "publishedPort", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "targetPort": { + "name": "targetPort", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "protocol": { + "name": "protocol", + "type": "protocolType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "applicationId": { + "name": "applicationId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "port_applicationId_application_applicationId_fk": { + "name": "port_applicationId_application_applicationId_fk", + "tableFrom": "port", + "tableTo": "application", + "columnsFrom": [ + "applicationId" + ], + "columnsTo": [ + "applicationId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.redis": { + "name": "redis", + "schema": "", + "columns": { + "redisId": { + "name": "redisId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "dockerImage": { + "name": "dockerImage", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "command": { + "name": "command", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "env": { + "name": "env", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "memoryReservation": { + "name": "memoryReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "memoryLimit": { + "name": "memoryLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuReservation": { + "name": "cpuReservation", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "cpuLimit": { + "name": "cpuLimit", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "externalPort": { + "name": "externalPort", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "applicationStatus": { + "name": "applicationStatus", + "type": "applicationStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'idle'" + }, + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "redis_projectId_project_projectId_fk": { + "name": "redis_projectId_project_projectId_fk", + "tableFrom": "redis", + "tableTo": "project", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "projectId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "redis_serverId_server_serverId_fk": { + "name": "redis_serverId_server_serverId_fk", + "tableFrom": "redis", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "redis_appName_unique": { + "name": "redis_appName_unique", + "nullsNotDistinct": false, + "columns": [ + "appName" + ] + } + } + }, + "public.compose": { + "name": "compose", + "schema": "", + "columns": { + "composeId": { + "name": "composeId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "env": { + "name": "env", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "composeFile": { + "name": "composeFile", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "refreshToken": { + "name": "refreshToken", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "sourceType": { + "name": "sourceType", + "type": "sourceTypeCompose", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'github'" + }, + "composeType": { + "name": "composeType", + "type": "composeType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'docker-compose'" + }, + "repository": { + "name": "repository", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "owner": { + "name": "owner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "branch": { + "name": "branch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "autoDeploy": { + "name": "autoDeploy", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "gitlabProjectId": { + "name": "gitlabProjectId", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "gitlabRepository": { + "name": "gitlabRepository", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabOwner": { + "name": "gitlabOwner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabBranch": { + "name": "gitlabBranch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabPathNamespace": { + "name": "gitlabPathNamespace", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketRepository": { + "name": "bitbucketRepository", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketOwner": { + "name": "bitbucketOwner", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketBranch": { + "name": "bitbucketBranch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customGitUrl": { + "name": "customGitUrl", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customGitBranch": { + "name": "customGitBranch", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "customGitSSHKeyId": { + "name": "customGitSSHKeyId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "command": { + "name": "command", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "composePath": { + "name": "composePath", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'./docker-compose.yml'" + }, + "suffix": { + "name": "suffix", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "randomize": { + "name": "randomize", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "composeStatus": { + "name": "composeStatus", + "type": "applicationStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'idle'" + }, + "projectId": { + "name": "projectId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "githubId": { + "name": "githubId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitlabId": { + "name": "gitlabId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketId": { + "name": "bitbucketId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": { + "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk", + "tableFrom": "compose", + "tableTo": "ssh-key", + "columnsFrom": [ + "customGitSSHKeyId" + ], + "columnsTo": [ + "sshKeyId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "compose_projectId_project_projectId_fk": { + "name": "compose_projectId_project_projectId_fk", + "tableFrom": "compose", + "tableTo": "project", + "columnsFrom": [ + "projectId" + ], + "columnsTo": [ + "projectId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "compose_githubId_github_githubId_fk": { + "name": "compose_githubId_github_githubId_fk", + "tableFrom": "compose", + "tableTo": "github", + "columnsFrom": [ + "githubId" + ], + "columnsTo": [ + "githubId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "compose_gitlabId_gitlab_gitlabId_fk": { + "name": "compose_gitlabId_gitlab_gitlabId_fk", + "tableFrom": "compose", + "tableTo": "gitlab", + "columnsFrom": [ + "gitlabId" + ], + "columnsTo": [ + "gitlabId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "compose_bitbucketId_bitbucket_bitbucketId_fk": { + "name": "compose_bitbucketId_bitbucket_bitbucketId_fk", + "tableFrom": "compose", + "tableTo": "bitbucket", + "columnsFrom": [ + "bitbucketId" + ], + "columnsTo": [ + "bitbucketId" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "compose_serverId_server_serverId_fk": { + "name": "compose_serverId_server_serverId_fk", + "tableFrom": "compose", + "tableTo": "server", + "columnsFrom": [ + "serverId" + ], + "columnsTo": [ + "serverId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.registry": { + "name": "registry", + "schema": "", + "columns": { + "registryId": { + "name": "registryId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "registryName": { + "name": "registryName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "imagePrefix": { + "name": "imagePrefix", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "registryUrl": { + "name": "registryUrl", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "selfHosted": { + "name": "selfHosted", + "type": "RegistryType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'cloud'" + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "registry_adminId_admin_adminId_fk": { + "name": "registry_adminId_admin_adminId_fk", + "tableFrom": "registry", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.discord": { + "name": "discord", + "schema": "", + "columns": { + "discordId": { + "name": "discordId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "webhookUrl": { + "name": "webhookUrl", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.email": { + "name": "email", + "schema": "", + "columns": { + "emailId": { + "name": "emailId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "smtpServer": { + "name": "smtpServer", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "smtpPort": { + "name": "smtpPort", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "fromAddress": { + "name": "fromAddress", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "toAddress": { + "name": "toAddress", + "type": "text[]", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.notification": { + "name": "notification", + "schema": "", + "columns": { + "notificationId": { + "name": "notificationId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "appDeploy": { + "name": "appDeploy", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "appBuildError": { + "name": "appBuildError", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "databaseBackup": { + "name": "databaseBackup", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "dokployRestart": { + "name": "dokployRestart", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "dockerCleanup": { + "name": "dockerCleanup", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "notificationType": { + "name": "notificationType", + "type": "notificationType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "slackId": { + "name": "slackId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "telegramId": { + "name": "telegramId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "discordId": { + "name": "discordId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "emailId": { + "name": "emailId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "notification_slackId_slack_slackId_fk": { + "name": "notification_slackId_slack_slackId_fk", + "tableFrom": "notification", + "tableTo": "slack", + "columnsFrom": [ + "slackId" + ], + "columnsTo": [ + "slackId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "notification_telegramId_telegram_telegramId_fk": { + "name": "notification_telegramId_telegram_telegramId_fk", + "tableFrom": "notification", + "tableTo": "telegram", + "columnsFrom": [ + "telegramId" + ], + "columnsTo": [ + "telegramId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "notification_discordId_discord_discordId_fk": { + "name": "notification_discordId_discord_discordId_fk", + "tableFrom": "notification", + "tableTo": "discord", + "columnsFrom": [ + "discordId" + ], + "columnsTo": [ + "discordId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "notification_emailId_email_emailId_fk": { + "name": "notification_emailId_email_emailId_fk", + "tableFrom": "notification", + "tableTo": "email", + "columnsFrom": [ + "emailId" + ], + "columnsTo": [ + "emailId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "notification_adminId_admin_adminId_fk": { + "name": "notification_adminId_admin_adminId_fk", + "tableFrom": "notification", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.slack": { + "name": "slack", + "schema": "", + "columns": { + "slackId": { + "name": "slackId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "webhookUrl": { + "name": "webhookUrl", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "channel": { + "name": "channel", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.telegram": { + "name": "telegram", + "schema": "", + "columns": { + "telegramId": { + "name": "telegramId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "botToken": { + "name": "botToken", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "chatId": { + "name": "chatId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.ssh-key": { + "name": "ssh-key", + "schema": "", + "columns": { + "sshKeyId": { + "name": "sshKeyId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "privateKey": { + "name": "privateKey", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "publicKey": { + "name": "publicKey", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "lastUsedAt": { + "name": "lastUsedAt", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "ssh-key_adminId_admin_adminId_fk": { + "name": "ssh-key_adminId_admin_adminId_fk", + "tableFrom": "ssh-key", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.git_provider": { + "name": "git_provider", + "schema": "", + "columns": { + "gitProviderId": { + "name": "gitProviderId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "providerType": { + "name": "providerType", + "type": "gitProviderType", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'github'" + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "git_provider_adminId_admin_adminId_fk": { + "name": "git_provider_adminId_admin_adminId_fk", + "tableFrom": "git_provider", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.bitbucket": { + "name": "bitbucket", + "schema": "", + "columns": { + "bitbucketId": { + "name": "bitbucketId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "bitbucketUsername": { + "name": "bitbucketUsername", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "appPassword": { + "name": "appPassword", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "bitbucketWorkspaceName": { + "name": "bitbucketWorkspaceName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitProviderId": { + "name": "gitProviderId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "bitbucket_gitProviderId_git_provider_gitProviderId_fk": { + "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk", + "tableFrom": "bitbucket", + "tableTo": "git_provider", + "columnsFrom": [ + "gitProviderId" + ], + "columnsTo": [ + "gitProviderId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.github": { + "name": "github", + "schema": "", + "columns": { + "githubId": { + "name": "githubId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "githubAppName": { + "name": "githubAppName", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "githubAppId": { + "name": "githubAppId", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "githubClientId": { + "name": "githubClientId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "githubClientSecret": { + "name": "githubClientSecret", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "githubInstallationId": { + "name": "githubInstallationId", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "githubPrivateKey": { + "name": "githubPrivateKey", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "githubWebhookSecret": { + "name": "githubWebhookSecret", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "gitProviderId": { + "name": "gitProviderId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "github_gitProviderId_git_provider_gitProviderId_fk": { + "name": "github_gitProviderId_git_provider_gitProviderId_fk", + "tableFrom": "github", + "tableTo": "git_provider", + "columnsFrom": [ + "gitProviderId" + ], + "columnsTo": [ + "gitProviderId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.gitlab": { + "name": "gitlab", + "schema": "", + "columns": { + "gitlabId": { + "name": "gitlabId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "application_id": { + "name": "application_id", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "redirect_uri": { + "name": "redirect_uri", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "secret": { + "name": "secret", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "access_token": { + "name": "access_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "refresh_token": { + "name": "refresh_token", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "group_name": { + "name": "group_name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "gitProviderId": { + "name": "gitProviderId", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "gitlab_gitProviderId_git_provider_gitProviderId_fk": { + "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk", + "tableFrom": "gitlab", + "tableTo": "git_provider", + "columnsFrom": [ + "gitProviderId" + ], + "columnsTo": [ + "gitProviderId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "public.server": { + "name": "server", + "schema": "", + "columns": { + "serverId": { + "name": "serverId", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "ipAddress": { + "name": "ipAddress", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "port": { + "name": "port", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'root'" + }, + "appName": { + "name": "appName", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "enableDockerCleanup": { + "name": "enableDockerCleanup", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "createdAt": { + "name": "createdAt", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "adminId": { + "name": "adminId", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "serverStatus": { + "name": "serverStatus", + "type": "serverStatus", + "typeSchema": "public", + "primaryKey": false, + "notNull": true, + "default": "'active'" + }, + "sshKeyId": { + "name": "sshKeyId", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "server_adminId_admin_adminId_fk": { + "name": "server_adminId_admin_adminId_fk", + "tableFrom": "server", + "tableTo": "admin", + "columnsFrom": [ + "adminId" + ], + "columnsTo": [ + "adminId" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "server_sshKeyId_ssh-key_sshKeyId_fk": { + "name": "server_sshKeyId_ssh-key_sshKeyId_fk", + "tableFrom": "server", + "tableTo": "ssh-key", + "columnsFrom": [ + "sshKeyId" + ], + "columnsTo": [ + "sshKeyId" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + } + }, + "enums": { + "public.buildType": { + "name": "buildType", + "schema": "public", + "values": [ + "dockerfile", + "heroku_buildpacks", + "paketo_buildpacks", + "nixpacks", + "static" + ] + }, + "public.sourceType": { + "name": "sourceType", + "schema": "public", + "values": [ + "docker", + "git", + "github", + "gitlab", + "bitbucket", + "drop" + ] + }, + "public.Roles": { + "name": "Roles", + "schema": "public", + "values": [ + "admin", + "user" + ] + }, + "public.domainType": { + "name": "domainType", + "schema": "public", + "values": [ + "compose", + "application" + ] + }, + "public.databaseType": { + "name": "databaseType", + "schema": "public", + "values": [ + "postgres", + "mariadb", + "mysql", + "mongo" + ] + }, + "public.deploymentStatus": { + "name": "deploymentStatus", + "schema": "public", + "values": [ + "running", + "done", + "error" + ] + }, + "public.mountType": { + "name": "mountType", + "schema": "public", + "values": [ + "bind", + "volume", + "file" + ] + }, + "public.serviceType": { + "name": "serviceType", + "schema": "public", + "values": [ + "application", + "postgres", + "mysql", + "mariadb", + "mongo", + "redis", + "compose" + ] + }, + "public.protocolType": { + "name": "protocolType", + "schema": "public", + "values": [ + "tcp", + "udp" + ] + }, + "public.applicationStatus": { + "name": "applicationStatus", + "schema": "public", + "values": [ + "idle", + "running", + "done", + "error" + ] + }, + "public.certificateType": { + "name": "certificateType", + "schema": "public", + "values": [ + "letsencrypt", + "none" + ] + }, + "public.composeType": { + "name": "composeType", + "schema": "public", + "values": [ + "docker-compose", + "stack" + ] + }, + "public.sourceTypeCompose": { + "name": "sourceTypeCompose", + "schema": "public", + "values": [ + "git", + "github", + "gitlab", + "bitbucket", + "raw" + ] + }, + "public.RegistryType": { + "name": "RegistryType", + "schema": "public", + "values": [ + "selfHosted", + "cloud" + ] + }, + "public.notificationType": { + "name": "notificationType", + "schema": "public", + "values": [ + "slack", + "telegram", + "discord", + "email" + ] + }, + "public.gitProviderType": { + "name": "gitProviderType", + "schema": "public", + "values": [ + "github", + "gitlab", + "bitbucket" + ] + }, + "public.serverStatus": { + "name": "serverStatus", + "schema": "public", + "values": [ + "active", + "inactive" + ] + } + }, + "schemas": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/apps/dokploy/drizzle/meta/_journal.json b/apps/dokploy/drizzle/meta/_journal.json index dfd87337..72851672 100644 --- a/apps/dokploy/drizzle/meta/_journal.json +++ b/apps/dokploy/drizzle/meta/_journal.json @@ -295,6 +295,13 @@ "when": 1729667438853, "tag": "0041_huge_bruce_banner", "breakpoints": true + }, + { + "idx": 42, + "version": "6", + "when": 1729984439862, + "tag": "0042_fancy_havok", + "breakpoints": true } ] } \ No newline at end of file diff --git a/apps/dokploy/migration.ts b/apps/dokploy/migration.ts index ff1b31d0..d52066c8 100644 --- a/apps/dokploy/migration.ts +++ b/apps/dokploy/migration.ts @@ -2,7 +2,7 @@ import { drizzle } from "drizzle-orm/postgres-js"; import { migrate } from "drizzle-orm/postgres-js/migrator"; import postgres from "postgres"; -const connectionString = process.env.DATABASE_URL || ""; +const connectionString = process.env.DATABASE_URL!; const sql = postgres(connectionString, { max: 1 }); const db = drizzle(sql); diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index 91be29b2..28603187 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -1,6 +1,6 @@ { "name": "dokploy", - "version": "v0.10.4", + "version": "v0.10.5", "private": true, "license": "Apache-2.0", "type": "module", diff --git a/apps/dokploy/pages/_app.tsx b/apps/dokploy/pages/_app.tsx index 35d8a7f2..41b4d50b 100644 --- a/apps/dokploy/pages/_app.tsx +++ b/apps/dokploy/pages/_app.tsx @@ -7,6 +7,7 @@ import { ThemeProvider } from "next-themes"; import type { AppProps } from "next/app"; import { Inter } from "next/font/google"; import Head from "next/head"; +import Script from "next/script"; import type { ReactElement, ReactNode } from "react"; const inter = Inter({ subsets: ["latin"] }); @@ -36,6 +37,14 @@ const MyApp = ({ Dokploy + {process.env.NEXT_PUBLIC_UMAMI_HOST && + process.env.NEXT_PUBLIC_UMAMI_WEBSITE_ID && ( +