From d162ff998053e7efa47a94ee813b02edbb61c6d4 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 9 Dec 2025 09:33:13 +0100 Subject: [PATCH] Add Dokploy install and container scripts Introduces Dokploy support with installation and container setup scripts, and adds metadata for frontend integration. These changes enable automated deployment and management of Dokploy as a container, including resource configuration and update handling. --- ct/dokploy.sh | 46 +++++++++++++++++++++++++++++ frontend/public/json/dokploy.json | 48 +++++++++++++++++++++++++++++++ install/dokploy-install.sh | 39 +++++++++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 ct/dokploy.sh create mode 100644 frontend/public/json/dokploy.json create mode 100644 install/dokploy-install.sh diff --git a/ct/dokploy.sh b/ct/dokploy.sh new file mode 100644 index 000000000..ca47f9426 --- /dev/null +++ b/ct/dokploy.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE +# Source: https://dokploy.com/ + +APP="Dokploy" +var_tags="${var_tags:-docker;paas}" +var_cpu="${var_cpu:-2}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-10}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +var_unprivileged="${var_unprivileged:-1}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -d /etc/dokploy ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + msg_info "Updating Dokploy" + $STD bash <(curl -sSL https://dokploy.com/install.sh) + msg_ok "Updated Dokploy" + msg_ok "Updated successfully!" + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" diff --git a/frontend/public/json/dokploy.json b/frontend/public/json/dokploy.json new file mode 100644 index 000000000..7bbd1e816 --- /dev/null +++ b/frontend/public/json/dokploy.json @@ -0,0 +1,48 @@ +{ + "name": "Dokploy", + "slug": "dokploy", + "categories": [ + 6 + ], + "date_created": "2025-12-09", + "type": "ct", + "updateable": true, + "privileged": false, + "interface_port": 3000, + "documentation": "https://docs.dokploy.com/", + "config_path": "/etc/dokploy", + "website": "https://dokploy.com/", + "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/png/dokploy.png", + "description": "Dokploy is a free, self-hostable Platform as a Service (PaaS) that simplifies the deployment and management of applications and databases. Built with Docker and Traefik, it offers features like automatic SSL, Docker Compose support, database backups, and a real-time monitoring dashboard.", + "install_methods": [ + { + "type": "default", + "script": "ct/dokploy.sh", + "resources": { + "cpu": 2, + "ram": 2048, + "hdd": 10, + "os": "Debian", + "version": "13" + } + } + ], + "default_credentials": { + "username": null, + "password": null + }, + "notes": [ + { + "text": "Initial setup will be done via the web interface on first access.", + "type": "info" + }, + { + "text": "Dokploy has built-in auto-updates via the web interface.", + "type": "info" + }, + { + "text": "This container uses Docker-in-Docker (nesting) for application deployments.", + "type": "warning" + } + ] +} diff --git a/install/dokploy-install.sh b/install/dokploy-install.sh new file mode 100644 index 000000000..f22396e93 --- /dev/null +++ b/install/dokploy-install.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Copyright (c) 2021-2025 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE +# Source: https://dokploy.com/ + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt-get install -y \ + git \ + openssl +msg_ok "Installed Dependencies" + +msg_warn "WARNING: This script will run an external installer from a third-party source (https://dokploy.com/)." +msg_warn "The following code is NOT maintained or audited by our repository." +msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" +msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://dokploy.com/install.sh" +echo +read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM +if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then + msg_error "Aborted by user. No changes have been made." + exit 10 +fi + +msg_info "Installing Dokploy (Patience - this installs Docker and pulls containers)" +$STD bash <(curl -sSL https://dokploy.com/install.sh) +msg_ok "Installed Dokploy" + +motd_ssh +customize +cleanup_lxc