FNNAS fnOS FPK Application Development
Paste the following prompt into your AI chat to install this skill:
Please follow https://skillhub.cn/install/skillhub.md to install @user_15292d5a/yjkj-fn-fpk.
About this skill
Problem
Building fnOS FPK apps is not like deploying a regular Linux service. An app must satisfy constraints across manifest, config/privilege, config/resource, app/ui/config, and cmd/ lifecycle scripts. Common failures include packaging with fnpack locally but missing entry points after install, ports not following wizard input, settings.conf being overwritten by the system, unclear data directory permissions, or Docker apps missing compose status checks. This skill organizes the official rules into a practical development workflow.
How It Works
The workflow centers on the FPK package structure:
- Create Native or Docker apps with fnpack, then verify x86_64 requirements, app version, and manifest fields.
- Define the runtime identity in config/privilege, and declare capabilities such as data-share, usr-local-linker, or docker-project in config/resource.
- Configure desktop, file context menu, CGI, or unified gateway entry points in app/ui/config, paying attention to port, url, protocol, allUsers, and dynamic variables.
- Implement start, stop, and status checks in cmd/main, and use lifecycle hooks such as install_callback and config_callback to handle wizard input, port persistence, and configuration migration.
- For Docker apps, place docker-compose.yaml at the declared path and let the system manage compose lifecycle.
Boundaries
This skill is based on fnOS FPK documentation and is intended for third-party Native or Docker app development. Root-privileged apps face publishing restrictions; settings.conf may be rewritten by the system, so apps should read configuration and validate paths at runtime; the unified gateway applies to fnOS V1.1.3100+, so verify the system version and gateway fields before integration.
Use Cases
- Build a Native app on FNNAS, using fnpack to create the project and configure manifest and entry points.
- Configure app permissions and shared directories by writing config/privilege and config/resource.
- Debug why an installed app does not use the wizard-updated port, checking settings.conf, config_callback, and cmd/main.
- Develop a Docker app by declaring docker-project, placing docker-compose.yaml, and implementing status checks.
Best For
- Backend engineers maintaining private FNNAS apps who need to package Node.js or Python services as fnOS FPK.
- In-house tool platform developers who need to configure entry points, permissions, shared directories, and lifecycle scripts.
- Team engineers shipping Docker apps who need to handle docker-project declarations and compose status checks.
- System engineers debugging fnOS port or path issues who need to understand settings.conf and lifecycle callbacks.
Related Skills
Automatically indexes Gradle-cached AAR/JAR dependency classes and returns library coordinates, versions, and public APIs by fully qualified name, using only the Python standard library.
Codifies AMT and YourMT3 training conventions, script patterns, hyperparameters, precision, checkpoints, and NaN safeguards.
Retrieve relevant chunks from a customer-managed PKM dataset by dataset_id and return concise, source-annotated answers.
Convert PRDs, user stories, or functional specs into prioritized test-point checklists covering functional, business-rule, boundary, exception, and non-functional dimensions.