From 96e5e8df029718eb031e6d480859d48f318cdac9 Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Fri, 16 Oct 2026 23:37:18 +0800 Subject: [PATCH] Add NetBox 4.7.2 package path --- apps/netbox-linuxserver/4.7.2/.env.sample | 22 ++ apps/netbox-linuxserver/4.7.2/data.yml | 341 ++++++++++++++++++ apps/netbox-linuxserver/4.7.2/data/.gitkeep | 0 .../4.7.2/docker-compose.yml | 71 ++++ apps/netbox-linuxserver/4.7.2/scripts/init.sh | 15 + .../4.7.2/scripts/uninstall.sh | 2 + .../4.7.2/scripts/upgrade.sh | 37 ++ 7 files changed, 488 insertions(+) create mode 100644 apps/netbox-linuxserver/4.7.2/.env.sample create mode 100644 apps/netbox-linuxserver/4.7.2/data.yml create mode 100644 apps/netbox-linuxserver/4.7.2/data/.gitkeep create mode 100644 apps/netbox-linuxserver/4.7.2/docker-compose.yml create mode 100755 apps/netbox-linuxserver/4.7.2/scripts/init.sh create mode 100755 apps/netbox-linuxserver/4.7.2/scripts/uninstall.sh create mode 100755 apps/netbox-linuxserver/4.7.2/scripts/upgrade.sh diff --git a/apps/netbox-linuxserver/4.7.2/.env.sample b/apps/netbox-linuxserver/4.7.2/.env.sample new file mode 100644 index 000000000..7462d9ac8 --- /dev/null +++ b/apps/netbox-linuxserver/4.7.2/.env.sample @@ -0,0 +1,22 @@ +CONTAINER_NAME= +PANEL_APP_PORT_HTTP=8000 +CONFIG_PATH=./data/config +SUPERUSER_EMAIL=admin@example.com +SUPERUSER_PASSWORD=netbox-change-me +ALLOWED_HOST=* +DB_NAME=netbox +DB_USER=netbox +DB_HOST=netbox-db +DB_PORT=5432 +DB_PASSWORD=netbox-change-me +REDIS_HOST=netbox-redis +REDIS_PORT=6379 +REDIS_USERNAME= +REDIS_PASSWORD= +REDIS_DB_TASK=0 +REDIS_DB_CACHE=1 +BASE_PATH= +CSRF_TRUSTED_ORIGINS= +DB_DATA_PATH=./data/db +REDIS_DATA_PATH=./data/redis +TIME_ZONE=Asia/Shanghai diff --git a/apps/netbox-linuxserver/4.7.2/data.yml b/apps/netbox-linuxserver/4.7.2/data.yml new file mode 100644 index 000000000..3233b7b8c --- /dev/null +++ b/apps/netbox-linuxserver/4.7.2/data.yml @@ -0,0 +1,341 @@ +additionalProperties: + formFields: + - default: 8000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: HTTP Port + labelZh: HTTP 端口 + label: + en: HTTP Port + zh: HTTP 端口 + zh-Hant: HTTP 連接埠 + ja: HTTP ポート + ko: HTTP 포트 + ru: HTTP-порт + ms: Port HTTP + pt-br: Porta HTTP + required: true + type: number + rule: paramPort + - default: ./data/config + edit: true + envKey: CONFIG_PATH + labelEn: Config folder path + labelZh: 配置文件路径 + label: + en: Config folder path + zh: 配置文件路径 + zh-Hant: 設定檔資料夾路徑 + ja: 設定フォルダーのパス + ko: 설정 폴더 경로 + ru: Путь к папке конфигурации + ms: Laluan folder konfigurasi + pt-br: Caminho da pasta de configuração + required: true + type: text + - default: admin@example.com + edit: true + envKey: SUPERUSER_EMAIL + labelEn: Admin email + labelZh: 管理员邮箱 + label: + en: Admin email + zh: 管理员邮箱 + zh-Hant: 管理員信箱 + ja: 管理者メール + ko: 관리자 이메일 + ru: Email администратора + ms: E-mel pentadbir + pt-br: Email do administrador + required: true + type: text + - default: netbox-change-me + edit: true + envKey: SUPERUSER_PASSWORD + labelEn: Admin password + labelZh: 管理员密码 + label: + en: Admin password + zh: 管理员密码 + zh-Hant: 管理員密碼 + ja: 管理者パスワード + ko: 관리자 비밀번호 + ru: Пароль администратора + ms: Kata laluan pentadbir + pt-br: Senha do administrador + required: true + type: password + rule: paramComplexity + - default: "*" + edit: true + envKey: ALLOWED_HOST + labelEn: Allowed host + labelZh: 允许访问主机 + label: + en: Allowed host + zh: 允许访问主机 + zh-Hant: 允許存取主機 + ja: 許可ホスト + ko: 허용 호스트 + ru: Разрешенный хост + ms: Hos dibenarkan + pt-br: Host permitido + required: true + type: text + - default: netbox-db + edit: true + envKey: DB_HOST + labelEn: Database host + labelZh: 数据库主机 + label: + en: Database host + zh: 数据库主机 + zh-Hant: 資料庫主機 + ja: データベースホスト + ko: 데이터베이스 호스트 + ru: Хост базы данных + ms: Hos pangkalan data + pt-br: Host do banco + required: true + type: text + - default: 5432 + edit: true + envKey: DB_PORT + labelEn: Database port + labelZh: 数据库端口 + label: + en: Database port + zh: 数据库端口 + zh-Hant: 資料庫連接埠 + ja: データベースポート + ko: 데이터베이스 포트 + ru: Порт базы данных + ms: Port pangkalan data + pt-br: Porta do banco + required: true + type: number + - default: netbox + edit: true + envKey: DB_USER + labelEn: Database username + labelZh: 数据库用户名 + label: + en: Database username + zh: 数据库用户名 + zh-Hant: 資料庫使用者名稱 + ja: データベースユーザー名 + ko: 데이터베이스 사용자 이름 + ru: Имя пользователя базы + ms: Nama pengguna pangkalan data + pt-br: Usuario do banco + required: true + type: text + - default: netbox + edit: true + envKey: DB_NAME + labelEn: Database name + labelZh: 数据库名称 + label: + en: Database name + zh: 数据库名称 + zh-Hant: 資料庫名稱 + ja: データベース名 + ko: 데이터베이스 이름 + ru: Имя базы данных + ms: Nama pangkalan data + pt-br: Nome do banco + required: true + type: text + - default: netbox-change-me + edit: true + envKey: DB_PASSWORD + labelEn: Database password + labelZh: 数据库密码 + label: + en: Database password + zh: 数据库密码 + zh-Hant: 資料庫密碼 + ja: データベースパスワード + ko: 데이터베이스 비밀번호 + ru: Пароль базы данных + ms: Kata laluan pangkalan data + pt-br: Senha do banco de dados + required: true + type: password + rule: paramComplexity + - default: netbox-redis + edit: true + envKey: REDIS_HOST + labelEn: Redis host + labelZh: Redis 主机 + label: + en: Redis host + zh: Redis 主机 + zh-Hant: Redis 主機 + ja: Redis ホスト + ko: Redis 호스트 + ru: Хост Redis + ms: Hos Redis + pt-br: Host do Redis + required: true + type: text + - default: 6379 + edit: true + envKey: REDIS_PORT + labelEn: Redis port + labelZh: Redis 端口 + label: + en: Redis port + zh: Redis 端口 + zh-Hant: Redis 連接埠 + ja: Redis ポート + ko: Redis 포트 + ru: Порт Redis + ms: Port Redis + pt-br: Porta do Redis + required: true + type: number + - default: '' + edit: true + envKey: REDIS_USERNAME + labelEn: Redis username + labelZh: Redis 用户名 + label: + en: Redis username + zh: Redis 用户名 + zh-Hant: Redis 使用者名稱 + ja: Redis ユーザー名 + ko: Redis 사용자 이름 + ru: Имя пользователя Redis + ms: Nama pengguna Redis + pt-br: Usuario do Redis + required: false + type: text + - default: '' + edit: true + envKey: REDIS_PASSWORD + labelEn: Redis password + labelZh: Redis 密码 + label: + en: Redis password + zh: Redis 密码 + zh-Hant: Redis 密碼 + ja: Redis パスワード + ko: Redis 비밀번호 + ru: Пароль Redis + ms: Kata laluan Redis + pt-br: Senha do Redis + required: false + type: password + - default: 0 + edit: true + envKey: REDIS_DB_TASK + labelEn: Redis task database + labelZh: Redis 任务数据库 + label: + en: Redis task database + zh: Redis 任务数据库 + zh-Hant: Redis 任務資料庫 + ja: Redis タスクデータベース + ko: Redis 작업 데이터베이스 + ru: База Redis для задач + ms: Pangkalan data tugas Redis + pt-br: Banco Redis de tarefas + required: true + type: number + - default: 1 + edit: true + envKey: REDIS_DB_CACHE + labelEn: Redis cache database + labelZh: Redis 缓存数据库 + label: + en: Redis cache database + zh: Redis 缓存数据库 + zh-Hant: Redis 快取資料庫 + ja: Redis キャッシュデータベース + ko: Redis 캐시 데이터베이스 + ru: База Redis для кэша + ms: Pangkalan data cache Redis + pt-br: Banco Redis de cache + required: true + type: number + - default: '' + edit: true + envKey: BASE_PATH + labelEn: Base path + labelZh: 基础路径 + label: + en: Base path + zh: 基础路径 + zh-Hant: 基礎路徑 + ja: ベースパス + ko: 기본 경로 + ru: Базовый путь + ms: Laluan asas + pt-br: Caminho base + required: false + type: text + - default: '' + edit: true + envKey: CSRF_TRUSTED_ORIGINS + labelEn: CSRF trusted origins + labelZh: CSRF 可信来源 + label: + en: CSRF trusted origins + zh: CSRF 可信来源 + zh-Hant: CSRF 可信來源 + ja: CSRF 信頼済みオリジン + ko: CSRF 신뢰 출처 + ru: Доверенные источники CSRF + ms: Asal dipercayai CSRF + pt-br: Origens CSRF confiaveis + required: false + type: text + - default: ./data/db + edit: true + envKey: DB_DATA_PATH + labelEn: Database data path + labelZh: 数据库数据目录 + label: + en: Database data path + zh: 数据库数据目录 + zh-Hant: 資料庫資料目錄 + ja: データベースデータディレクトリ + ko: 데이터베이스 데이터 디렉터리 + ru: Каталог данных базы + ms: Laluan data pangkalan data + pt-br: Caminho de dados do banco + required: true + type: text + - default: ./data/redis + edit: true + envKey: REDIS_DATA_PATH + labelEn: Redis data path + labelZh: Redis 数据目录 + label: + en: Redis data path + zh: Redis 数据目录 + zh-Hant: Redis 資料目錄 + ja: Redis データディレクトリ + ko: Redis 데이터 디렉터리 + ru: Каталог данных Redis + ms: Laluan data Redis + pt-br: Caminho de dados Redis + required: true + type: text + - default: Asia/Shanghai + edit: true + envKey: TIME_ZONE + labelEn: Time zone + labelZh: 时区 + label: + en: Time zone + zh: 时区 + zh-Hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon waktu + pt-br: Fuso horário + required: true + type: text diff --git a/apps/netbox-linuxserver/4.7.2/data/.gitkeep b/apps/netbox-linuxserver/4.7.2/data/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/apps/netbox-linuxserver/4.7.2/docker-compose.yml b/apps/netbox-linuxserver/4.7.2/docker-compose.yml new file mode 100644 index 000000000..bff526764 --- /dev/null +++ b/apps/netbox-linuxserver/4.7.2/docker-compose.yml @@ -0,0 +1,71 @@ +networks: + 1panel-network: + external: true +services: + netbox: + image: "linuxserver/netbox:4.7.2" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8000" + volumes: + - "${CONFIG_PATH}:/config" + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TIME_ZONE} + - SUPERUSER_EMAIL=${SUPERUSER_EMAIL} + - SUPERUSER_PASSWORD=${SUPERUSER_PASSWORD} + - ALLOWED_HOST=${ALLOWED_HOST} + - DB_NAME=${DB_NAME} + - DB_USER=${DB_USER} + - DB_PASSWORD=${DB_PASSWORD} + - DB_HOST=${DB_HOST} + - DB_PORT=${DB_PORT} + - REDIS_HOST=${REDIS_HOST} + - REDIS_PORT=${REDIS_PORT} + - REDIS_USERNAME=${REDIS_USERNAME:-} + - REDIS_PASSWORD=${REDIS_PASSWORD:-} + - REDIS_DB_TASK=${REDIS_DB_TASK} + - REDIS_DB_CACHE=${REDIS_DB_CACHE} + - BASE_PATH=${BASE_PATH:-} + - CSRF_TRUSTED_ORIGINS=${CSRF_TRUSTED_ORIGINS:-} + depends_on: + - netbox-db + - netbox-redis + labels: + createdBy: "Apps" + netbox-db: + image: "postgres:16-alpine" + restart: always + networks: + - 1panel-network + volumes: + - "${DB_DATA_PATH}:/var/lib/postgresql/data" + environment: + - POSTGRES_DB=${DB_NAME} + - POSTGRES_USER=${DB_USER} + - POSTGRES_PASSWORD=${DB_PASSWORD} + labels: + createdBy: "Apps" + netbox-redis: + image: "redis:7-alpine" + command: + - /bin/sh + - -c + - | + if [ -n "$${REDIS_PASSWORD:-}" ]; then + exec redis-server --requirepass "$${REDIS_PASSWORD}" + fi + exec redis-server + restart: always + networks: + - 1panel-network + volumes: + - "${REDIS_DATA_PATH}:/data" + environment: + - REDIS_PASSWORD=${REDIS_PASSWORD:-} + labels: + createdBy: "Apps" diff --git a/apps/netbox-linuxserver/4.7.2/scripts/init.sh b/apps/netbox-linuxserver/4.7.2/scripts/init.sh new file mode 100755 index 000000000..3f50179f2 --- /dev/null +++ b/apps/netbox-linuxserver/4.7.2/scripts/init.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +paths=( + "${CONFIG_PATH:-./data/config}" + "${DB_DATA_PATH:-./data/db}" + "${REDIS_DATA_PATH:-./data/redis}" +) + +mkdir -p "${paths[@]}" +for path in "${paths[@]}"; do + case "$path" in + ./*|../*) chown -R 1000:1000 "$path" 2>/dev/null || true ;; + esac +done diff --git a/apps/netbox-linuxserver/4.7.2/scripts/uninstall.sh b/apps/netbox-linuxserver/4.7.2/scripts/uninstall.sh new file mode 100755 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/netbox-linuxserver/4.7.2/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/netbox-linuxserver/4.7.2/scripts/upgrade.sh b/apps/netbox-linuxserver/4.7.2/scripts/upgrade.sh new file mode 100755 index 000000000..98fb11942 --- /dev/null +++ b/apps/netbox-linuxserver/4.7.2/scripts/upgrade.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -euo pipefail + +ENV_FILE="${ENV_FILE:-./.env}" + +ensure_env_default() { + local key="$1" + local value="$2" + + if [[ ! -f "$ENV_FILE" ]]; then + echo "$ENV_FILE not found; skipped $key migration" + return + fi + + if grep -qE "^${key}=" "$ENV_FILE"; then + echo "$key already exists" + return + fi + + printf '%s=%s\n' "$key" "$value" >> "$ENV_FILE" + echo "Added $key" +} + +if [[ -f "$ENV_FILE" ]]; then + ensure_env_default "DB_NAME" "netbox" + ensure_env_default "DB_USER" "netbox" + ensure_env_default "DB_HOST" "netbox-db" + ensure_env_default "DB_PORT" "5432" + ensure_env_default "REDIS_HOST" "netbox-redis" + ensure_env_default "REDIS_PORT" "6379" + ensure_env_default "REDIS_USERNAME" "" + ensure_env_default "REDIS_PASSWORD" "" + ensure_env_default "REDIS_DB_TASK" "0" + ensure_env_default "REDIS_DB_CACHE" "1" +else + echo "$ENV_FILE not found; skipped LinuxServer environment migration" +fi