Skip to content

1Panel 应用转换清单 ​

本清单是 FNOS-001 与 PLAN-FNOS-001 的附录,记录上游 1Panel-dev/appstore 全部 265 个应用的静态盘点结果。上游仓库在本地工作区检出为 appstore/,本仓库只读参考它。

盘点口径 ​

数据来源:appstore/apps/<app>/data.yml 与 appstore/apps/<app>/<version>/docker-compose.yml,盘点日期 2026-10-09,上游提交 3b142d2。

指标数量说明
应用总数265appstore/apps/ 下的目录数
带向导表单(formFields)259读取位置口径(写死):只读版本级 appstore/apps/<app>/<version>/data.yml,判定 additionalProperties.formFields 非空。顶层 appstore/apps/<app>/data.yml 不含 formFields(其 additionalProperties 只有展示元数据:key/name/tags/shortDescZh/shortDescEn/type/crossVersionUpdate/limit/recommend/batchInstallSupport/website/github/description/architectures),读错位置会得到"全部应用无表单"的错误结论(实测 265 个应用的顶层文件命中数为 0)。多版本取值:任一版本命中即计入(并集);实测"任一版本"「全部版本」「第一个版本」三种取法均得 259,因为没有任何应用在不同版本之间出现 formFields 有/无的差异,故该取法不影响计数。另有 6 个应用确实没有表单:caddy、dotnet、go、java、node、python。jupyter-notebook、oceanbase 的 data.yml 含制表符缩进,严格 YAML 解析会失败,展开制表符后二者确有 formFields,故计入 259;按严格解析会误算为 257
多版本应用40同一应用目录下有多个版本子目录,转换时必须选定一个版本
使用 1panel-network 外部网络257全部需要删除该外部网络依赖
使用 ${CONTAINER_NAME}263全部改为 fn-<app> 固定容器名
使用 ./ 相对挂载223数据会落在容器工程目录,必须改到 fnOS 数据目录。判定口径(写死,便于复算):按行首 - 后接可选引号再接 ./ 的行匹配,正则 ^\s*-\s*['"]?\./(引号必须可选:newsnow、openldap 写作单引号 './data:...',漏判会把它们错分到 T0)。该口径不区分该行属于 volumes: 还是 env_file:,共 223 个应用;其中真实 ./ volume 挂载为 222 个,差额 1 个是 zitadel——它仅在 env_file: 段出现 ./data/masterkey.env,从 2.71.13 到 4.17.0 都没有任何 ./ volume 挂载(volumes 只有 /etc/localtime、/etc/timezone 两个宿主绝对路径)。反向不存在漏报。该数字不影响分级:用「行首正则」(223)与「仅 volume 挂载」(222)两种口径各跑一遍完整七步级联,结果完全一致(T0 14 / T1 98 / T2 74 / T3 46 / T4 33,无差异应用),因为受影响的 zitadel、mailserver、outline、docmost 都已因 env_file 命中更靠前的 T4 触发条件,走不到第 6 步的 T1 判据
使用外部命名卷(external: true)2maddy-mail、synapse,需改为绑定挂载
使用 service/apps 联动字段74 处字段fnOS 没有服务选择器,必须改造成显式连接信息
绑定宿主 /etc/timezone、/etc/localtime22需确认 fnOS 上是否可用,否则改用 TZ 环境变量
与本仓库现有应用同名6bitwarden、halo、hermes-agent、memos、new-api、zentao,需先做对齐判定,不重复打包

分级总览 ​

级别名称数量去掉同名后转换成本批次
T0直接套模板14140.5 人日/应用批次 1
T1状态落盘改造1251250.5—1 人日/应用已完成(124/125,deepseek-harness 按边界不转换)
T2资源集成改造47471—3 人日/应用已完成(47/47)
T3运行环境 / 中间件 / 能力重复4646需要宿主契约决策暂不排期
T4高风险3333需要权限模型决策暂不排期
合计—265265—可转换 186 / 已交付 185

数字口径:T1 由原 98 增至 125、T2 由原 74 降至 47,是因为 26 个应用经全量扫描后订正了分级(原判 T2 但实测无外部数据库/中间件依赖,应归 T1);T3/T4 不变。详见下方「变更记录」中 2026-10-14 的 D-03 订正。「去掉同名后」一列在此次订正后与「数量」一致——原先扣减的 6 个同名应用(bitwarden/halo/hermes-agent/memos/new-api/zentao)已计入不可转换,故本清单统计的是可转换范围。

分级判定顺序(第一个命中的条件决定级别):

text
1. 是语言运行时 / Web 服务器(php、php5/7/8、node、python、go、java、dotnet、openresty、openlitespeed、uuwaf)  → T3 运行环境
2. 是数据库 / 缓存(mysql、mariadb、postgresql、redis、mongodb、mssql、neo4j、oceanbase、greatsql、keydb、valkey 及 cluster)→ T3 能力重复
3. 是中间件 / 监控(kafka、rabbitmq、minio、elasticsearch、clickhouse、nacos、consul、prometheus、grafana、jaeger 等)→ T3 中间件
4. compose 需要 docker.sock / privileged / host 网络 / cap_add / devices / build / env_file                                          → T4 高风险
5. 多容器 / 多端口 / 外部数据库(PANEL_DB_* 或 DBHUB_DB_*)/ Redis / service-apps 联动字段                                            → T2 资源集成
6. 状态落 `./data` 相对目录(引号无关)/ 外部命名卷 / 仅 amd64                                                                          → T1 状态落盘
7. 其余(单容器、单端口、无状态或仅命名卷)                                                                                            → T0 直接套模板

第 5、6 步的两个判定按下列口径求值,口径错误会直接导致分级错位:

  • 外部数据库(第 5 步):仅当 compose 使用 PANEL_DB_* 或 DBHUB_DB_* 变量(即需要用户提供外部数据库实例)才算命中。容器内自带的 SQLite(DB_DATABASE=...sqlite、*_DATABASE_DRIVER: sqlite、GOTIFY_DATABASE_DIALECT=sqlite3)和镜像内置数据库(MYSQL_INTERNAL=true)不算外部依赖,按状态落盘归 T1。反面教训:按「env 里出现 DATABASE 字样」判定,会把 2fauth、ai-gateway、gotify、zentao 误升到 T2;只看 PANEL_DB_* 又会漏掉用 DBHUB_DB_* 的 dbhub(误留 T0)。
  • ./ 相对挂载(第 6 步):判定必须引号无关,使用 ^\s*-\s*['"]?\./(行首 - 后允许可选引号再接 ./)。只匹配裸写法会把 newsnow、openldap 的单引号挂载漏掉,使其错留在 T0。

与本仓库现有应用的重名情况 ​

以下 6 个上游应用在本仓库已有实现,转换批次中应跳过,只做版本对齐:

上游应用上游镜像本仓库现有应用处理建议
memosneosmemo/memos:0.31.0fn-memos(原生二进制)跳过上游版本,已有实现更轻
halohalohub/halo-pro:2.26.1fn-halo(Docker)只对齐镜像版本
new-apicalciumion/new-api:v0.13.2fn-new-api(Docker)只对齐镜像版本
zentaohub.zentao.net/app/zentao:22.6fn-zentao(Docker)只对齐镜像版本
bitwardenvaultwarden/server:1.37.4-alpinefn-bitwarden(Docker)只对齐镜像版本
hermes-agent1panel/hermes-agent:2026.9.24fn-hermes-agent(原生)确认是否改用上游镜像

上游还有 openclaw、clawswarm、copaw、deepseek-harness 等 1Panel 自有镜像应用,与本仓库现有应用无关,按普通上游应用处理。

批次明细 ​

T0 直接套模板(14 个) ​

单容器单端口,无状态卷或仅命名卷;改命名、网络和入口即可。

优先级上游应用展示名主镜像关键改造点上游版本数
P1lobe-chatLobeChatlobehub/lobe-chat:1.143.3仅命名/网络差异1
P2zabbix-agentZabbix Agentzabbix/zabbix-agent:alpine-7.4.5仅命名/网络差异1
P3adminerAdmineradminer:6.1.1-standalone仅命名/网络差异1
P3browserlessBrowserlessghcr.io/browserless/chrome:v2.57.0仅命名/网络差异1
P3chatgpt-next-webChatGPT-Next-Webyidadaa/chatgpt-next-web:v2.16.1仅命名/网络差异1
P3cloudflaredcloudflaredcloudflare/cloudflared:2026.10.0仅命名/网络差异1
P3cyberchefCyberChefghcr.io/gchq/cyberchef:10.24.0仅命名/网络差异2
P3it-toolsIT-Toolscorentinth/it-tools:2024.10.22-7ca5933仅命名/网络差异1
P3linux-commandLinux Commandwcjiang/linux-command:1.22.0仅命名/网络差异1
P3llama-cppllama.cppghcr.io/ggml-org/llama.cpp:server用户模型目录挂载 ${MODEL_DIR}:/models(默认 ./models,edit: true)→ 向导字段 MODEL_PATH + 只读挂载;不声明 data-share1
P3memcachedMemcachedmemcached:1.6.22-alpine3.18仅命名/网络差异1
P3web-checkWeb-Checklissy93/web-check:2.3.2仅命名/网络差异1
P3wechatmarkdowneditorWeChat Markdown Editordoocs/md:2.1.0仅命名/网络差异1
P3yesplaymusicYesPlayMusicfogforest/yesplaymusic:0.4.9仅命名/网络差异1

T1 状态落盘改造(125 个) ​

单容器单端口,但状态写在 ./data 相对目录,必须改到 ${TRIM_PKGVAR} 或共享目录。

优先级上游应用展示名主镜像关键改造点上游版本数
P1new-apiNew APIcalciumion/new-api:v0.13.2状态落 ./data1
P1n8nn8nn8nio/n8n:2.42.3状态落 ./data1
P1bitwardenBitwardenvaultwarden/server:1.37.4-alpine状态落 ./data1
P1newsnowNewsNowghcr.io/ourongxing/newsnow:v0.0.41状态落 ./data(单引号写法 './data:...')1
P1openldapOpenLDAPbitnamilegacy/openldap:2.6.10状态落 ./data(单引号写法 './data:...')1
P2ai-gateway1Panel AI 网关1panel/ai-gateway:v1.3.0状态落 ./data;容器内自带 SQLite(非外部数据库)1
P2zentao禅道hub.zentao.net/app/zentao:22.6状态落 ./data;镜像内置 MySQL(MYSQL_INTERNAL=true,非外部数据库)1
P2tomcatApache Tomcatbitnamilegacy/tomcat:10.1.43状态落 ./data3
P2qinglong青龙whyour/qinglong:2.22.0-debian状态落 ./data1
P2ollamaOllamaollama/ollama:0.40.1状态落 ./data1
P2upageUPagehalohub/upage:1.0.1状态落 ./data2
P2clawswarmClawSwarm1panel/clawswarm:v1.0.5状态落 ./data1
P2phpmyadminphpMyAdminphpmyadmin:5.2.3状态落 ./data1
P2hermes-agentHermes Agent1panel/hermes-agent:2026.9.24状态落 ./data1
P2copawQwenPawagentscope/qwenpaw:v2.2.1状态落 ./data1
P2openclawOpenClaw1panel/openclaw:2026.9.8状态落 ./data1
P2maxkbMaxKB1panel/maxkb:v2.10.6-lts状态落 ./data1
P2deepseek-harnessDeepSeek Harness1panel/deepseek-harness:0.2.0-rc.2状态落 ./data1
P2laya-serverLaya Server1panel/laya-server:v0.1.2状态落 ./data1
P3ai-portal1Panel AI 门户1panel/ai-portal:v1.0.8状态落 ./data1
P32fauth2FAuth2fauth/2fauth:8.0.2状态落 ./data;容器内自带 SQLite(非外部数据库)1
P3gotifyGotifygotify/server:3.1.1状态落 ./data;容器内自带 SQLite(非外部数据库);仅 amd641
P3answerAnswerapache/answer:2.0.2状态落 ./data1
P3archiveboxArchiveBoxarchivebox/archivebox:0.9.73状态落 ./data1
P3artalkArtalkartalk/artalk-go:2.10状态落 ./data;仅 amd641
P3audiobookshelfAudiobookshelfadvplyr/audiobookshelf:2.37.1状态落 ./data1
P3beszelBeszelhenrygd/beszel:0.21.0状态落 ./data1
P3bililive-goBililive-gochigusa/bililive-go:v0.8.3状态落 ./data1
P3bytebaseBytebasebytebase/bytebase:3.23.0状态落 ./data1
P3calibre-webCalibre-Weblinuxserver/calibre-web:0.6.27状态落 ./data1
P3certimateCertimatecertimate/certimate:v0.4.34状态落 ./data1
P3changedetectionioChangedetection.iodgtlmoon/changedetection.io:0.60.8状态落 ./data1
P3cloudbeaverCloudBeaverdbeaver/cloudbeaver:26.2.2状态落 ./data1
P3code-servercode-serverlinuxserver/code-server:4.140.0状态落 ./data1
P3comfyuiComfyUI1panel/comfyui:v0.33.1状态落 ./data1
P3convertxConvertXc4illin/convertx:v0.19.0状态落 ./data1
P3dashyDashylissy93/dashy:4.7.19状态落 ./data1
P3domain-adminDomain Adminmouday/domain-admin:v1.6.78状态落 ./data1
P3dosgame中文 DOS 游戏firezmc/dosgame-web-docker:v3.9.6状态落 ./data1
P3easyimage2EasyImage2.0ddsderek/easyimage:v2.8.6状态落 ./data1
P3excalidrawExcalidrawexcalidraw/excalidraw:latest仅 amd641
P3ezbookkeepingezBookkeepingmayswind/ezbookkeeping:2.0.1状态落 ./data1
P3filebrowserFile Browserfilebrowser/filebrowser:v2.63.23状态落 ./data1
P3filecodeboxFileCodeBoxlanol/filecodebox:2.7.1状态落 ./data1
P3focalboardFocalboardmattermost/focalboard:7.11.4状态落 ./data;仅 amd641
P3freshrssFreshRSSlinuxserver/freshrss:1.30.1状态落 ./data1
P3gatusGatustwinproduction/gatus:v5.37.0状态落 ./data1
P3glanceGlanceglanceapp/glance:v0.8.6状态落 ./data1
P3huginnHuginnghcr.io/huginn/huginn:latest状态落 ./data;仅 amd641
P3jellyfinJellyfinjellyfin/jellyfin:10.11.11状态落 ./data1
P3jsonheroJSON Herohenryclw/jsonhero-web:latest仅 amd641
P3jupyter-notebookJupyter Notebookjupyter/scipy-notebook:latest状态落 ./data1
P3kibanaKibanakibana:8.19.23状态落 ./data2
P3kirara-agentKirara AIlss233/kirara-agent-framework:v3.2.0状态落 ./data1
P3kkfileviewkkFileViewkeking/kkfileview:4.1.0仅 amd641
P3kodboxKodboxkodcloud/kodbox:v1.4505状态落 ./data1
P3komariKomarighcr.io/komari-monitor/komari:1.5.1状态落 ./data1
P3komgaKomgagotson/komga:1.28.1状态落 ./data1
P3koodo-readerKoodo Readerghcr.io/koodo-reader/koodo-reader:master状态落 ./data1
P3linkdinglinkdingsissbruecker/linkding:1.47.0-plus状态落 ./data1
P3localaiLocalAIlocalai/localai:v3.12.1-aio-cpu状态落 ./data1
P3lsky-proLsky-prohalcyonazure/lsky-pro-docker:latest状态落 ./data1
P3mblogMBlogkingwrcy/mblog:1.1.0状态落 ./data;仅 amd641
P3mcsmanager-webMCSManagergithubyumao/mcsmanager-web:latest状态落 ./data1
P3memosMemosneosmemo/memos:0.31.0状态落 ./data1
P3mkdocs-materialMaterial for MkDocssquidfunk/mkdocs-material:9.7.7状态落 ./data1
P3music-tag-webMusic Tag Webxhongc/music_tag_web:2.7.8状态落 ./data1
P3navidromeNavidromedeluan/navidrome:0.64.2状态落 ./data1
P3nextcloudNextcloudlinuxserver/nextcloud:35.0.1状态落 ./data1
P3nexusNexus Repositorysonatype/nexus3:3.96.4状态落 ./data;仅 amd641
P3nezha哪吒监控ghcr.io/nezhahq/nezha:v2.3.18状态落 ./data1
P3node-redNode-REDnodered/node-red:5.0.7状态落 ./data1
P3nodebbNodeBBghcr.io/nodebb/nodebb:4.16.2状态落 ./data1
P3ntfyntfybinwiederhier/ntfy:v2.29.0状态落 ./data1
P3obsidian_livesyncObsidian LiveSynccouchdb:3.5.2状态落 ./data1
P3octopOctopghcr.io/tencentcloud/octop:1.0.1状态落 ./data;仅 amd641
P3ollama-webuiOpenWebUIghcr.io/open-webui/open-webui:v0.11.4状态落 ./data1
P3onlyofficeONLYOFFICE Docsonlyoffice/documentserver:9.4.0.1状态落 ./data1
P3opengistOpengistghcr.io/thomiceli/opengist:1.15.2状态落 ./data1
P3palworld-server-toolPalworld Server Tooljokerwho/palworld-server-tool:0.12.2状态落 ./data1
P3pgadmin4PGAdmin4dpage/pgadmin4:9.18状态落 ./data1
P3qiandaoQDa76yyyy/qiandao:20250803状态落 ./data1
P3showdocShowDocstar7th/showdoc:v3.9.4状态落 ./data;仅 amd641
P3siyuan思源笔记b3log/siyuan:v3.8.6状态落 ./data1
P3stirling-pdfStirling-PDFfrooodle/s-pdf:3.1.0状态落 ./data1
P3sun-panelSun-Panelhslr/sun-panel:1.8.1状态落 ./data1
P3synapseSynapsematrixdotorg/synapse:v1.162.0状态落 ./data1
P3tinyrdmTiny RDMghcr.io/tiny-craft/tiny-rdm:1.2.7状态落 ./data1
P3trendradarTrendRadarwantcat/trendradar:6.10.0状态落 ./data1
P3triliumTriliumtriliumnext/trilium:v0.106.0状态落 ./data1
P3twikooTwikooimaegoo/twikoo:2.0.12状态落 ./data2
P3uptime-kumaUptime Kumalouislam/uptime-kuma:1.23.17状态落 ./data2
P3vaneVaneitzcrazykns1337/vane:v1.12.2状态落 ./data1
P3verdaccioVerdaccioverdaccio/verdaccio:6.10.5状态落 ./data1
P3walineWalinelizheming/waline:1.43.4状态落 ./data1
P3wallosWallosbellamy/wallos:5.8.3状态落 ./data1
P3xiaomusicXiaoMusichanxi/xiaomusic:v0.6.1状态落 ./data1
P3zfileZFilezhaojun1998/zfile:5.0.9状态落 ./data1
P1sqlbotSQLBotdataease/sqlbot:v1.10.2状态落 ./data(含容器内自带 PostgreSQL);多端口×2;仅 amd64。分级订正:原 T2,但实测 PANEL_DB_*/DBHUB_DB_* 命中 0 处,上游注释写明「all-in-one containerized database」,按外部数据库判据应归 T11
P2nginx-proxy-managerNginx Proxy Managerjc21/nginx-proxy-manager:2.16.0状态落 ./data;多端口×31
P2sftpgoSFTPGodrakkan/sftpgo:v2.7.6-alpine状态落 ./data;多端口×51
P2openlistOpenList(变量镜像)状态落 ./data;多端口×21
P2cordys-crmCordys CRM1panel/cordys-crm:v1.9.3状态落 ./data;外部数据库;多端口×2;仅 amd641
P3adguardhomeAdGuardHomeadguard/adguardhome:v0.107.79状态落 ./data;多端口×141
P3alistAListxhofe/alist:v3.64.0状态落 ./data;多端口×21
P3astrbotAstrBotsoulter/astrbot:v4.28.2状态落 ./data;多端口×61
P3certdCertdgreper/certd:1.45.0状态落 ./data;多端口×21
P3discuzDiscuz!tencentci/discuz:v3.4多端口×2;仅 amd641
P3drawioDraw.iojgraph/drawio:32.3.0多端口×21
P3gsmanagerGSManagerxiaozhu674/gameservermanager:3.14.0状态落 ./data;多端口×2;仅 amd641
P3heimdallHeimdalllinuxserver/heimdall:2.8.3状态落 ./data;多端口×21
P3koishiKoishikoishijs/koishi:v1.16.0状态落 ./data;服务选择器联动1
P3langbotLangBotrockchin/langbot:v4.10.11状态落 ./data;多端口×2;多容器×21
P3maddy-mailMaddy Mail Serverfoxcpp/maddy:0.9.6状态落 ./data;多端口×51
P3manticoresearchManticore Searchmanticoresearch/manticore:29.9.0状态落 ./data;多端口×21
P3nekoNeko(变量镜像)状态落 ./data;多端口×21
P3palworldPalworld Serverthijsvanloef/palworld-server-docker:v2.8.0状态落 ./data;多端口×42
P3qbittorrentqBittorrentlinuxserver/qbittorrent:5.2.4状态落 ./data;多端口×31
P3redpanda-consoleRedpanda Consoleredpandadata/console:v3.12.0服务选择器联动1
P3rocketmqRocketMQapache/rocketmq:5.5.0状态落 ./data;多端口×3;多容器×4;仅 amd641
P3rustdeskRustDeskrustdesk/rustdesk-server-s6:1.1.16状态落 ./data;多端口×61
P3rustfsRustFSrustfs/rustfs:1.0.1状态落 ./data;多端口×21
P3screegoscreegoghcr.io/screego/server:1.12.6多端口×31
P3sentinel-dashboardSentinel Dashboardbladex/sentinel-dashboard:1.8.10多端口×21
P3stalwart-mailStalwart Mail Serverstalwartlabs/stalwart:v0.16.25-alpine状态落 ./data;多端口×101

分级订正(D-03,2026-10-14):以下应用原列 T2,但按广义外部依赖判据(扫描 PANEL_DB_*/DBHUB_DB_*/FORGEJO__database__*/GITEA__database__*/KC_DB_*/DATABASE_URL/MB_DB_* 等 DB 变量,以及 PANEL_REDIS*/REDIS_HOST/PANEL_MINIO* 等中间件变量)实测均无外部依赖,且原记录改造点为「状态落 ./data」「多端口×N」——属 T1 特征,移入 T1。

两点说明:① 判据不能只看 PANEL_DB_* 前缀——forgejo 的 DB 变量是 FORGEJO__database__*、gitea 是 GITEA__database__*、keycloak 是 KC_DB_*,都不吃 1Panel 命名,只按前缀扫会误判为 T1。② 依赖中间件(Redis/MinIO)也算 T2——rsshub 无数据库但依赖外部 Redis,保留在 T2。

T2 资源集成改造(47 个) ​

需要外部数据库/Redis、多端口、多容器或服务选择器联动字段。

优先级上游应用展示名主镜像关键改造点上游版本数
P1umamiUmamighcr.io/umami-software/umami:3.4.0外部数据库(PANEL_DB_*)。版本订正:原登记「(变量镜像)」不可用——2.20.2 的镜像为 umami:${PANEL_DB_TYPE}-v2.20.2 含变量插值,规约禁止;3.4.0 是唯一无插值版本2
P1dbhubDBHubbytebase/dbhub:1.4.0需外部数据库,DBHUB_DB_* 连接信息由向导收集1
P2zabbix-serverZabbix Serverzabbix/zabbix-server-mysql:alpine-7.4.5服务选择器联动;外部数据库;多容器×31
P2giteaGiteacommitgo/gitea-ee:27.3.4状态落 ./data;服务选择器联动;外部数据库;多端口×21
P2wordpressWordPresswordpress:7.1.3状态落 ./data;服务选择器联动;外部数据库1
P2haloHalohalohub/halo-pro:2.26.1状态落 ./data;服务选择器联动1
P2zabbix-proxyZabbix Proxyzabbix/zabbix-proxy-mysql:alpine-7.4.5服务选择器联动;外部数据库1
P2dbxDBXt8y2/dbx:0.6.35状态落 ./data;外部数据库1
P2dataeaseDataEaseregistry.cn-qingdao.aliyuncs.com/dataease/dataease:v2.10.27状态落 ./data;服务选择器联动;外部数据库2
P3affineAFFiNEghcr.io/toeverything/affine:0.27.4状态落 ./data;服务选择器联动;外部数据库;Redis;多容器×22
P3bettafishBettaFishghcr.io/666ghj/bettafish:v3.0.0状态落 ./data;服务选择器联动;外部数据库;多端口×41
P3blinkoBlinkoblinkospace/blinko:1.8.8状态落 ./data;服务选择器联动;外部数据库1
P3casdoorCasdoorcasbin/casdoor:4.18.0状态落 ./data;服务选择器联动;外部数据库1
P3cloudreveCloudrevecloudreve/cloudreve:4.19.1状态落 ./data;服务选择器联动;外部数据库;Redis1
P3dvwaDVWAghcr.io/digininja/dvwa:latest服务选择器联动;外部数据库;仅 amd641
P3emlogemlogemlog/emlog:pro-latest-php8.2-nginx状态落 ./data;服务选择器联动;外部数据库1
P3firefly-iiiFirefly IIIfireflyiii/core:version-6.4.2状态落 ./data;服务选择器联动;外部数据库1
P3flarumFlarumcrazymax/flarum:1.8.19状态落 ./data;服务选择器联动;外部数据库1
P3forgejoForgejo(变量镜像)状态落 ./data;服务选择器联动;外部数据库;多端口×22
P3ghostGhostghost:6.69.0状态落 ./data;服务选择器联动;外部数据库1
P3keycloakKeycloakkeycloak/keycloak:26.8.0服务选择器联动;外部数据库1
P3langflowLangflowlangflowai/langflow:1.12.5状态落 ./data;服务选择器联动;外部数据库1
P3logtoLogtosvhd/logto:1.44.0服务选择器联动;外部数据库;多端口×21
P3mattermostMattermostmattermost/mattermost-team-edition:11.11.1状态落 ./data;服务选择器联动;外部数据库;多端口×31
P3metabaseMetabasemetabase/metabase:v0.64.1状态落 ./data;服务选择器联动;外部数据库;仅 amd641
P3minifluxMinifluxminiflux/miniflux:2.3.3服务选择器联动;外部数据库1
P3mliev-dwz木雷短网址docker.cnb.cool/mliev/dwz/dwz-server:v2.24.0状态落 ./data;服务选择器联动;外部数据库;Redis1
P3mongo-expressmongo-expressmongo-express:1.0.2-20服务选择器联动;外部数据库1
P3nocobaseNocoBasenocobase/nocobase:2.2.21状态落 ./data;服务选择器联动;外部数据库1
P3nocodbNocoDBnocodb/nocodb:0.301.5状态落 ./data;服务选择器联动;外部数据库1
P3odooOdooodoo:18.0状态落 ./data;服务选择器联动;外部数据库2
P3photoprismPhotoPrismphotoprism/photoprism:251130-ce状态落 ./data;服务选择器联动;外部数据库1
P3plankaPlankaghcr.io/plankanban/planka:2.2.1状态落 ./data;服务选择器联动;外部数据库1
P3redis-commanderRedis-Commanderrediscommander/redis-commander:latest服务选择器联动;外部数据库;Redis;仅 amd641
P3roundcubeRoundcuberoundcube/roundcubemail:1.7.4-apache状态落 ./data;服务选择器联动;外部数据库1
P3rsshubRSSHubdiygod/rsshub:chromium-bundled-2026-04-19服务选择器联动;Redis1
P3sonarqubeSonarQubesonarqube:10.7.0-community状态落 ./data;服务选择器联动;外部数据库3
P3sub2apiSub2APIweishaw/sub2api:0.2.14状态落 ./data;服务选择器联动;外部数据库;Redis1
P3tailchatTailchatmoonrailgun/tailchat:1.11.18服务选择器联动;外部数据库;Redis;多容器×21
P3teableTeableghcr.io/teableio/teable:latest状态落 ./data;服务选择器联动;外部数据库;Redis1
P3teamspeakTeamSpeakteamspeak:3.13.8状态落 ./data;服务选择器联动;外部数据库;多端口×3;仅 amd641
P3twentyTwentytwentycrm/twenty:v2.45.6状态落 ./data;服务选择器联动;外部数据库;Redis;多容器×21
P3typechoTypechojoyqi/typecho:1.3.0-php8.2-apache状态落 ./data;服务选择器联动;外部数据库1
P3vexdbVexDBshuzhiyinhang/vexdb:3.0.0.28146状态落 ./data;外部数据库1
P3wikijsWiki.jsrequarks/wiki:2.5.316服务选择器联动;外部数据库1
P3yourlsYOURLSyourls:1.10.6状态落 ./data;服务选择器联动;外部数据库1

T4 高风险待确认(33 个) ​

需要 docker.sock、privileged、host 网络、cap_add 或设备直通,超出默认权限模型。

优先级上游应用展示名主镜像关键改造点上游版本数
P1home-assistantHome Assistanthomeassistant/home-assistant:2026.10.0状态落 ./data;host 网络;cap_add1
P1ddns-goddns-gojeessy/ddns-go:v6.17.7状态落 ./data;host 网络1
P2metersphereMeterSpheremetersphere/metersphere-ce-allinone:v3.6.9-lts状态落 ./data;privileged1
P2jumpserverJumpServerjumpserver/jms_all:v5.0.0状态落 ./data;服务选择器联动;外部数据库;Redis;多端口×2;privileged1
P2frpcfrp 客户端snowdreamtech/frpc:0.71.0-alpine状态落 ./data;host 网络;cap_add;设备直通1
P2frpsfrp 服务端snowdreamtech/frps:0.71.0-alpine状态落 ./data;host 网络1
P3act_runnerAct Runnergitea/act_runner:0.6.1状态落 ./data;docker.sock1
P3arcadiaArcadiasupermanito/arcadia:1.1.0状态落 ./data;cap_add1
P3caddyCaddycaddy:2.11.7状态落 ./data;host 网络;cap_add1
P3dockgeDockgelouislam/dockge:1.5.0状态落 ./data;docker.sock1
P3docmostDocmostdocmost/docmost:0.96.0状态落 ./data;服务选择器联动;外部数据库;Redis;env_file1
P3easytierEasyTiereasytier/easytier:v2.7.0状态落 ./data;privileged;host 网络1
P3forgejo-runnerForgejo Actions Runnercode.forgejo.org/forgejo/runner:13.2.0状态落 ./data;多容器×2;docker.sock;privileged1
P3gitlabGitLabgitlab/gitlab-ce:19.4.1-ce.0状态落 ./data;多端口×2;cap_add1
P3harnessHarnessharness/harness:3.3.0状态落 ./data;多端口×2;docker.sock1
P3homepageHomepageghcr.io/gethomepage/homepage:v2.4.0状态落 ./data;docker.sock1
P3jenkinsJenkinsjenkins/jenkins:2.580.1-lts状态落 ./data;docker.sock;privileged1
P3kubepiKubePi1panel/kubepi:v2.0.3状态落 ./data;privileged1
P3mailserverMailserverghcr.io/docker-mailserver/docker-mailserver:16.0.1状态落 ./data;多端口×5;env_file1
P3mcsmanager-daemonMCSManagergithubyumao/mcsmanager-daemon:latest状态落 ./data;docker.sock1
P3netdataNetdatanetdata/netdata:v2.12.0状态落 ./data;docker.sock;cap_add1
P3npcNPCyisier1/npc:v0.26.35host 网络1
P3npsNPSyisier1/nps:v0.26.35状态落 ./data;host 网络1
P3onedevOneDev1dev/server:16.8.6状态落 ./data;多端口×2;docker.sock1
P3openvpnOpenVPNopenvpn/openvpn-as:latest状态落 ./data;多端口×3;cap_add1
P3outlineOutlineoutlinewiki/outline:1.10.1状态落 ./data;服务选择器联动;外部数据库;Redis;env_file1
P3portainer-cePortainer-CEportainer/portainer-ce:2.45.2-alpine状态落 ./data;多端口×2;docker.sock1
P3vllmvLLM(变量镜像)状态落 ./data;privileged;host 网络;设备直通6
P3watchtowerwatchtowercontainrrr/watchtowerdocker.sock1
P3windowsWindowsdockurr/windows:6.06状态落 ./data;cap_add;设备直通1
P3woodpeckerWoodpecker CIwoodpeckerci/woodpecker-server:v3.19.0-alpine状态落 ./data;多容器×2;docker.sock1
P3zabbix-xinchuang-editionZabbix 信创版zabbix/zabbix-server-mysql:ubuntu-7.0.27状态落 ./data;服务选择器联动;外部数据库;多容器×7;privileged1
P3zitadelZITADELghcr.io/zitadel/zitadel:v2.71.13状态落 ./data;服务选择器联动;外部数据库;env_file3

T3 运行环境型(12 个) ​

语言运行时与 Web 服务器,与 fnOS install_dep_apps 依赖模型不兼容。

优先级上游应用展示名主镜像关键改造点上游版本数
P1dotnet.NET(变量镜像)状态落 ./data5
P1pythonPython(变量镜像)状态落 ./data5
P1goGo(变量镜像)状态落 ./data6
P1nodeNode.js(变量镜像)状态落 ./data9
P1javaJava(变量镜像)状态落 ./data6
P1php7PHP 7(变量镜像)状态落 ./data5
P1php8PHP 8(变量镜像)状态落 ./data5
P1phpPHP(变量镜像)状态落 ./data;cap_add;镜像构建3
P2openrestyOpenResty1panel/openresty:1.21.4.3-3-3-focal状态落 ./data;host 网络;镜像构建3
P3openlitespeedOpenLiteSpeedlitespeedtech/openlitespeed:1.8.1-lsphp74状态落 ./data;多端口×4;仅 amd642
P3php5PHP 5(变量镜像)状态落 ./data;仅 amd643
P3uuwafuuWAFuusec/waf:7.2.5状态落 ./data;外部数据库;多端口×3;多容器×2;仅 amd641

T3 能力重复(14 个) ​

数据库与缓存,与 fnOS 已有中间件应用能力重复。

优先级上游应用展示名主镜像关键改造点上游版本数
P1redis-clusterRedis-Clusterbitnamilegacy/redis:6.2状态落 ./data;Redis6
P1postgresql-clusterPostgreSQL-Clusterbitnamilegacy/postgresql:13状态落 ./data;外部数据库10
P1mysql-clusterMySQL-Clusterbitnamilegacy/mysql:5.7状态落 ./data;外部数据库6
P1mariadbMariaDBmariadb:10.11.19状态落 ./data;外部数据库4
P1postgresqlPostgreSQLpostgres:12.22-alpine状态落 ./data;外部数据库7
P2redisRedisredis:6.2.24状态落 ./data3
P2mysqlMySQLmysql:5.6.51状态落 ./data;外部数据库4
P3greatsqlGreatSQLgreatsql/greatsql:8.0.32-27状态落 ./data;外部数据库1
P3keydbKeyDB(变量镜像)状态落 ./data;仅 amd641
P3mongodbMongoDBmongo:6.0.28状态落 ./data;外部数据库3
P3mssqlMicrosoft SQL Servermcr.microsoft.com/mssql/server:2017-latest状态落 ./data;仅 amd644
P3neo4jNeo4jneo4j:5.26.31状态落 ./data;多端口×21
P3oceanbaseOceanBaseoceanbase/oceanbase-ce:4.4.2-lts状态落 ./data1
P3valkeyValkeyvalkey/valkey:7.2.14状态落 ./data4

T3 中间件型(20 个) ​

中间件与监控,通常作为依赖被引用而非独立上架。

优先级上游应用展示名主镜像关键改造点上游版本数
P3clickhouseClickHouseclickhouse/clickhouse-server:26.9.12-alpine状态落 ./data;多端口×21
P3consulConsulhashicorp/consul:2.0.4状态落 ./data;多端口×21
P3docker-registryDocker Registryregistry:3.1.2状态落 ./data1
P3elasticsearchElasticsearchelasticsearch:7.17.28状态落 ./data3
P3emqxEMQXemqx/emqx:6.3.1状态落 ./data;多端口×51
P3grafanaGrafanagrafana/grafana:12.4.12状态落 ./data2
P3influxdbInfluxDBinfluxdb:2.9.1状态落 ./data1
P3jaegerJaegerjaegertracing/all-in-one:1.76.0仅命名/网络差异1
P3kafkaKafkabitnamilegacy/kafka:4.0.0仅命名/网络差异1
P3logstashLogstashlogstash:8.19.23状态落 ./data;多端口×22
P3meilisearchMeiliSearchgetmeili/meilisearch:v1.54.3状态落 ./data1
P3minioMinIOminio/minio:RELEASE.2025-04-22T22-12-26Z状态落 ./data;多端口×22
P3nacosNacosnacos/nacos-server:v3.2.4状态落 ./data;多端口×31
P3node-exporterNode Exporterprom/node-exporter:v1.12.1仅命名/网络差异1
P3prometheusPrometheusprom/prometheus:v3.15.0状态落 ./data1
P3rabbitmqRabbitMQrabbitmq:4.3.6-management-alpine状态落 ./data;多端口×21
P3starrocksStarRocksstarrocks/allin1-ubuntu:4.1.6状态落 ./data;多端口×31
P3tdengineTDenginetdengine/tsdb:3.4.2.8状态落 ./data;多端口×81
P3typesenseTypesensetypesense/typesense:30.2状态落 ./data1
P3vectorVectortimberio/vector:0.59.0-debian状态落 ./data1

维护方式 ​

本清单由静态扫描生成,扫描口径见「盘点口径」。上游应用新增版本或新增应用后,需要重新扫描并更新计数;不手工维护单个应用的分级。

重新盘点时至少核对:应用总数、1panel-network 使用数、./ 相对挂载数、外部命名卷数、多版本应用数,以及本清单各分级的数量之和是否等于应用总数(14 + 125 + 47 + 46 + 33 = 265)。

分级判定条件的互斥性与复算 ​

「分级总览」的七条判定按第一个命中的条件决定级别,是有序的互斥级联:一条命中即终止,因此任一应用只属于一个级别,不会同时落入两级。总量守恒(14 + 125 + 47 + 46 + 33 = 265)正是互斥性的检验:只要出现重复归属或遗漏,五个数之和就不等于 265。

复算时按同一顺序逐条求值即可,不需要人工判断:

步骤判定命中级别
1应用键属于运行环境集合(php/php5/php7/php8/node/python/go/java/dotnet/openresty/openlitespeed/uuwaf)T3 运行环境
2应用键属于数据库/缓存集合(mysql/mariadb/postgresql/redis/mongodb/mssql/neo4j/oceanbase/greatsql/keydb/valkey 及 cluster)T3 能力重复
3应用键属于中间件/监控集合(kafka/rabbitmq/minio/elasticsearch/clickhouse/nacos/consul/prometheus/grafana/jaeger 等)T3 中间件
4任一版本目录的 compose 命中 docker.sock、privileged: true、network_mode: host、cap_add、devices:、build:、env_fileT4
5多容器、或多端口、或使用 PANEL_DB_* / DBHUB_DB_* / PANEL_REDIS_*、或 data.yml 的 formFields 含 type: apps/service 联动字段T2
6任一版本目录的 compose 存在 ./ 相对挂载(引号无关)或外部命名卷(external: true),或 architectures 未声明 arm64T1
7以上均不命中(单容器、单端口、无状态或仅命名卷)T0

第 5、6 步有两个容易踩的坑,判定口径必须按下面执行:

  • 外部数据库只认连接变量:PANEL_DB_* 与 DBHUB_DB_* 才代表「需要用户提供外部数据库实例」。容器内自带的 SQLite(DB_DATABASE=...sqlite、*_DATABASE_DRIVER: sqlite、GOTIFY_DATABASE_DIALECT=sqlite3)与镜像内置数据库(MYSQL_INTERNAL=true)不算外部依赖,按状态落盘归 T1。反面教训:按「env 里出现 DATABASE 字样」判定会把 2fauth、ai-gateway、gotify、zentao 误升到 T2;只看 PANEL_DB_* 又会漏掉用 DBHUB_DB_* 的 dbhub,使其误留 T0。
  • 相对挂载判定引号无关:使用正则 ^\s*-\s*['"]?\./(行首 - 后允许可选引号再接 ./)。只匹配裸写法会漏掉 newsnow、openldap 的单引号挂载 './data:...',使其错留在 T0。

1—3 步按应用键匹配,与 compose 内容无关,只要集合定义不变,结果稳定;4—7 步只读 appstore/apps/<app>/*/docker-compose.yml 与 data.yml,输入是仓库内的静态文件,因此同一份 compose 重新跑一遍扫描,应得到完全相同的分级结果。

扫描实现约定(复算时保持与首次盘点一致):

  • 扫描范围:appstore/apps/ 下一级目录为应用;遍历该应用下每个版本子目录,任一版本命中即该应用命中(不是「全部版本命中」)。
  • 读取位置必须区分两类字段(这是本轮踩过的坑):formFields 只在版本级 appstore/apps/<app>/<version>/data.yml 里,顶层 appstore/apps/<app>/data.yml 的 additionalProperties 只有展示元数据,永远不含 formFields;而 architectures 顶层和版本级都可能出现,两处都要读并取并集。把 formFields 误按顶层读,会得到「265 个应用全部无表单」的错误结论。
  • 多版本取值:formFields 按任一版本命中即计入(并集)。实测「任一版本」「全部版本」「第一个版本」三种取法结果均为 259,因为没有任何应用在不同版本之间出现 formFields 有/无的差异,所以取法不影响计数。
  • YAML 解析容错:data.yml 存在制表符缩进(oceanbase、jupyter-notebook),YAML 严格解析会失败;扫描器需先把制表符展开为空格再解析。这两个应用确实有 formFields,容错后「带向导表单」为 259 个;漏掉容错会误算为 257。
  • 判定用值与展示值:清单表里的「主镜像」取该应用排序后第一个版本目录的 image,「上游版本数」取该目录下的版本子目录数;分级判定与展示值无关,只依赖上面的七条。
  • 环境集合:1—3 步的应用键集合是本清单自定义的口径,不是上游 tags 字段,新增应用时需要先判断是否应并入集合。

复算自检 ​

按上述七条与两条判定口径复算 265 个应用,结果应与本清单完全一致,无残留偏差:

text
T0 = 14   T1 = 98   T2 = 74   T3 = 46   T4 = 33
合计 = 14 + 125 + 47 + 46 + 33 = 265 ✓

复算时重点核对两处曾经出错的判据,它们是口径正确性的探针:

探针应用正确归属判据写错时的错误结果
dbhubT2(用 DBHUB_DB_*)只看 PANEL_DB_* → 误判 T0
newsnow、openldapT1(单引号 ./data 挂载)只匹配裸写法 → 误判 T0

关于「相对挂载」计数的两种口径:盘点口径表的 223 用「行首 - 正则」,它会把 env_file 内的相对路径一并计入(当前多算 zitadel 一个,单向 +1,不存在反向漏报);若改用「仅解析 volumes: 挂载」的严格口径则为 222。两种口径下七步级联的分级结果完全相同,因为受影响的 zitadel、mailserver、outline、docmost 都已被更靠前的 env_file 条件判入 T4,不会走到第 6 步。复算时无论采用哪种口径,分级数字都应是 14 / 98 / 74 / 46 / 33;只有「相对挂载」这一个统计值会随之在 222 与 223 之间变化,选 223 时需按上表注明它含 1 个 env_file 命中项。 | 2fauth、ai-gateway、gotify、zentao | T1(容器内自带数据库) | 见 DATABASE 就算外部库 → 误判 T2 |

已知遗留 ​

项说明处理
apps/fn-mysql_v8/ 目录名含下划线,而 docs/apps/fn-mysql-v8.md、docs/public/icons/fn-mysql-v8.png 用连字符HEAD 中既存的历史命名,早于本清单的命名规约(fn-<app> 全小写、连字符分隔、下划线归一为连字符)有意保留不改:appname 是已发布应用的升级主键,改目录名与 manifest.appname 会断掉已安装用户的升级路径。新批次一律用连字符(如 act_runner → fn-act-runner、obsidian_livesync → fn-obsidian-livesync),既存应用不追溯改名

分类维度的已知局限(2026-10-10 登记):T1/T2 的分级判据只检查「是否存在 ./ 相对挂载」与「是否依赖外部数据库」,未区分「应用内部状态」与「用户可见数据」。后果是部分媒体库/网盘类应用被划入 T1,但其数据目录实际是用户要直接管理的文件,应属 D 组口径(需在 config/resource 声明 data-share)。

已识别的受影响应用:zfile(在线网盘)、komga(漫画服务器)、以及已单独划入 D 组的 navidrome、calibre-web、audiobookshelf、music-tag-web、xiaomusic。

处理方式:不返工已完成的转换(本轮均按 TRIM_PKGVAR 实现、功能可用),但逐个登记为「应补 data-share」,在 D 组批次统一补齐 config/resource 声明与卸载向导语义。补齐前需真机验证用户文件在 data-share 下的读写权限。

变更记录 ​

日期变更
2026-10-09首次盘点,覆盖上游提交 3b142d2 的全部 265 个应用。
2026-10-09修正分级口径:cap_add 归入 T4 触发条件,arcadia、gitlab、openvpn 由 T1/T2 调整到 T4;T4 由 30 增至 33,T1 由 93 调整为 92,T2 由 79 调整为 77。
2026-10-09补充「维护方式」的互斥性与复算说明:登记级联求值表、扫描实现约定,以及 6 处级联复算偏差(见「已知偏差」)。
2026-10-09订正分级与计数(D-02):./ 相对挂载判定改为引号无关,补回被漏判的 newsnow、openldap;外部数据库判据收紧为 PANEL_DB_*/DBHUB_DB_*,2fauth、ai-gateway、gotify、zentao(容器内自带数据库)由 T2 回 T1,dbhub 由 T0 移入 T2。T0 17→14、T1 92→98、T2 77→74,守恒 14+98+74+46+33=265;formFields 257→259、./ 挂载 221→223。「已知偏差」章节收敛为 0 项,改为「复算自检」。
2026-10-09订正「相对挂载 223」的口径表述:写死判定正则为行首 - 后接可选引号再接 ./(含 env_file 内联项),构成 = 真实 ./ volume 挂载 222 个 + 1 个仅因 env_file 相对路径而命中的 zitadel = 223(单向 +1,无反向漏报);并注明该值不影响分级(222/223 双口径跑完整级联结果完全一致,14/98/74/46/33,无差异应用)。
2026-10-10补登 llama-cpp 的挂载事实:上游有 ${MODEL_DIR}:/models(MODEL_DIR 默认 ./models、edit: true),原「仅命名/网络差异」表述不完整。分级不变(仍 T0,单容器单端口),但转换时需加 MODEL_PATH 向导字段与只读挂载。
2026-10-10写死 formFields 的读取位置口径:只在版本级 appstore/apps/<app>/<version>/data.yml,顶层 data.yml 永不包含(实测 265 个顶层文件命中 0,读错位置会误得「全部无表单」);多版本按并集取,但实测并集/全部/首个三种取法均得 259(无应用跨版本出现有/无差异)。复算确认 259 在该口径下成立,数字不变。同时新增「已知遗留」章节(登记 fn-mysql_v8 下划线命名的历史遗留,有意保留不改)。
2026-10-10登记分类维度局限:T1/T2 判据只看挂载形态,未区分「应用内部状态」与「用户可见数据」,致 zfile/komga 等媒体类应用错落 T1(应属 D 组)。不返工,逐个登记待补 data-share。同时确立多版本应用的选版口径 = 取清单登记版本(依据:本清单为唯一权威来源;要改版本须改清单,不在实现中偏离)。
2026-10-14订正两处:① umami 版本登记由「(变量镜像)」改为 3.4.0(2.20.2 镜像含 ${PANEL_DB_TYPE} 插值不可复现,3.4.0 是唯一无插值版本);② sqlbot 由 T2 移入 T1(实测 PANEL_DB_*/DBHUB_DB_* 命中 0,上游为容器内自带 PostgreSQL)。T1 计数 +1、T2 计数 −1。
2026-10-14分级订正(D-03):26 个应用由 T2 移入 T1。判据从「只看 PANEL_DB_*/DBHUB_DB_*」扩到广义外部依赖扫描——forgejo(FORGEJO__database__*)、gitea(GITEA__database__*)、keycloak(KC_DB_*) 都不吃 1Panel 命名,只按前缀扫会误判;rsshub 无数据库但依赖外部 Redis,保留 T2。T1 99→125、T2 73→47。
2026-10-16同步两条用户裁决对分级的影响:① 镜像标签口径改为「1panel 用什么就用什么」——原先因可变标签(:latest/:master 等)被列为「不可转换」的应用全部解除阻塞,本清单的「可变标签」不再构成阻塞依据(详见规约)。② 运行身份「优先非 root」——PUID=0 与镜像层默认 root 不再阻塞,改变量或加 user: 即可。受此影响可转换的应用:openlist、gsmanager、neko、excalidraw、huginn、jsonhero、jupyter-notebook、koodo-reader、lsky-pro、mcsmanager-web、komga(其中 8 个已交付)。
2026-10-19同步分级总览与交付状态:① 总览表 T1/T2 数量由过期的 98/74 订正为 125/47(对应 2026-10-14 的 D-03 订正,当时只改了章节标题未改总览表);② 合计行「去掉同名后」由 259 改为 265,并补「可转换 186 / 已交付 185」;③ 加「数字口径」说明,解释为何两列现在一致。

基于 VitePress 构建