From 13b0c0744b08369af4ee5327c73bf9687fe3e4b8 Mon Sep 17 00:00:00 2001 From: arch3rPro Date: Fri, 12 Dec 2025 14:06:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(dpanel):=20=E6=B7=BB=E5=8A=A0=20DPanel=20?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=8F=8A=E5=85=B6=E7=9B=B8=E5=85=B3=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/dpanel/1.9.1-lite/data.yml | 43 +++++++++++++++++++++ apps/dpanel/1.9.1-lite/docker-compose.yml | 20 ++++++++++ apps/dpanel/1.9.1/data.yml | 45 ++++++++++++++++++++++ apps/dpanel/1.9.1/docker-compose.yml | 22 +++++++++++ apps/dpanel/README.md | 19 +++++++++ apps/dpanel/README_en.md | 42 ++++++++++++++++++++ apps/dpanel/data.yml | 22 +++++++++++ apps/dpanel/latest/data.yml | 45 ++++++++++++++++++++++ apps/dpanel/latest/docker-compose.yml | 22 +++++++++++ apps/dpanel/logo.png | Bin 0 -> 26615 bytes 10 files changed, 280 insertions(+) create mode 100644 apps/dpanel/1.9.1-lite/data.yml create mode 100644 apps/dpanel/1.9.1-lite/docker-compose.yml create mode 100644 apps/dpanel/1.9.1/data.yml create mode 100644 apps/dpanel/1.9.1/docker-compose.yml create mode 100644 apps/dpanel/README.md create mode 100644 apps/dpanel/README_en.md create mode 100644 apps/dpanel/data.yml create mode 100644 apps/dpanel/latest/data.yml create mode 100644 apps/dpanel/latest/docker-compose.yml create mode 100644 apps/dpanel/logo.png diff --git a/apps/dpanel/1.9.1-lite/data.yml b/apps/dpanel/1.9.1-lite/data.yml new file mode 100644 index 0000000..11a01cb --- /dev/null +++ b/apps/dpanel/1.9.1-lite/data.yml @@ -0,0 +1,43 @@ +additionalProperties: + formFields: + - default: "40283" + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + label: + en: Port + zh: 端口 + required: true + rule: paramPort + type: number + - default: "./data" + edit: true + envKey: DATA_PATH + labelEn: Data Path + labelZh: 数据路径 + label: + en: Data Path + zh: 数据路径 + required: true + type: text + - default: "dpanel" + edit: true + envKey: APP_NAME + labelEn: Application Name + labelZh: 应用名称 + label: + en: Application Name + zh: 应用名称 + required: true + type: text + - default: "/var/run/docker.sock" + edit: true + envKey: DOCKER_SOCK_PATH + labelEn: Docker Socket Path + labelZh: Docker 套接字路径 + label: + en: Docker Socket Path + zh: Docker 套接字路径 + required: true + type: text diff --git a/apps/dpanel/1.9.1-lite/docker-compose.yml b/apps/dpanel/1.9.1-lite/docker-compose.yml new file mode 100644 index 0000000..bd94d27 --- /dev/null +++ b/apps/dpanel/1.9.1-lite/docker-compose.yml @@ -0,0 +1,20 @@ +services: + dpanel: + image: "dpanel/dpanel:1.9.1-lite" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + volumes: + - ${DOCKER_SOCK_PATH}:/var/run/docker.sock + - ${DATA_PATH}:/dpanel + environment: + - APP_NAME=${APP_NAME} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/dpanel/1.9.1/data.yml b/apps/dpanel/1.9.1/data.yml new file mode 100644 index 0000000..8be4988 --- /dev/null +++ b/apps/dpanel/1.9.1/data.yml @@ -0,0 +1,45 @@ +additionalProperties: + formFields: + - default: 48080 + edit: true + envKey: PANEL_APP_PORT_ADMIN + labelZh: WebUI 端口 + labelEn: WebUI port + label: + en: WebUI port + zh: WebUI 端口 + required: true + rule: paramPort + type: number + - default: 80 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: HTTP 服务端口 + labelEn: HTTP service port + label: + en: HTTP service port + zh: HTTP 服务端口 + required: true + rule: paramPort + type: number + - default: 443 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelZh: HTTPS 服务端口 + labelEn: HTTPS service port + label: + en: HTTPS service port + zh: HTTPS 服务端口 + required: true + rule: paramPort + type: number + - default: "./data" + edit: true + envKey: DPANEL_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + label: + en: Data persistence path + zh: 数据持久化路径 + required: true + type: text \ No newline at end of file diff --git a/apps/dpanel/1.9.1/docker-compose.yml b/apps/dpanel/1.9.1/docker-compose.yml new file mode 100644 index 0000000..1b198d4 --- /dev/null +++ b/apps/dpanel/1.9.1/docker-compose.yml @@ -0,0 +1,22 @@ +services: + dpanel: + image: dpanel/dpanel:1.9.1 + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_ADMIN}:8080 + - ${PANEL_APP_PORT_HTTP}:80 + - ${PANEL_APP_PORT_HTTPS}:443 + volumes: + - ${DPANEL_ROOT_PATH}/data:/dpanel + - ${DPANEL_ROOT_PATH}/compose:/dpanel/compose + - /var/run/docker.sock:/var/run/docker.sock + environment: + - APP_NAME=${CONTAINER_NAME} +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/dpanel/README.md b/apps/dpanel/README.md new file mode 100644 index 0000000..e881a80 --- /dev/null +++ b/apps/dpanel/README.md @@ -0,0 +1,19 @@ + +## DPanel介绍 + +DPanel 是一款轻量化的管理 Docker、Podman 容器的可视化面板 + +![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white) + +原生的中文的界面,更适合中文环境使用。同时支持英文、日文等多种语言。安装简单,占用资源极低,更适合各种 Nas 设备、盒子以及小型服务器。面板以容器的方式运行,不需要特权,对宿主机没有依赖及侵入,安全可靠。 + +## 功能介绍 + +面板提供了容器、Compose、镜像等容器管理的基础功能。支持管理容器内部文件,支持多种类型添加 Compose 项目。标准版中内置了 Nginx 可以方便的对容器端口进行转发。 可以通过 Docker Api 和 SSH 的方式添加、管理多个 Docker 服务端,并支持通过 ssh 及 sftp 管理宿主机。 + +## 账户密码 + +``` +username: admin +password: admin +``` \ No newline at end of file diff --git a/apps/dpanel/README_en.md b/apps/dpanel/README_en.md new file mode 100644 index 0000000..d4c365a --- /dev/null +++ b/apps/dpanel/README_en.md @@ -0,0 +1,42 @@ +# DPanel + +DPanel is a lightweight visual management panel for Docker and Podman containers. + +![](https://img.shields.io/badge/Copyright-arch3rPro-ff9800?style=flat&logo=github&logoColor=white) + +## Overview + +DPanel provides a native Chinese interface that is more suitable for Chinese environments, while also supporting English, Japanese, and multiple other languages. The installation is simple with extremely low resource consumption, making it perfect for various NAS devices, set-top boxes, and small servers. The panel runs as a container without requiring privileges, making it dependency-free and non-intrusive to the host system, ensuring safety and reliability. + +## Features + +The panel provides essential container management functionality including: + +- **Container Management**: Manage Docker/Podman containers +- **Compose Management**: Support for multiple types of Compose projects +- **Image Management**: Container image management and operations +- **File Management**: Manage container internal files +- **Nginx Integration**: Built-in Nginx for convenient container port forwarding +- **Multi-Server Support**: Add and manage multiple Docker servers via Docker API and SSH +- **Host Management**: Manage host systems through SSH and SFTP + +## Default Credentials + +``` +Username: admin +Password: admin +``` + +## Installation + +DPanel runs as a container and can be easily deployed using Docker Compose or other container management tools. For specific installation instructions, please refer to the included docker-compose.yml file. + +## System Requirements + +- Minimal resource requirements +- Compatible with NAS devices, set-top boxes, and small servers +- Supports Docker and Podman container runtimes + +## License + +Copyright © arch3rPro \ No newline at end of file diff --git a/apps/dpanel/data.yml b/apps/dpanel/data.yml new file mode 100644 index 0000000..41b7b6a --- /dev/null +++ b/apps/dpanel/data.yml @@ -0,0 +1,22 @@ +name: DPanel +tags: + - 实用工具 + - Web 服务器 +title: 轻量化 docker 可视化管理面板 +description: + en: Lightweight Panel for Docker + zh: 轻量化 docker 可视化管理面板 +additionalProperties: + key: dpanel + name: DPanel + tags: + - Tool + - Server + shortDescZh: 轻量化 docker 可视化管理面板 + shortDescEn: Lightweight Panel for Docker + type: website + crossVersionUpdate: true + limit: 0 + website: https://dpanel.cc/ + github: https://github.com/donknap/dpanel + document: https://dpanel.cc/README \ No newline at end of file diff --git a/apps/dpanel/latest/data.yml b/apps/dpanel/latest/data.yml new file mode 100644 index 0000000..8be4988 --- /dev/null +++ b/apps/dpanel/latest/data.yml @@ -0,0 +1,45 @@ +additionalProperties: + formFields: + - default: 48080 + edit: true + envKey: PANEL_APP_PORT_ADMIN + labelZh: WebUI 端口 + labelEn: WebUI port + label: + en: WebUI port + zh: WebUI 端口 + required: true + rule: paramPort + type: number + - default: 80 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: HTTP 服务端口 + labelEn: HTTP service port + label: + en: HTTP service port + zh: HTTP 服务端口 + required: true + rule: paramPort + type: number + - default: 443 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelZh: HTTPS 服务端口 + labelEn: HTTPS service port + label: + en: HTTPS service port + zh: HTTPS 服务端口 + required: true + rule: paramPort + type: number + - default: "./data" + edit: true + envKey: DPANEL_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + label: + en: Data persistence path + zh: 数据持久化路径 + required: true + type: text \ No newline at end of file diff --git a/apps/dpanel/latest/docker-compose.yml b/apps/dpanel/latest/docker-compose.yml new file mode 100644 index 0000000..c2a1f14 --- /dev/null +++ b/apps/dpanel/latest/docker-compose.yml @@ -0,0 +1,22 @@ +services: + dpanel: + image: dpanel/dpanel:latest + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_ADMIN}:8080 + - ${PANEL_APP_PORT_HTTP}:80 + - ${PANEL_APP_PORT_HTTPS}:443 + volumes: + - ${DPANEL_ROOT_PATH}/data:/dpanel + - ${DPANEL_ROOT_PATH}/compose:/dpanel/compose + - /var/run/docker.sock:/var/run/docker.sock + environment: + - APP_NAME=${CONTAINER_NAME} +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/dpanel/logo.png b/apps/dpanel/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..396d8882cabb8d4c1563f66ec6c98055142a57f7 GIT binary patch literal 26615 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