From a6c7c3b031e82e01347388fd73f0afffc961e7fb Mon Sep 17 00:00:00 2001 From: Ben Bristow Date: Mon, 2 Sep 2024 21:06:37 +0100 Subject: [PATCH 01/12] fix: directus healthchecks (fix race condition starting up), volumes for uploads & extensions, add secret/db password generation, bump version to 11.0.2 --- .../templates/directus/docker-compose.yml | 44 ++++++++++++++----- apps/dokploy/templates/directus/index.ts | 11 +++++ apps/dokploy/templates/templates.ts | 2 +- 3 files changed, 45 insertions(+), 12 deletions(-) diff --git a/apps/dokploy/templates/directus/docker-compose.yml b/apps/dokploy/templates/directus/docker-compose.yml index 6f058ba6..d3efcec1 100644 --- a/apps/dokploy/templates/directus/docker-compose.yml +++ b/apps/dokploy/templates/directus/docker-compose.yml @@ -1,47 +1,69 @@ -version: "3.8" services: database: image: postgis/postgis:13-master volumes: - - directus:/var/lib/postgresql/data + - directus_database:/var/lib/postgresql/data networks: - dokploy-network environment: POSTGRES_USER: "directus" - POSTGRES_PASSWORD: "directus" + POSTGRES_PASSWORD: ${DATABASE_PASSWORD} POSTGRES_DB: "directus" + healthcheck: + test: ["CMD", "pg_isready", "--host=localhost", "--username=directus"] + interval: 10s + timeout: 5s + retries: 5 + start_interval: 5s + start_period: 30s cache: image: redis:6 + healthcheck: + test: ["CMD-SHELL", "[ $$(redis-cli ping) = 'PONG' ]"] + interval: 10s + timeout: 5s + retries: 5 + start_interval: 5s + start_period: 30s networks: - dokploy-network directus: - image: directus/directus:10.12.1 + image: directus/directus:11.0.2 ports: - 8055 volumes: - - ../files/uploads:/directus/uploads - - ../files/extensions:/directus/extensions + - directus_uploads:/directus/uploads + - directus_extensions:/directus/extensions depends_on: - - cache - - database + database: + condition: service_healthy + cache: + condition: service_healthy environment: - SECRET: "replace-with-secure-random-value" + SECRET: ${DIRECTUS_SECRET} DB_CLIENT: "pg" DB_HOST: "database" DB_PORT: "5432" DB_DATABASE: "directus" DB_USER: "directus" - DB_PASSWORD: "directus" + DB_PASSWORD: ${DATABASE_PASSWORD} CACHE_ENABLED: "true" CACHE_AUTO_PURGE: "true" CACHE_STORE: "redis" REDIS: "redis://cache:6379" + # After first successful login, remove the admin email/password env. variables below + # as these will now be stored in the database. ADMIN_EMAIL: "admin@example.com" ADMIN_PASSWORD: "d1r3ctu5" volumes: - directus: + directus_uploads: + directus_extensions: + directus_database: +networks: + dokploy-network: + external: true \ No newline at end of file diff --git a/apps/dokploy/templates/directus/index.ts b/apps/dokploy/templates/directus/index.ts index 42a05aee..59fbe7b7 100644 --- a/apps/dokploy/templates/directus/index.ts +++ b/apps/dokploy/templates/directus/index.ts @@ -3,9 +3,14 @@ import { type Schema, type Template, generateRandomDomain, + generateBase64, + generatePassword, } from "../utils"; export function generate(schema: Schema): Template { + const directusSecret = generateBase64(64); + const databasePassword = generatePassword(); + const domains: DomainSchema[] = [ { host: generateRandomDomain(schema), @@ -14,7 +19,13 @@ export function generate(schema: Schema): Template { }, ]; + const envs = [ + `DATABASE_PASSWORD=${databasePassword}`, + `DIRECTUS_SECRET=${directusSecret}`, + ]; + return { domains, + envs, }; } diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index eca30ee5..1f6db751 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -80,7 +80,7 @@ export const templates: TemplateData[] = [ { id: "directus", name: "Directus", - version: "10.12.1", + version: "11.0.2", description: "Directus is an open source headless CMS that provides an API-first solution for building custom backends.", logo: "directus.jpg", From f8721d3e044b867f5cb1fd16d597616a8e7e129f Mon Sep 17 00:00:00 2001 From: Ben Bristow Date: Mon, 2 Sep 2024 21:20:27 +0100 Subject: [PATCH 02/12] fix: remove 'networks' section --- apps/dokploy/templates/directus/docker-compose.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/dokploy/templates/directus/docker-compose.yml b/apps/dokploy/templates/directus/docker-compose.yml index d3efcec1..20f1b45d 100644 --- a/apps/dokploy/templates/directus/docker-compose.yml +++ b/apps/dokploy/templates/directus/docker-compose.yml @@ -63,7 +63,4 @@ services: volumes: directus_uploads: directus_extensions: - directus_database: -networks: - dokploy-network: - external: true \ No newline at end of file + directus_database: \ No newline at end of file From 0a123a652b04bb0bf4c7e8095277f7bf176fea29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ere=20M=C3=A4nnist=C3=B6?= Date: Tue, 15 Oct 2024 19:54:41 +0300 Subject: [PATCH 03/12] Improve `FAQ` questions and answers - Improve questions and answers - Fix typos --- apps/website/locales/en.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/website/locales/en.json b/apps/website/locales/en.json index 321d09cf..d171e3c7 100644 --- a/apps/website/locales/en.json +++ b/apps/website/locales/en.json @@ -56,23 +56,23 @@ }, "faq": { "title": "Frequently asked questions", - "des": "If you can’t find what you’re looking for, please submit an issue through our GitHub repository or ask questions on our Discord.", + "des": "If you can't find what you're looking for, please submit an issue through our GitHub repository or ask questions on our Discord.", "q1": "What is dokploy?", "a1": "Dokploy is a stable, easy-to-use deployment solution designed to simplify the application management process. Think of Dokploy as a free alternative self-hostable solution to platforms like Heroku, Vercel, and Netlify.", "q2": "Why Choose Dokploy?", - "a2": "Simplicity, Flexibility, and Fast", - "q3": "Is free?", - "a3": "Yes, dokploy is totally free. You can use it for personal projects, small teams, or even for large-scale applications.", + "a2": "Dokploy offers simplicity, flexibility, and speed in application deployment and management.", + "q3": "Is Dokploy free?", + "a3": "Yes, Dokploy is totally free. You can use it for personal projects, small teams, or even for large-scale applications.", "q4": "Is it open source?", - "a4": "Yes, dokploy is open source and free to use.", - "q5": "What types of languages can i deploy with dokploy?", - "a5": "Dokploy do not restrict programming languages. you are free to choose your preferred language and framework.", + "a4": "Yes, Dokploy is open source and free to use.", + "q5": "What types of languages can I deploy with Dokploy?", + "a5": "Dokploy does not restrict programming languages. You are free to choose your preferred language and framework.", "q6": "How do I request a feature or report a bug?", - "a6": "Currently we are working on fixing bug fixes, but we will be releasing new features soon. You can also request features or report bugs.", + "a6": "To request a feature or report a bug, please create an issue on our GitHub repository or ask in our Discord channel. We are currently focused on addressing existing bugs and plan to release new features soon.", "q7": "Do you track the usage of Dokploy?", "a7": "No, we don't track any usage data.", "q8": "Are there any user forums or communities where I can interact with other users?", - "a8": "Yes, we have active github discussions where you can share ideas, ask for help, and connect with other users.", + "a8": "Yes, we have active GitHub discussions where you can share ideas, ask for help, and connect with other users.", "q9": "What types of applications can I deploy with Dokploy?", "a9": "Dokploy supports a variety of applications, including those built with Docker, as well as applications from any Git repository, offering custom builds with Nixpacks, Dockerfiles, or Buildpacks like Heroku and Paketo.", "q10": "How does Dokploy handle database management?", From 137cd25267cf601b4dd822fe4edd5c15d7d6c66f Mon Sep 17 00:00:00 2001 From: Arielton Oberek Date: Fri, 18 Oct 2024 10:35:08 -0300 Subject: [PATCH 04/12] fix: reset password button URL --- apps/dokploy/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/pages/index.tsx b/apps/dokploy/pages/index.tsx index 1f669d3f..d048af88 100644 --- a/apps/dokploy/pages/index.tsx +++ b/apps/dokploy/pages/index.tsx @@ -178,7 +178,7 @@ export default function Home() {
Lost your password? From 841c0731aa684d9c99e1551ab9f58c313f2f200f Mon Sep 17 00:00:00 2001 From: Arielton Oberek Date: Fri, 18 Oct 2024 10:41:07 -0300 Subject: [PATCH 05/12] fix: remove language prefix from reset password URL --- apps/dokploy/pages/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/pages/index.tsx b/apps/dokploy/pages/index.tsx index d048af88..c86efec9 100644 --- a/apps/dokploy/pages/index.tsx +++ b/apps/dokploy/pages/index.tsx @@ -178,7 +178,7 @@ export default function Home() {
Lost your password? From 7d5a660f4d6bd2b67dadb1487c70c5d4e0c0888b Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Fri, 18 Oct 2024 21:56:39 -0600 Subject: [PATCH 06/12] chore: bump version --- apps/dokploy/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index 79da59e3..ea39b503 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -1,6 +1,6 @@ { "name": "dokploy", - "version": "v0.10.0", + "version": "v0.10.1", "private": true, "license": "Apache-2.0", "type": "module", From 1ec83a323685ee81c2488648cf1df1c39b08a0fe Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:14:40 -0600 Subject: [PATCH 07/12] feat(dokploy): add recurse submodules to providers #331 --- packages/server/src/utils/providers/bitbucket.ts | 6 ++++-- packages/server/src/utils/providers/git.ts | 5 +++-- packages/server/src/utils/providers/github.ts | 4 +++- packages/server/src/utils/providers/gitlab.ts | 6 ++++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/server/src/utils/providers/bitbucket.ts b/packages/server/src/utils/providers/bitbucket.ts index 8bf421c7..bcf6ca6d 100644 --- a/packages/server/src/utils/providers/bitbucket.ts +++ b/packages/server/src/utils/providers/bitbucket.ts @@ -61,6 +61,7 @@ export const cloneBitbucketRepository = async ( bitbucketBranch!, "--depth", "1", + "--recurse-submodules", cloneUrl, outputPath, "--progress", @@ -111,6 +112,7 @@ export const cloneRawBitbucketRepository = async (entity: Compose) => { bitbucketBranch!, "--depth", "1", + "--recurse-submodules", cloneUrl, outputPath, "--progress", @@ -153,7 +155,7 @@ export const cloneRawBitbucketRepositoryRemote = async (compose: Compose) => { try { const command = ` rm -rf ${outputPath}; - git clone --branch ${bitbucketBranch} --depth 1 ${cloneUrl} ${outputPath} + git clone --branch ${bitbucketBranch} --depth 1 --recurse-submodules ${cloneUrl} ${outputPath} `; await execAsyncRemote(serverId, command); } catch (error) { @@ -206,7 +208,7 @@ export const getBitbucketCloneCommand = async ( const cloneCommand = ` rm -rf ${outputPath}; mkdir -p ${outputPath}; -if ! git clone --branch ${bitbucketBranch} --depth 1 --progress ${cloneUrl} ${outputPath} >> ${logPath} 2>&1; then +if ! git clone --branch ${bitbucketBranch} --depth 1 --recurse-submodules --progress ${cloneUrl} ${outputPath} >> ${logPath} 2>&1; then echo "❌ [ERROR] Fail to clone the repository ${repoclone}" >> ${logPath}; exit 1; fi diff --git a/packages/server/src/utils/providers/git.ts b/packages/server/src/utils/providers/git.ts index 4553ffe6..8622879f 100644 --- a/packages/server/src/utils/providers/git.ts +++ b/packages/server/src/utils/providers/git.ts @@ -178,7 +178,7 @@ export const getCustomGitCloneCommand = async ( } command.push( - `if ! git clone --branch ${customGitBranch} --depth 1 --progress ${customGitUrl} ${outputPath} >> ${logPath} 2>&1; then + `if ! git clone --branch ${customGitBranch} --depth 1 --recurse-submodules --progress ${customGitUrl} ${outputPath} >> ${logPath} 2>&1; then echo "❌ [ERROR] Fail to clone the repository ${customGitUrl}" >> ${logPath}; exit 1; fi @@ -312,6 +312,7 @@ export const cloneGitRawRepository = async (entity: { customGitBranch, "--depth", "1", + "--recurse-submodules", customGitUrl, outputPath, "--progress", @@ -391,7 +392,7 @@ export const cloneRawGitRepositoryRemote = async (compose: Compose) => { } command.push( - `if ! git clone --branch ${customGitBranch} --depth 1 --progress ${customGitUrl} ${outputPath} ; then + `if ! git clone --branch ${customGitBranch} --depth 1 --recurse-submodules --progress ${customGitUrl} ${outputPath} ; then echo "[ERROR] Fail to clone the repository "; exit 1; fi diff --git a/packages/server/src/utils/providers/github.ts b/packages/server/src/utils/providers/github.ts index abd704d8..9062df85 100644 --- a/packages/server/src/utils/providers/github.ts +++ b/packages/server/src/utils/providers/github.ts @@ -125,6 +125,7 @@ export const cloneGithubRepository = async ( branch!, "--depth", "1", + "--recurse-submodules", cloneUrl, outputPath, "--progress", @@ -204,7 +205,7 @@ export const getGithubCloneCommand = async ( const cloneCommand = ` rm -rf ${outputPath}; mkdir -p ${outputPath}; -if ! git clone --branch ${branch} --depth 1 --progress ${cloneUrl} ${outputPath} >> ${logPath} 2>&1; then +if ! git clone --branch ${branch} --depth 1 --recurse-submodules --progress ${cloneUrl} ${outputPath} >> ${logPath} 2>&1; then echo "❌ [ERROR] Fallo al clonar el repositorio ${repoclone}" >> ${logPath}; exit 1; fi @@ -239,6 +240,7 @@ export const cloneRawGithubRepository = async (entity: Compose) => { branch!, "--depth", "1", + "--recurse-submodules", cloneUrl, outputPath, "--progress", diff --git a/packages/server/src/utils/providers/gitlab.ts b/packages/server/src/utils/providers/gitlab.ts index 4164ee19..34036167 100644 --- a/packages/server/src/utils/providers/gitlab.ts +++ b/packages/server/src/utils/providers/gitlab.ts @@ -137,6 +137,7 @@ export const cloneGitlabRepository = async ( gitlabBranch!, "--depth", "1", + "--recurse-submodules", cloneUrl, outputPath, "--progress", @@ -225,7 +226,7 @@ export const getGitlabCloneCommand = async ( const cloneCommand = ` rm -rf ${outputPath}; mkdir -p ${outputPath}; -if ! git clone --branch ${gitlabBranch} --depth 1 --progress ${cloneUrl} ${outputPath} >> ${logPath} 2>&1; then +if ! git clone --branch ${gitlabBranch} --depth 1 --recurse-submodules --progress ${cloneUrl} ${outputPath} >> ${logPath} 2>&1; then echo "❌ [ERROR] Fail to clone the repository ${repoclone}" >> ${logPath}; exit 1; fi @@ -361,6 +362,7 @@ export const cloneRawGitlabRepository = async (entity: Compose) => { gitlabBranch!, "--depth", "1", + "--recurse-submodules", cloneUrl, outputPath, "--progress", @@ -395,7 +397,7 @@ export const cloneRawGitlabRepositoryRemote = async (compose: Compose) => { try { const command = ` rm -rf ${outputPath}; - git clone --branch ${branch} --depth 1 ${cloneUrl} ${outputPath} + git clone --branch ${branch} --depth 1 --recurse-submodules ${cloneUrl} ${outputPath} `; await execAsyncRemote(serverId, command); } catch (error) { From d7071fba6088d004ad6f480e84af0c5fb20b58fe Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:50:26 -0600 Subject: [PATCH 08/12] fix(installation): exit of script when docker swarm init fails --- apps/dokploy/templates/directus/index.ts | 2 +- apps/website/public/canary.sh | 5 +++++ apps/website/public/feature.sh | 5 +++++ apps/website/public/install.sh | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/dokploy/templates/directus/index.ts b/apps/dokploy/templates/directus/index.ts index 59fbe7b7..37d03e7b 100644 --- a/apps/dokploy/templates/directus/index.ts +++ b/apps/dokploy/templates/directus/index.ts @@ -2,9 +2,9 @@ import { type DomainSchema, type Schema, type Template, - generateRandomDomain, generateBase64, generatePassword, + generateRandomDomain, } from "../utils"; export function generate(schema: Schema): Template { diff --git a/apps/website/public/canary.sh b/apps/website/public/canary.sh index 32f95bff..a96d911e 100644 --- a/apps/website/public/canary.sh +++ b/apps/website/public/canary.sh @@ -61,6 +61,11 @@ install_dokploy() { docker swarm init --advertise-addr $advertise_addr + if [ $? -ne 0 ]; then + echo "Error: Failed to initialize Docker Swarm" >&2 + exit 1 + fi + echo "Swarm initialized" docker network rm -f dokploy-network 2>/dev/null diff --git a/apps/website/public/feature.sh b/apps/website/public/feature.sh index fca4fccd..d802ed40 100644 --- a/apps/website/public/feature.sh +++ b/apps/website/public/feature.sh @@ -45,6 +45,11 @@ install_dokploy() { docker swarm init --advertise-addr $advertise_addr + if [ $? -ne 0 ]; then + echo "Error: Failed to initialize Docker Swarm" >&2 + exit 1 + fi + echo "Swarm initialized" docker network rm -f dokploy-network 2>/dev/null diff --git a/apps/website/public/install.sh b/apps/website/public/install.sh index f5b318f2..9dd5b5fe 100644 --- a/apps/website/public/install.sh +++ b/apps/website/public/install.sh @@ -59,6 +59,11 @@ install_dokploy() { 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 echo "Swarm initialized" From 03d1e974dde57bdb14bd5c9d9b0b7027d405f92f Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:53:12 -0600 Subject: [PATCH 09/12] Update LICENSE.MD --- LICENSE.MD | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/LICENSE.MD b/LICENSE.MD index 9031c94b..59e9d822 100644 --- a/LICENSE.MD +++ b/LICENSE.MD @@ -17,10 +17,10 @@ See the License for the specific language governing permissions and limitations ## Additional Terms for Specific Features -The following additional terms apply to the multi-node support and Docker Compose file support features of Dokploy. In the event of a conflict, these provisions shall take precedence over those in the Apache License: +The following additional terms apply to the multi-node support, Docker Compose file and Multi Server features of Dokploy. In the event of a conflict, these provisions shall take precedence over those in the Apache License: -- **Self-Hosted Version Free**: All features of Dokploy, including multi-node support and Docker Compose file support, will always be free to use in the self-hosted version. -- **Restriction on Resale**: The multi-node support and Docker Compose file support features cannot be sold or offered as a service by any party other than the copyright holder without prior written consent. -- **Modification Distribution**: Any modifications to the multi-node support and Docker Compose file support features must be distributed freely and cannot be sold or offered as a service. +- **Self-Hosted Version Free**: All features of Dokploy, including multi-node support, Docker Compose file support and Multi Server, will always be free to use in the self-hosted version. +- **Restriction on Resale**: The multi-node support, Docker Compose file support and Multi Server features cannot be sold or offered as a service by any party other than the copyright holder without prior written consent. +- **Modification Distribution**: Any modifications to the multi-node support, Docker Compose file support and Multi Server features must be distributed freely and cannot be sold or offered as a service. For further inquiries or permissions, please contact us directly. From cb5ca100a6764e941471cf57d345faafe6f9c9ba Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Tue, 22 Oct 2024 20:00:29 -0600 Subject: [PATCH 10/12] fix(dokploy): use the exact path of functions #578 --- apps/dokploy/reset-password.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/dokploy/reset-password.ts b/apps/dokploy/reset-password.ts index e13c348a..f8660936 100644 --- a/apps/dokploy/reset-password.ts +++ b/apps/dokploy/reset-password.ts @@ -1,6 +1,6 @@ -import { findAdmin } from "@dokploy/server"; -import { updateAuthById } from "@dokploy/server"; -import { generateRandomPassword } from "@dokploy/server"; +import { generateRandomPassword } from "@dokploy/server/dist/auth/random-password"; +import { findAdmin } from "@dokploy/server/dist/services/admin"; +import { updateAuthById } from "@dokploy/server/dist/services/auth"; (async () => { try { From 76ed1107c21b43978536eb2e37aefef1036fcb91 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Tue, 22 Oct 2024 20:19:49 -0600 Subject: [PATCH 11/12] refactor(dokploy): add -r flag to read the enviroments vars --- apps/dokploy/package.json | 2 +- apps/dokploy/reset-password.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index ea39b503..cee3395c 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -10,7 +10,7 @@ "build-server": "tsx esbuild.config.ts", "build-next": "next build", "setup": "tsx -r dotenv/config setup.ts && sleep 5 && pnpm run migration:run", - "reset-password": "node dist/reset-password.mjs", + "reset-password": "node -r dotenv/config dist/reset-password.mjs", "dev": "tsx -r dotenv/config ./server/server.ts --project tsconfig.server.json ", "studio": "drizzle-kit studio --config ./server/db/drizzle.config.ts", "migration:generate": "drizzle-kit generate --config ./server/db/drizzle.config.ts", diff --git a/apps/dokploy/reset-password.ts b/apps/dokploy/reset-password.ts index f8660936..e13c348a 100644 --- a/apps/dokploy/reset-password.ts +++ b/apps/dokploy/reset-password.ts @@ -1,6 +1,6 @@ -import { generateRandomPassword } from "@dokploy/server/dist/auth/random-password"; -import { findAdmin } from "@dokploy/server/dist/services/admin"; -import { updateAuthById } from "@dokploy/server/dist/services/auth"; +import { findAdmin } from "@dokploy/server"; +import { updateAuthById } from "@dokploy/server"; +import { generateRandomPassword } from "@dokploy/server"; (async () => { try { From 8faa6ae1cf2cf08f57d8225dc09b4e2ce6138347 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Tue, 22 Oct 2024 20:29:57 -0600 Subject: [PATCH 12/12] chore(version): bump version --- apps/dokploy/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dokploy/package.json b/apps/dokploy/package.json index cee3395c..0bfd938c 100644 --- a/apps/dokploy/package.json +++ b/apps/dokploy/package.json @@ -1,6 +1,6 @@ { "name": "dokploy", - "version": "v0.10.1", + "version": "v0.10.2", "private": true, "license": "Apache-2.0", "type": "module",