From 99519966d4e9034c32b2c3bf76cf18591a117e4d Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Wed, 24 Jun 2026 20:08:46 +0800 Subject: [PATCH] Add LinuxServer Fleet adapter --- apps/fleet-linuxserver/2.3.3/.env.sample | 7 ++ apps/fleet-linuxserver/2.3.3/data.yml | 101 ++++++++++++++++++ apps/fleet-linuxserver/2.3.3/data/.gitkeep | 0 .../2.3.3/docker-compose.yml | 41 +++++++ apps/fleet-linuxserver/2.3.3/scripts/init.sh | 4 + .../2.3.3/scripts/uninstall.sh | 2 + .../2.3.3/scripts/upgrade.sh | 2 + apps/fleet-linuxserver/README.md | 44 ++++++++ apps/fleet-linuxserver/data.yml | 30 ++++++ apps/fleet-linuxserver/logo.png | Bin 0 -> 4674 bytes 10 files changed, 231 insertions(+) create mode 100644 apps/fleet-linuxserver/2.3.3/.env.sample create mode 100644 apps/fleet-linuxserver/2.3.3/data.yml create mode 100644 apps/fleet-linuxserver/2.3.3/data/.gitkeep create mode 100644 apps/fleet-linuxserver/2.3.3/docker-compose.yml create mode 100755 apps/fleet-linuxserver/2.3.3/scripts/init.sh create mode 100755 apps/fleet-linuxserver/2.3.3/scripts/uninstall.sh create mode 100755 apps/fleet-linuxserver/2.3.3/scripts/upgrade.sh create mode 100644 apps/fleet-linuxserver/README.md create mode 100644 apps/fleet-linuxserver/data.yml create mode 100644 apps/fleet-linuxserver/logo.png diff --git a/apps/fleet-linuxserver/2.3.3/.env.sample b/apps/fleet-linuxserver/2.3.3/.env.sample new file mode 100644 index 000000000..f28530e88 --- /dev/null +++ b/apps/fleet-linuxserver/2.3.3/.env.sample @@ -0,0 +1,7 @@ +CONTAINER_NAME= +PANEL_APP_PORT_HTTP=8080 +CONFIG_PATH=./data/config +DB_PASSWORD=fleet-change-me +FLEET_ADMIN_SECRET=fleet-admin-secret-change-me +DB_DATA_PATH=./data/db +TIME_ZONE=Asia/Shanghai diff --git a/apps/fleet-linuxserver/2.3.3/data.yml b/apps/fleet-linuxserver/2.3.3/data.yml new file mode 100644 index 000000000..b0c8cc7f6 --- /dev/null +++ b/apps/fleet-linuxserver/2.3.3/data.yml @@ -0,0 +1,101 @@ +additionalProperties: + formFields: + - default: 8080 + 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: fleet-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: fleet-admin-secret-change-me + edit: true + envKey: FLEET_ADMIN_SECRET + labelEn: Admin secret + labelZh: 管理员密钥 + label: + en: Admin secret + zh: 管理员密钥 + zh-Hant: 管理員金鑰 + ja: 管理者シークレット + ko: 관리자 시크릿 + ru: Секрет администратора + ms: Rahsia pentadbir + pt-br: Segredo do administrador + required: true + type: password + rule: paramComplexity + - 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: 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/fleet-linuxserver/2.3.3/data/.gitkeep b/apps/fleet-linuxserver/2.3.3/data/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/apps/fleet-linuxserver/2.3.3/docker-compose.yml b/apps/fleet-linuxserver/2.3.3/docker-compose.yml new file mode 100644 index 000000000..2cca0e198 --- /dev/null +++ b/apps/fleet-linuxserver/2.3.3/docker-compose.yml @@ -0,0 +1,41 @@ +networks: + 1panel-network: + external: true +services: + fleet: + image: "linuxserver/fleet:2.3.3" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + volumes: + - "${CONFIG_PATH}:/config" + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TIME_ZONE} + - fleet_admin_authentication_type=DATABASE + - fleet_database_url=jdbc:mariadb://fleet-db:3306/fleet + - fleet_database_username=fleet + - fleet_database_password=${DB_PASSWORD} + - fleet_admin_secret=${FLEET_ADMIN_SECRET} + depends_on: + - fleet-db + labels: + createdBy: "Apps" + fleet-db: + image: "mariadb:11.4" + restart: always + networks: + - 1panel-network + volumes: + - "${DB_DATA_PATH}:/var/lib/mysql" + environment: + - MARIADB_ROOT_PASSWORD=${DB_PASSWORD} + - MARIADB_DATABASE=fleet + - MARIADB_USER=fleet + - MARIADB_PASSWORD=${DB_PASSWORD} + labels: + createdBy: "Apps" diff --git a/apps/fleet-linuxserver/2.3.3/scripts/init.sh b/apps/fleet-linuxserver/2.3.3/scripts/init.sh new file mode 100755 index 000000000..92e31431d --- /dev/null +++ b/apps/fleet-linuxserver/2.3.3/scripts/init.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail +mkdir -p ./data/config ./data/db +chown -R 1000:1000 ./data 2>/dev/null || true diff --git a/apps/fleet-linuxserver/2.3.3/scripts/uninstall.sh b/apps/fleet-linuxserver/2.3.3/scripts/uninstall.sh new file mode 100755 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/fleet-linuxserver/2.3.3/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/fleet-linuxserver/2.3.3/scripts/upgrade.sh b/apps/fleet-linuxserver/2.3.3/scripts/upgrade.sh new file mode 100755 index 000000000..6e877466e --- /dev/null +++ b/apps/fleet-linuxserver/2.3.3/scripts/upgrade.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +set -euo pipefail diff --git a/apps/fleet-linuxserver/README.md b/apps/fleet-linuxserver/README.md new file mode 100644 index 000000000..14896814b --- /dev/null +++ b/apps/fleet-linuxserver/README.md @@ -0,0 +1,44 @@ +# Fleet LinuxServer + +## 产品介绍 + +Fleet LinuxServer 使用 LinuxServer.io 维护的 `linuxserver/fleet` 镜像,提供 Fleet 镜像仓库展示界面 能力。 + +## 主要功能 + +- 提供 镜像仓库展示与管理 能力 +- 持久化保存配置和业务数据 +- 使用安装表单配置服务端口和数据路径 +- 支持自定义时区 + +## 访问说明 + +安装完成后,通过 HTTP 端口访问 Fleet Web UI。使用 DATABASE 模式时,可通过 `/setup` 初始化用户。 + +## 运行说明 + +LinuxServer 已将该镜像和 Fleet 应用标记为 deprecated。本适配保留 `2.3.3` numbered tag,用于兼容 LinuxServer 镜像部署。 + +## Introduction + +Fleet LinuxServer uses the LinuxServer.io maintained `linuxserver/fleet` image for image repository display and management. + +## Features + +- Provide image repository display and management +- Persist configuration and application data +- Configure service ports and data paths from the install form +- Configure the container time zone + +## Access + +After installation, open Fleet from the HTTP port. In DATABASE mode, initialize the first user from `/setup`. + +## Runtime Notes + +LinuxServer marks this image and the Fleet application as deprecated. This package keeps the `2.3.3` numbered tag for LinuxServer image compatibility. + +## Links + +- LinuxServer image documentation: +- Project website: diff --git a/apps/fleet-linuxserver/data.yml b/apps/fleet-linuxserver/data.yml new file mode 100644 index 000000000..02638d808 --- /dev/null +++ b/apps/fleet-linuxserver/data.yml @@ -0,0 +1,30 @@ +name: Fleet LinuxServer +tags: +- Tool +title: Fleet 镜像仓库展示界面 +description: Fleet 镜像仓库展示界面 +additionalProperties: + key: fleet-linuxserver + name: Fleet LinuxServer + tags: + - Tool + shortDescZh: Fleet 镜像仓库展示界面 + shortDescEn: Image repository dashboard maintained by LinuxServer.io + description: + en: Image repository dashboard maintained by LinuxServer.io + zh: Fleet 镜像仓库展示界面 + zh-Hant: Fleet 映像倉庫展示介面 + ja: LinuxServer.io が保守するイメージリポジトリダッシュボード + ko: LinuxServer.io에서 유지 관리하는 이미지 저장소 대시보드 + ru: Панель репозиториев образов, поддерживаемая LinuxServer.io + ms: Papan pemuka repositori imej yang diselenggara oleh LinuxServer.io + pt-br: Painel de repositorios de imagens mantido pela LinuxServer.io + type: tool + crossVersionUpdate: true + limit: 0 + website: https://github.com/linuxserver/fleet + github: https://github.com/linuxserver/docker-fleet + document: https://docs.linuxserver.io/images/docker-fleet/ + architectures: + - amd64 + - arm64 diff --git a/apps/fleet-linuxserver/logo.png b/apps/fleet-linuxserver/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..45e9c3340a20c58a72661057830cc7d65c9da2e9 GIT binary patch literal 4674 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 Ef?UEPv;Y7A literal 0 HcmV?d00001