diff --git a/apps/ech0/5.8.0/docker-compose.yml b/apps/ech0/5.8.0/docker-compose.yml index ae4dc9c86..37808cda2 100644 --- a/apps/ech0/5.8.0/docker-compose.yml +++ b/apps/ech0/5.8.0/docker-compose.yml @@ -1,6 +1,6 @@ services: ech0: - image: "sn0wl1n/ech0:v5.9.8" + image: "sn0wl1n/ech0:v5.9.5" container_name: ${CONTAINER_NAME} restart: unless-stopped environment: diff --git a/apps/ech0/5.9.5/docker-compose.yml b/apps/ech0/5.9.5/docker-compose.yml index ae4dc9c86..37808cda2 100644 --- a/apps/ech0/5.9.5/docker-compose.yml +++ b/apps/ech0/5.9.5/docker-compose.yml @@ -1,6 +1,6 @@ services: ech0: - image: "sn0wl1n/ech0:v5.9.8" + image: "sn0wl1n/ech0:v5.9.5" container_name: ${CONTAINER_NAME} restart: unless-stopped environment: diff --git a/apps/ech0/5.9.6/docker-compose.yml b/apps/ech0/5.9.6/docker-compose.yml index ae4dc9c86..6be01f63d 100644 --- a/apps/ech0/5.9.6/docker-compose.yml +++ b/apps/ech0/5.9.6/docker-compose.yml @@ -1,6 +1,6 @@ services: ech0: - image: "sn0wl1n/ech0:v5.9.8" + image: "sn0wl1n/ech0:v5.9.6" container_name: ${CONTAINER_NAME} restart: unless-stopped environment: diff --git a/apps/ech0/5.9.8/.env.sample b/apps/ech0/5.9.8/.env.sample new file mode 100644 index 000000000..a61d74ba3 --- /dev/null +++ b/apps/ech0/5.9.8/.env.sample @@ -0,0 +1,5 @@ +PANEL_APP_PORT_HTTP=6277 +JWT_SECRET=replace-with-a-long-random-secret +APP_DATA_DIR=./data +TZ=Asia/Shanghai +CONTAINER_NAME=ech0-compose-check diff --git a/apps/ech0/5.9.8/data.yml b/apps/ech0/5.9.8/data.yml new file mode 100644 index 000000000..03d7a26e8 --- /dev/null +++ b/apps/ech0/5.9.8/data.yml @@ -0,0 +1,69 @@ +additionalProperties: + formFields: + - default: 6277 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 端口 + label: + en: Web Port + zh: Web 端口 + zh-Hant: Web 連接埠 + ja: Web ポート + ko: Web 포트 + ru: Веб-порт + ms: Port Web + pt-br: Porta Web + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: JWT_SECRET + labelEn: JWT Secret + labelZh: JWT 密钥 + label: + en: JWT Secret + zh: JWT 密钥 + zh-Hant: JWT 金鑰 + ja: JWT シークレット + ko: JWT 비밀 키 + ru: Секрет JWT + ms: Rahsia JWT + pt-br: Segredo JWT + random: true + required: true + rule: paramComplexity + type: password + - default: ./data + edit: true + envKey: APP_DATA_DIR + labelEn: Data Directory + labelZh: 数据目录 + label: + en: Data Directory + zh: 数据目录 + zh-Hant: 資料目錄 + ja: データディレクトリ + ko: 데이터 디렉터리 + ru: Каталог данных + ms: Direktori Data + pt-br: Diretório de Dados + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TZ + labelEn: Timezone + labelZh: 时区 + label: + en: Timezone + zh: 时区 + zh-Hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon Waktu + pt-br: Fuso Horário + required: true + type: text diff --git a/apps/ech0/5.9.8/data/.gitkeep b/apps/ech0/5.9.8/data/.gitkeep new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/apps/ech0/5.9.8/data/.gitkeep @@ -0,0 +1 @@ + diff --git a/apps/ech0/5.9.8/docker-compose.yml b/apps/ech0/5.9.8/docker-compose.yml new file mode 100644 index 000000000..ae4dc9c86 --- /dev/null +++ b/apps/ech0/5.9.8/docker-compose.yml @@ -0,0 +1,28 @@ +services: + ech0: + image: "sn0wl1n/ech0:v5.9.8" + container_name: ${CONTAINER_NAME} + restart: unless-stopped + environment: + - JWT_SECRET=${JWT_SECRET} + - TZ=${TZ} + volumes: + - "${APP_DATA_DIR}:/app/data" + ports: + - "${PANEL_APP_PORT_HTTP}:6277" + healthcheck: + test: + - CMD-SHELL + - wget -q --spider http://127.0.0.1:6277/ || exit 1 + start_period: 15s + interval: 30s + timeout: 10s + retries: 5 + labels: + createdBy: "Apps" + networks: + - 1panel-network + +networks: + 1panel-network: + external: true diff --git a/apps/ech0/5.9.8/scripts/init.sh b/apps/ech0/5.9.8/scripts/init.sh new file mode 100755 index 000000000..1ce91d91e --- /dev/null +++ b/apps/ech0/5.9.8/scripts/init.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}" + +read_env_value() { + local key="$1" + [[ -f "$ENV_FILE" ]] || return 0 + local value + value="$(sed -n "s/^${key}=//p" "$ENV_FILE" | tail -n 1)" + case "$value" in + \"*\") value="${value#\"}"; value="${value%\"}" ;; + \'*\') value="${value#\'}"; value="${value%\'}" ;; + esac + printf '%s\n' "$value" +} + +configured_value() { + local key="$1" + local default_value="$2" + local value + value="${!key:-}" + if [[ -z "$value" ]]; then + value="$(read_env_value "$key")" + fi + printf '%s\n' "${value:-$default_value}" +} + +resolve_app_path() { + local raw="$1" + if [[ "$raw" = /* ]]; then + printf '%s\n' "$raw" + else + printf '%s\n' "$ROOT_DIR/${raw#./}" + fi +} + +ensure_dir() { + local path + path="$(resolve_app_path "$(configured_value "$1" "$2")")" + mkdir -p "$path" +} + +ensure_file_parent() { + local path + local parent + path="$(resolve_app_path "$(configured_value "$1" "$2")")" + parent="$(dirname "$path")" + mkdir -p "$parent" +} + +ensure_dir "APP_DATA_DIR" "./data" diff --git a/apps/ech0/5.9.8/scripts/uninstall.sh b/apps/ech0/5.9.8/scripts/uninstall.sh new file mode 100755 index 000000000..6e877466e --- /dev/null +++ b/apps/ech0/5.9.8/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +set -euo pipefail diff --git a/apps/ech0/5.9.8/scripts/upgrade.sh b/apps/ech0/5.9.8/scripts/upgrade.sh new file mode 100755 index 000000000..6e877466e --- /dev/null +++ b/apps/ech0/5.9.8/scripts/upgrade.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +set -euo pipefail