feat(fnos): add FnOS NAS app packaging (Docker + native .fpk) - #407
Merged
Conversation
…talls Adds the packaging tree to build Octop as a FnOS app center package (.fpk): - fnos/: Docker-deployable FPK (thin wrapper that runs the Octop image via docker-compose on the NAS) - fnos-native/: native FPK that runs Octop directly on the FnOS host with the system Python 3.12 runtime (no Docker required) - scripts/build-fpk.sh: generic FPK build helper using the official fnpack CLI (injects the version from pyproject.toml into the manifest) Both packages share the same app version as pyproject.toml. Container image name is referenced as ghcr.io/TencentCloud/octop:latest — maintainers can republish under their own namespace; the per-repo CI (image build + release workflow) is intentionally left out of this PR.
…3 with docs - The previous default password 'octop' does not satisfy the password policy (>=8 chars incl. letters and digits) enforced by 'octop init', so the bootstrap admin could not be created - Switch the default to Octop123, identical to the official Docker image - Manifest install text now prints the initial account/password and tells users to change it after first login - fnos/README.md gains a 'First use' section (credentials table + change password guidance) so users never need to dig into data directories
Provides a complete CI template that builds the Octop Docker image, the Docker .fpk and the native .fpk, then publishes GitHub releases (fixed version + rolling latest): - Trigger: workflow_dispatch only, so it never auto-runs on upstream - Image namespace referenced as ghcr.io/TencentCloud/octop (placeholder; fork maintainers replace with their own) - Iteration numbering, changelog generation (install-first, no-merges, capped at 30 entries) and rolling release management included
… tighten process kill Addresses review feedback: - Extract find_python312 / fix_ownership_and_perms / free_octop_ports into a single shared library scripts/fnos/common.sh (injected into both packages' cmd/common.sh by build-fpk.sh at package time) instead of duplicating them across 7 docker/native lifecycle scripts - Tighten the leftover-process cleanup: only kill processes under this install dir (TRIM_APPDEST), no more broad 'pgrep -f octop' that could kill other users' / other installs' processes - Root README: add an 'FnOS Installation' section pointing to fnos/README.md and noting the initial credentials + the TencentCloud#406 dependency for non-root CLI installs
…und for dark/light themes
jubaoliang
added a commit
that referenced
this pull request
Aug 25, 2026
#421) * fix(tests): align subagent catalog division count with bundled library The bundled subagent catalog now loads 19 divisions (272 agents), but two tests still hard-coded an expected count of 16. Update the assertions so the pre-commit suite is green. * refactor(fnos): split fnos packaging into docker/ and native/ variants Restructure the FnOS package layout so the Docker build and the native installer live under separate directories (fnos/docker and fnos/native) instead of a single fnos/ tree plus a parallel fnos-native/. Update the FPK build workflow, build-fpk.sh and fnos/common.sh to source from the new paths, and refresh fnos/README.md accordingly. Follow-up to PR #407. --------- Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Contributor
Author
|
说明:为方便中文团队沟通,本 PR 描述已更新为中文。后续讨论请直接使用中文。 |
Contributor
Author
镜像名已修正(修复 buildx 大写 tag 报错)收到反馈:
提交: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
为 FnOS(飞牛 NAS)应用中心增加打包支持,Octop 可以 Docker 容器应用和原生(非 Docker)应用两种方式安装。两种
.fpk包共享pyproject.toml的版本号。包含内容
fnos/— Docker 部署版 FPK 树:薄壳包装,通过docker-compose在 NAS 上运行 Octop 容器镜像(镜像名ghcr.io/TencentCloud/octop:latest为占位,维护者可发布到自己的命名空间)。fnos-native/— 原生版 FPK 树:使用飞牛系统 Python 3.12 直接运行,无需 Docker。scripts/build-fpk.sh— 通用 FPK 构建脚本,使用官方fnpackCLI(把pyproject.toml版本注入 manifest)。.github/workflows/fnos-build-fpk.yml— 完整打包流水线模板:构建 Docker 镜像、Docker.fpk、原生.fpk,并发布 GitHub release(固定版本 + 滚动latest)。仅workflow_dispatch手动触发,不会在上游仓库自动运行;fork 维护者替换镜像命名空间后可按需启用 push 触发。首次使用体验
初始管理员凭据为
admin/Octop123(与官方 Docker 镜像默认一致,满足octop init的密码策略)。manifest 安装文案和fnos/README.md明确写出凭据并提示首次登录后修改密码——用户无需翻数据目录找密码。说明
ghcr.io/TencentCloud/octop是占位;各 fork 的 CI 由维护者自行接线。.fpk在 FnOS 上构建安装成功,Octop 0.9.26 运行正常(含企微/飞书连接器)。非 root CLI 安装的配套修复见 fix(connectors): fall back to user-level npm prefix when global dir not writable #406。