feat(opensearch): add official single-node package

Package OpenSearch 3.7.0 and latest with the official image, authenticated HTTPS API, persistent named volume, and non-destructive uninstall semantics.

Validated both versions through strict v2 checks and isolated moelin/1panel:v2 install, restart, API persistence, uninstall, and cleanup runs.
This commit is contained in:
okxlin
2026-07-19 17:21:08 +08:00
parent 037a4f594f
commit fedc8bfe26
15 changed files with 300 additions and 0 deletions
+4
View File
@@ -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
+52
View File
@@ -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
+35
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
set -euo pipefail
+8
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
set -euo pipefail
+62
View File
@@ -0,0 +1,62 @@
# OpenSearch
## 产品介绍
OpenSearch 是开源的分布式搜索与分析引擎。本应用使用官方镜像部署单节点
OpenSearch,并保留官方 Demo Security 的认证与自签名 TLS 配置。
## 主要功能
- 为全文检索、日志分析和数据探索提供 REST API。
- 使用单节点发现模式,适合独立部署和开发验证。
- 将索引数据保存到独立的 Docker 命名卷中。
## 访问说明
- 安装后通过 `https://<服务器 IP>:<HTTPS API 端口>` 访问 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://<server-ip>:<HTTPS API port>` 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)
+32
View File
@@ -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
+4
View File
@@ -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
+52
View File
@@ -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
+35
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
set -euo pipefail
+8
View File
@@ -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
+2
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
set -euo pipefail
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB