diff --git a/apps/opensearch/3.7.0/.env.sample b/apps/opensearch/3.7.0/.env.sample new file mode 100644 index 000000000..60c18536b --- /dev/null +++ b/apps/opensearch/3.7.0/.env.sample @@ -0,0 +1,4 @@ +CONTAINER_NAME=opensearch +PANEL_APP_PORT_HTTPS=9200 +OPENSEARCH_INITIAL_ADMIN_PASSWORD=CHANGE_ME_TO_A_STRONG_PASSWORD +OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m diff --git a/apps/opensearch/3.7.0/data.yml b/apps/opensearch/3.7.0/data.yml new file mode 100644 index 000000000..0cc29564e --- /dev/null +++ b/apps/opensearch/3.7.0/data.yml @@ -0,0 +1,52 @@ +additionalProperties: + formFields: + - default: 9200 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: HTTPS API Port + labelZh: HTTPS API 端口 + label: + en: HTTPS API Port + zh: HTTPS API 端口 + zh-Hant: HTTPS API 連接埠 + ja: HTTPS API ポート + ko: HTTPS API 포트 + ru: HTTPS API-порт + ms: Port API HTTPS + pt-br: Porta da API HTTPS + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: OPENSEARCH_INITIAL_ADMIN_PASSWORD + labelEn: Initial Admin Password + labelZh: 初始管理员密码 + label: + en: Initial Admin Password + zh: 初始管理员密码 + zh-Hant: 初始管理員密碼 + ja: 初期管理者パスワード + ko: 초기 관리자 비밀번호 + ru: Начальный пароль администратора + ms: Kata Laluan Pentadbir Awal + pt-br: Senha Inicial do Administrador + required: true + rule: paramComplexity + type: password + - default: "-Xms512m -Xmx512m" + edit: true + envKey: OPENSEARCH_JAVA_OPTS + labelEn: JVM Options + labelZh: JVM 参数 + label: + en: JVM Options + zh: JVM 参数 + zh-Hant: JVM 參數 + ja: JVM オプション + ko: JVM 옵션 + ru: Параметры JVM + ms: Pilihan JVM + pt-br: Opcoes da JVM + required: true + type: text diff --git a/apps/opensearch/3.7.0/docker-compose.yml b/apps/opensearch/3.7.0/docker-compose.yml new file mode 100644 index 000000000..d9fbf45c2 --- /dev/null +++ b/apps/opensearch/3.7.0/docker-compose.yml @@ -0,0 +1,35 @@ +services: + opensearch: + image: "opensearchproject/opensearch:3.7.0" + container_name: ${CONTAINER_NAME} + ports: + - "${PANEL_APP_PORT_HTTPS}:9200" + environment: + - discovery.type=single-node + - bootstrap.memory_lock=true + - cluster.name=opensearch-cluster + - node.name=opensearch-node + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + volumes: + - opensearch-data:/usr/share/opensearch/data + labels: + createdBy: "Apps" + restart: unless-stopped + networks: + - 1panel-network + +volumes: + opensearch-data: + name: ${CONTAINER_NAME}-data + +networks: + 1panel-network: + external: true diff --git a/apps/opensearch/3.7.0/scripts/init.sh b/apps/opensearch/3.7.0/scripts/init.sh new file mode 100755 index 000000000..6e877466e --- /dev/null +++ b/apps/opensearch/3.7.0/scripts/init.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +set -euo pipefail diff --git a/apps/opensearch/3.7.0/scripts/uninstall.sh b/apps/opensearch/3.7.0/scripts/uninstall.sh new file mode 100755 index 000000000..39108443d --- /dev/null +++ b/apps/opensearch/3.7.0/scripts/uninstall.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +if docker compose version >/dev/null 2>&1; then + docker compose down +else + docker-compose down +fi diff --git a/apps/opensearch/3.7.0/scripts/upgrade.sh b/apps/opensearch/3.7.0/scripts/upgrade.sh new file mode 100755 index 000000000..6e877466e --- /dev/null +++ b/apps/opensearch/3.7.0/scripts/upgrade.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +set -euo pipefail diff --git a/apps/opensearch/README.md b/apps/opensearch/README.md new file mode 100644 index 000000000..c6b7a3e51 --- /dev/null +++ b/apps/opensearch/README.md @@ -0,0 +1,62 @@ +# OpenSearch + +## 产品介绍 + +OpenSearch 是开源的分布式搜索与分析引擎。本应用使用官方镜像部署单节点 +OpenSearch,并保留官方 Demo Security 的认证与自签名 TLS 配置。 + +## 主要功能 + +- 为全文检索、日志分析和数据探索提供 REST API。 +- 使用单节点发现模式,适合独立部署和开发验证。 +- 将索引数据保存到独立的 Docker 命名卷中。 + +## 访问说明 + +- 安装后通过 `https://<服务器 IP>:` 访问 API。 +- 默认管理员用户名为 `admin`,密码使用安装表单提供的初始管理员密码。 +- Demo Security 使用自签名证书,浏览器或 API 客户端需要显式信任证书;这不等同于生产 TLS 配置。 +- API 端口可读写索引数据。不要直接暴露到不受信任的公网;请使用防火墙、受限网络或带有自有证书的反向代理。 +- 本包不包含 OpenSearch Dashboards。需要可视化界面时,请单独部署 Dashboards,并为其配置本实例的 HTTPS 端点与证书信任。 + +## 部署前提 + +- 宿主机必须满足 `vm.max_map_count=262144`。可先执行 + `sudo sysctl -w vm.max_map_count=262144`,并按操作系统方式持久化该设置。 +- 建议为该实例至少预留 4 GiB 内存。安装表单默认 JVM 堆为 512 MiB,可按索引规模调整。 + +## 数据与升级 + +- 索引数据存储在与安装名关联的 Docker 命名卷中。卸载应用应只移除应用容器,不应将该数据卷当作临时数据删除;确认不再需要数据后再由管理员显式删除该卷。 +- 升级前请使用 OpenSearch 快照功能并备份数据卷。生产环境优先选择固定版本,并遵循上游的版本兼容性和滚动升级文档;不要在没有恢复计划的情况下跨大版本升级或降级。 + +## Introduction + +OpenSearch is an open-source distributed search and analytics engine. This +package deploys the official image as a single node and retains the official +Demo Security authentication and self-signed TLS configuration. + +## Features + +- Provide a REST API for full-text search, log analysis, and data exploration. +- Run with single-node discovery for independent deployments and development validation. +- Persist index data in a dedicated Docker named volume. + +## Deployment Notes + +- Access the API at `https://:` with the `admin` + user and the initial administrator password supplied during installation. +- The demo certificate is self-signed. Use a trusted certificate and restricted + network access before exposing the API to users or the public Internet. +- The host must set `vm.max_map_count=262144`, and the instance should have at + least 4 GiB of available memory. The default JVM heap is 512 MiB and can be + adjusted for the expected index workload. +- Dashboards is intentionally not bundled. Deploy it separately and configure + its HTTPS connection and certificate trust for this OpenSearch instance. +- Back up OpenSearch snapshots and the named data volume before upgrades. Do + not delete the volume merely because the application is uninstalled. + +## Sources + +- [OpenSearch Docker documentation](https://docs.opensearch.org/3.7/install-and-configure/install-opensearch/docker/) +- [OpenSearch source repository](https://github.com/opensearch-project/OpenSearch) diff --git a/apps/opensearch/data.yml b/apps/opensearch/data.yml new file mode 100644 index 000000000..7834a8f5a --- /dev/null +++ b/apps/opensearch/data.yml @@ -0,0 +1,32 @@ +name: OpenSearch +tags: +- Database +title: 开源分布式搜索与分析引擎 +description: 开源分布式搜索与分析引擎 +additionalProperties: + key: opensearch + name: OpenSearch + tags: + - Database + shortDescZh: 开源分布式搜索与分析引擎 + shortDescEn: Open-source distributed search and analytics engine + description: + en: Open-source distributed search and analytics engine. + zh: 开源分布式搜索与分析引擎。 + zh-Hant: 開源分散式搜尋與分析引擎。 + ja: オープンソースの分散検索および分析エンジン。 + ko: 오픈 소스 분산 검색 및 분석 엔진입니다. + ru: Открытый распределенный движок поиска и аналитики. + ms: Enjin carian dan analitik teragih sumber terbuka. + pt-br: Mecanismo de busca e analise distribuida de codigo aberto. + type: middleware + crossVersionUpdate: true + limit: 1 + recommend: 0 + memoryRequired: 4096 + website: https://opensearch.org/ + github: https://github.com/opensearch-project/OpenSearch + document: https://docs.opensearch.org/3.7/install-and-configure/install-opensearch/docker/ + architectures: + - amd64 + - arm64 diff --git a/apps/opensearch/latest/.env.sample b/apps/opensearch/latest/.env.sample new file mode 100644 index 000000000..60c18536b --- /dev/null +++ b/apps/opensearch/latest/.env.sample @@ -0,0 +1,4 @@ +CONTAINER_NAME=opensearch +PANEL_APP_PORT_HTTPS=9200 +OPENSEARCH_INITIAL_ADMIN_PASSWORD=CHANGE_ME_TO_A_STRONG_PASSWORD +OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m diff --git a/apps/opensearch/latest/data.yml b/apps/opensearch/latest/data.yml new file mode 100644 index 000000000..0cc29564e --- /dev/null +++ b/apps/opensearch/latest/data.yml @@ -0,0 +1,52 @@ +additionalProperties: + formFields: + - default: 9200 + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: HTTPS API Port + labelZh: HTTPS API 端口 + label: + en: HTTPS API Port + zh: HTTPS API 端口 + zh-Hant: HTTPS API 連接埠 + ja: HTTPS API ポート + ko: HTTPS API 포트 + ru: HTTPS API-порт + ms: Port API HTTPS + pt-br: Porta da API HTTPS + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: OPENSEARCH_INITIAL_ADMIN_PASSWORD + labelEn: Initial Admin Password + labelZh: 初始管理员密码 + label: + en: Initial Admin Password + zh: 初始管理员密码 + zh-Hant: 初始管理員密碼 + ja: 初期管理者パスワード + ko: 초기 관리자 비밀번호 + ru: Начальный пароль администратора + ms: Kata Laluan Pentadbir Awal + pt-br: Senha Inicial do Administrador + required: true + rule: paramComplexity + type: password + - default: "-Xms512m -Xmx512m" + edit: true + envKey: OPENSEARCH_JAVA_OPTS + labelEn: JVM Options + labelZh: JVM 参数 + label: + en: JVM Options + zh: JVM 参数 + zh-Hant: JVM 參數 + ja: JVM オプション + ko: JVM 옵션 + ru: Параметры JVM + ms: Pilihan JVM + pt-br: Opcoes da JVM + required: true + type: text diff --git a/apps/opensearch/latest/docker-compose.yml b/apps/opensearch/latest/docker-compose.yml new file mode 100644 index 000000000..69a9e6b24 --- /dev/null +++ b/apps/opensearch/latest/docker-compose.yml @@ -0,0 +1,35 @@ +services: + opensearch: + image: "opensearchproject/opensearch:latest" + container_name: ${CONTAINER_NAME} + ports: + - "${PANEL_APP_PORT_HTTPS}:9200" + environment: + - discovery.type=single-node + - bootstrap.memory_lock=true + - cluster.name=opensearch-cluster + - node.name=opensearch-node + - OPENSEARCH_INITIAL_ADMIN_PASSWORD=${OPENSEARCH_INITIAL_ADMIN_PASSWORD} + - OPENSEARCH_JAVA_OPTS=${OPENSEARCH_JAVA_OPTS} + ulimits: + memlock: + soft: -1 + hard: -1 + nofile: + soft: 65536 + hard: 65536 + volumes: + - opensearch-data:/usr/share/opensearch/data + labels: + createdBy: "Apps" + restart: unless-stopped + networks: + - 1panel-network + +volumes: + opensearch-data: + name: ${CONTAINER_NAME}-data + +networks: + 1panel-network: + external: true diff --git a/apps/opensearch/latest/scripts/init.sh b/apps/opensearch/latest/scripts/init.sh new file mode 100755 index 000000000..6e877466e --- /dev/null +++ b/apps/opensearch/latest/scripts/init.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +set -euo pipefail diff --git a/apps/opensearch/latest/scripts/uninstall.sh b/apps/opensearch/latest/scripts/uninstall.sh new file mode 100755 index 000000000..39108443d --- /dev/null +++ b/apps/opensearch/latest/scripts/uninstall.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +if docker compose version >/dev/null 2>&1; then + docker compose down +else + docker-compose down +fi diff --git a/apps/opensearch/latest/scripts/upgrade.sh b/apps/opensearch/latest/scripts/upgrade.sh new file mode 100755 index 000000000..6e877466e --- /dev/null +++ b/apps/opensearch/latest/scripts/upgrade.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +set -euo pipefail diff --git a/apps/opensearch/logo.png b/apps/opensearch/logo.png new file mode 100644 index 000000000..45e9c3340 Binary files /dev/null and b/apps/opensearch/logo.png differ