From b5cbdda23f712919ad81ca1dcbb7acb1ca467fa7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2026 13:39:41 +0000 Subject: [PATCH 1/2] Update memgraph/memgraph Docker tag to v3.13.2 --- apps/memgraph/3.13.1/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/memgraph/3.13.1/docker-compose.yml b/apps/memgraph/3.13.1/docker-compose.yml index f54ca0abe..0ac200403 100644 --- a/apps/memgraph/3.13.1/docker-compose.yml +++ b/apps/memgraph/3.13.1/docker-compose.yml @@ -1,6 +1,6 @@ services: memgraph: - image: "memgraph/memgraph:3.13.1" + image: "memgraph/memgraph:3.13.2" container_name: ${CONTAINER_NAME} restart: unless-stopped networks: From 9ac8558532ccb474fab1e60cde83135a8aac3a88 Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Thu, 15 Oct 2026 21:38:37 +0800 Subject: [PATCH 2/2] fix(memgraph): add versioned 3.13.2 package --- apps/memgraph/3.13.1/docker-compose.yml | 2 +- apps/memgraph/3.13.2/.env.sample | 9 ++ apps/memgraph/3.13.2/data.yml | 135 ++++++++++++++++++++++ apps/memgraph/3.13.2/docker-compose.yml | 39 +++++++ apps/memgraph/3.13.2/scripts/init.sh | 96 +++++++++++++++ apps/memgraph/3.13.2/scripts/uninstall.sh | 8 ++ apps/memgraph/3.13.2/scripts/upgrade.sh | 5 + 7 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 apps/memgraph/3.13.2/.env.sample create mode 100644 apps/memgraph/3.13.2/data.yml create mode 100644 apps/memgraph/3.13.2/docker-compose.yml create mode 100755 apps/memgraph/3.13.2/scripts/init.sh create mode 100755 apps/memgraph/3.13.2/scripts/uninstall.sh create mode 100755 apps/memgraph/3.13.2/scripts/upgrade.sh diff --git a/apps/memgraph/3.13.1/docker-compose.yml b/apps/memgraph/3.13.1/docker-compose.yml index 0ac200403..f54ca0abe 100644 --- a/apps/memgraph/3.13.1/docker-compose.yml +++ b/apps/memgraph/3.13.1/docker-compose.yml @@ -1,6 +1,6 @@ services: memgraph: - image: "memgraph/memgraph:3.13.2" + image: "memgraph/memgraph:3.13.1" container_name: ${CONTAINER_NAME} restart: unless-stopped networks: diff --git a/apps/memgraph/3.13.2/.env.sample b/apps/memgraph/3.13.2/.env.sample new file mode 100644 index 000000000..6ddfc6907 --- /dev/null +++ b/apps/memgraph/3.13.2/.env.sample @@ -0,0 +1,9 @@ +PANEL_APP_PORT_BOLT=7687 +PANEL_APP_PORT_MONITORING=7444 +PANEL_APP_PORT_HTTP=9091 +MEMGRAPH_USER=memgraph +MEMGRAPH_PASSWORD= +MEMGRAPH_MEMORY_LIMIT=1024 +MEMGRAPH_WORKERS=2 +MEMGRAPH_SNAPSHOT_INTERVAL=300 +CONTAINER_NAME=memgraph diff --git a/apps/memgraph/3.13.2/data.yml b/apps/memgraph/3.13.2/data.yml new file mode 100644 index 000000000..c57f465d8 --- /dev/null +++ b/apps/memgraph/3.13.2/data.yml @@ -0,0 +1,135 @@ +additionalProperties: + formFields: + - default: 7687 + edit: true + envKey: PANEL_APP_PORT_BOLT + labelEn: Bolt Port + labelZh: Bolt 端口 + label: + en: Bolt Port + zh: Bolt 端口 + zh-Hant: Bolt 連接埠 + ja: Bolt ポート + ko: Bolt 포트 + ru: Порт Bolt + ms: Port Bolt + pt-br: Porta Bolt + required: true + rule: paramPort + type: number + - default: 7444 + edit: true + envKey: PANEL_APP_PORT_MONITORING + labelEn: Monitoring Port + labelZh: 监控端口 + label: + en: Monitoring Port + zh: 监控端口 + zh-Hant: 監控連接埠 + ja: 監視ポート + ko: 모니터링 포트 + ru: Порт мониторинга + ms: Port Pemantauan + pt-br: Porta de Monitoramento + required: true + rule: paramPort + type: number + - default: 9091 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Metrics HTTP Port + labelZh: 指标 HTTP 端口 + label: + en: Metrics HTTP Port + zh: 指标 HTTP 端口 + zh-Hant: 指標 HTTP 連接埠 + ja: メトリクス HTTP ポート + ko: 메트릭 HTTP 포트 + ru: HTTP-порт метрик + ms: Port HTTP Metrik + pt-br: Porta HTTP de Métricas + required: true + rule: paramPort + type: number + - default: memgraph + edit: true + envKey: MEMGRAPH_USER + labelEn: Administrator Username + labelZh: 管理员用户名 + label: + en: Administrator Username + zh: 管理员用户名 + zh-Hant: 管理員使用者名稱 + ja: 管理者ユーザー名 + ko: 관리자 사용자 이름 + ru: Имя администратора + ms: Nama Pengguna Pentadbir + pt-br: Nome de Usuário Administrador + required: true + rule: paramCommon + type: text + - default: "" + edit: true + envKey: MEMGRAPH_PASSWORD + labelEn: Administrator Password + labelZh: 管理员密码 + label: + en: Administrator Password + zh: 管理员密码 + zh-Hant: 管理員密碼 + ja: 管理者パスワード + ko: 관리자 비밀번호 + ru: Пароль администратора + ms: Kata Laluan Pentadbir + pt-br: Senha do Administrador + required: true + rule: paramComplexity + type: password + - default: 1024 + edit: true + envKey: MEMGRAPH_MEMORY_LIMIT + labelEn: Memory Limit (MiB) + labelZh: 内存限制 (MiB) + label: + en: Memory Limit (MiB) + zh: 内存限制 (MiB) + zh-Hant: 記憶體限制 (MiB) + ja: メモリ上限 (MiB) + ko: 메모리 제한 (MiB) + ru: Ограничение памяти (МиБ) + ms: Had Memori (MiB) + pt-br: Limite de Memória (MiB) + required: true + type: number + - default: 2 + edit: true + envKey: MEMGRAPH_WORKERS + labelEn: Worker Threads + labelZh: 工作线程数 + label: + en: Worker Threads + zh: 工作线程数 + zh-Hant: 工作執行緒數 + ja: ワーカースレッド数 + ko: 작업자 스레드 수 + ru: Количество рабочих потоков + ms: Bilangan Jalur Pekerja + pt-br: Número de Threads de Trabalho + required: true + type: number + - default: 300 + edit: true + envKey: MEMGRAPH_SNAPSHOT_INTERVAL + labelEn: Snapshot Interval (seconds) + labelZh: 快照间隔(秒) + label: + en: Snapshot Interval (seconds) + zh: 快照间隔(秒) + zh-Hant: 快照間隔(秒) + ja: スナップショット間隔(秒) + ko: 스냅샷 간격(초) + ru: Интервал снимков (секунды) + ms: Selang Syot Kilat (saat) + pt-br: Intervalo de Snapshots (segundos) + required: true + type: number diff --git a/apps/memgraph/3.13.2/docker-compose.yml b/apps/memgraph/3.13.2/docker-compose.yml new file mode 100644 index 000000000..0ac200403 --- /dev/null +++ b/apps/memgraph/3.13.2/docker-compose.yml @@ -0,0 +1,39 @@ +services: + memgraph: + image: "memgraph/memgraph:3.13.2" + container_name: ${CONTAINER_NAME} + restart: unless-stopped + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_BOLT}:7687" + - "${PANEL_APP_PORT_MONITORING}:7444" + - "${PANEL_APP_PORT_HTTP}:9091" + environment: + - MEMGRAPH_USER=${MEMGRAPH_USER} + - MEMGRAPH_PASSWORD=${MEMGRAPH_PASSWORD} + command: + - "--telemetry-enabled=false" + - "--auth-password-permit-null=false" + - "--memory-limit=${MEMGRAPH_MEMORY_LIMIT}" + - "--bolt-num-workers=${MEMGRAPH_WORKERS}" + - "--storage-snapshot-thread-count=${MEMGRAPH_WORKERS}" + - "--storage-recovery-thread-count=${MEMGRAPH_WORKERS}" + - "--storage-snapshot-interval-sec=${MEMGRAPH_SNAPSHOT_INTERVAL}" + - "--metrics-format=OpenMetrics" + volumes: + - "./data/data:/var/lib/memgraph" + - "./data/logs:/var/log/memgraph" + stop_grace_period: 1m + healthcheck: + test: ["CMD-SHELL", "printf 'RETURN 1;\\n' | FLAGS_username=\"$$MEMGRAPH_USER\" FLAGS_password=\"$$MEMGRAPH_PASSWORD\" mgconsole --tryfromenv=username,password --host=127.0.0.1 --port=7687 >/dev/null"] + interval: 10s + timeout: 5s + start_period: 30s + retries: 12 + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/memgraph/3.13.2/scripts/init.sh b/apps/memgraph/3.13.2/scripts/init.sh new file mode 100755 index 000000000..db1cad268 --- /dev/null +++ b/apps/memgraph/3.13.2/scripts/init.sh @@ -0,0 +1,96 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)" +ENV_FILE="${ENV_FILE:-${ROOT_DIR}/.env}" + +fail() { + printf '%s\n' "$1" >&2 + exit 1 +} + +strip_matching_quotes() { + local value="$1" + + if [[ ${#value} -ge 2 ]]; then + if [[ "${value:0:1}" == '"' && "${value: -1}" == '"' ]]; then + value="${value:1:${#value}-2}" + elif [[ "${value:0:1}" == "'" && "${value: -1}" == "'" ]]; then + value="${value:1:${#value}-2}" + fi + fi + printf '%s\n' "$value" +} + +read_env_value() { + local key="$1" + local value="" + + value="$(grep -E "^${key}=" "$ENV_FILE" | tail -n 1 | cut -d '=' -f 2- || true)" + strip_matching_quotes "$value" +} + +configured_value() { + local key="$1" + + if [[ ${!key+x} ]]; then + strip_matching_quotes "${!key}" + else + read_env_value "$key" + fi +} + +[[ -f "$ENV_FILE" ]] || fail "$ENV_FILE not found" +[[ ! -L "$ENV_FILE" ]] || fail "$ENV_FILE must not be a symbolic link" + +legacy_data_dir="$(configured_value APP_DATA_DIR)" +case "$legacy_data_dir" in + ""|data|./data) ;; + *) fail "APP_DATA_DIR is no longer configurable; migrate its data to ${ROOT_DIR}/data before upgrading" ;; +esac + +APP_DATA_DIR_ABS="$ROOT_DIR/data" +[[ ! -L "$APP_DATA_DIR_ABS" ]] || fail "package data directory must not be a symbolic link" +if [[ -e "$APP_DATA_DIR_ABS" && ! -d "$APP_DATA_DIR_ABS" ]]; then + fail "package data directory must be a directory" +fi +for child in data logs; do + [[ ! -L "${APP_DATA_DIR_ABS}/${child}" ]] || fail "${child} directory must not be a symbolic link" +done + +MEMGRAPH_USER_VALUE="$(configured_value MEMGRAPH_USER)" +MEMGRAPH_PASSWORD_VALUE="$(configured_value MEMGRAPH_PASSWORD)" +MEMGRAPH_MEMORY_LIMIT_VALUE="$(configured_value MEMGRAPH_MEMORY_LIMIT)" +MEMGRAPH_WORKERS_VALUE="$(configured_value MEMGRAPH_WORKERS)" +MEMGRAPH_SNAPSHOT_INTERVAL_VALUE="$(configured_value MEMGRAPH_SNAPSHOT_INTERVAL)" + +[[ "$MEMGRAPH_USER_VALUE" =~ ^[A-Za-z0-9_.+@-]+$ ]] || \ + fail "MEMGRAPH_USER must be a valid username using letters, digits, ., _, +, @, or -" +[[ ${#MEMGRAPH_USER_VALUE} -le 128 ]] || fail "MEMGRAPH_USER username is too long" + +[[ ${#MEMGRAPH_PASSWORD_VALUE} -ge 16 ]] || fail "MEMGRAPH_PASSWORD must be at least 16 characters" +case "$MEMGRAPH_PASSWORD_VALUE" in + *$'\n'* | *$'\r'*) fail "MEMGRAPH_PASSWORD must stay on one line" ;; +esac + +[[ "$MEMGRAPH_MEMORY_LIMIT_VALUE" =~ ^[1-9][0-9]*$ ]] || \ + fail "MEMGRAPH_MEMORY_LIMIT must be a positive integer in MiB" +[[ ${#MEMGRAPH_MEMORY_LIMIT_VALUE} -le 9 ]] || fail "MEMGRAPH_MEMORY_LIMIT exceeds the supported range" +MEMGRAPH_MEMORY_LIMIT_DECIMAL=$((10#${MEMGRAPH_MEMORY_LIMIT_VALUE})) +((MEMGRAPH_MEMORY_LIMIT_DECIMAL >= 512)) || fail "MEMGRAPH_MEMORY_LIMIT must be at least 512 MiB" + +[[ "$MEMGRAPH_WORKERS_VALUE" =~ ^[1-9][0-9]*$ ]] || fail "MEMGRAPH_WORKERS must be a positive integer" +[[ ${#MEMGRAPH_WORKERS_VALUE} -le 9 ]] || fail "MEMGRAPH_WORKERS must be a positive integer in the supported range" + +[[ "$MEMGRAPH_SNAPSHOT_INTERVAL_VALUE" =~ ^[1-9][0-9]*$ ]] || \ + fail "MEMGRAPH_SNAPSHOT_INTERVAL must be a positive integer" +[[ ${#MEMGRAPH_SNAPSHOT_INTERVAL_VALUE} -le 9 ]] || \ + fail "MEMGRAPH_SNAPSHOT_INTERVAL exceeds the supported range" +MEMGRAPH_SNAPSHOT_INTERVAL_DECIMAL=$((10#${MEMGRAPH_SNAPSHOT_INTERVAL_VALUE})) +((MEMGRAPH_SNAPSHOT_INTERVAL_DECIMAL >= 60)) || \ + fail "MEMGRAPH_SNAPSHOT_INTERVAL must be at least 60 seconds" + +mkdir -p -- "$APP_DATA_DIR_ABS" "${APP_DATA_DIR_ABS}/data" "${APP_DATA_DIR_ABS}/logs" +chown 101:103 -- "${APP_DATA_DIR_ABS}/data" "${APP_DATA_DIR_ABS}/logs" +chmod 750 -- "${APP_DATA_DIR_ABS}/data" "${APP_DATA_DIR_ABS}/logs" +chmod 600 -- "$ENV_FILE" diff --git a/apps/memgraph/3.13.2/scripts/uninstall.sh b/apps/memgraph/3.13.2/scripts/uninstall.sh new file mode 100755 index 000000000..5a3f6bd6b --- /dev/null +++ b/apps/memgraph/3.13.2/scripts/uninstall.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -euo pipefail + +if command -v docker-compose >/dev/null 2>&1; then + docker-compose down --volumes --remove-orphans +else + docker compose down --volumes --remove-orphans +fi diff --git a/apps/memgraph/3.13.2/scripts/upgrade.sh b/apps/memgraph/3.13.2/scripts/upgrade.sh new file mode 100755 index 000000000..593b31667 --- /dev/null +++ b/apps/memgraph/3.13.2/scripts/upgrade.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" +exec bash "${SCRIPT_DIR}/init.sh"