Files
MyAiDesk/nomifun-tauri/docs/reference/faq.md
T
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

115 lines
8.4 KiB
Markdown

# FAQ
Honest, short answers to questions that come up over and over. For deeper explanations follow the links.
## What is the difference between NomiFun and nomifun?
**NomiFun** is the open-source project and the user-facing product name: the desktop app, WebUI surface, codebase, workspace, GitHub repository, and brand all use this spelling.
In this codebase the lowercase form `nomifun` shows up only as a literal technical identifier — package names (`nomifun-app`, `nomifun-web`, …), the desktop bundle id `com.nomifun.desktop`, environment variables prefixed `NOMIFUN_`, repository directories. Anywhere it is shown to a human as the app or project brand, use "NomiFun".
## Is there a hosted version?
No. NomiFun is a self-host project. There is no SaaS instance, no managed login at a `nomifun.com` URL, no central account system to sign up for. The two ways to use it are:
- Install the desktop app and run it locally — `nomifun-desktop`.
- Deploy `nomifun-web` on a server you control. See [Web Server Deployment](../guides/web-server-deployment.md).
You can expose your desktop install temporarily to other devices (your phone, your laptop) using [WebUI Remote Access](../guides/webui-remote-access.md), but that is a per-instance feature, not a hosted service.
## Does the desktop app require login?
No. The desktop WebView is trusted through a per-boot local trust token injected
by the Tauri shell. There is no login screen for the desktop window, but the
embedded backend is not a blanket no-auth localhost server.
The web host is the opposite: it requires login by default. Mixing the two is
intentional — the desktop shell can trust its own WebView, while a
network-reachable host needs an actual auth boundary.
## Where is my data stored?
In the **data directory**. Its location depends on which host you are running:
- **Desktop**: defaults to the **per-user application-data dir**`%LOCALAPPDATA%\NomiFun\Nomi` on Windows, `~/Library/Application Support/NomiFun/Nomi` on macOS, `$XDG_DATA_HOME/NomiFun/Nomi` (usually `~/.local/share/NomiFun/Nomi`) on Linux. Set `NOMIFUN_DATA_DIR=<absolute path>` and the dir becomes `$NOMIFUN_DATA_DIR/Nomi` (unchanged override semantics). Older builds stored data under `<system temp>/nomifun-data/Nomi`; if such an install exists it is relocated to the new location automatically on launch, and the old dir is kept as a backup.
- **Web (`nomifun-web`)**: whatever you pass to `--data-dir` (or `NOMIFUN_DATA_DIR`), taken literally — no `/Nomi` suffix. With neither set it defaults to the **same per-user dir as the desktop app**, so a dev `bun run serve:web` and the installed app see one shared state.
- **Docker**: the named volume defined in the compose file (`nomifun-data` mounted at `/data`).
The data directory contains the SQLite database (`nomifun-backend.db*`), per-agent state, the Bun cache, log files, and any embedded extension data. Back it up like a database. Because every host defaults to the same directory, the backend guards it with an exclusive `server.lock` — a second backend instance on the same data dir fails fast instead of corrupting state.
For the full lifecycle and `work-dir` semantics, see [Configuration Reference](./configuration.md#data-directory-and-work-directory-semantics).
## Which agents and providers are supported?
The "Agent CLIs" NomiFun runs as ACP (Agent Client Protocol) backends include `claude`, `codex`, `gemini`, `nomi`, `codebuddy`, `qwen`, and `opencode`. Each one is a separate CLI you install on your system; NomiFun discovers them on `PATH` and the registry hydrates from there. Run `nomicore doctor` to see what your install detects.
For raw model access (e.g. provider keys, custom OpenAI-compatible endpoints), the system supports configurable providers via `/api/providers/*` and the in-app settings UI. You bring the API keys; NomiFun stores them encrypted at rest in the data directory.
There is no built-in agent that calls out to a hosted NomiFun endpoint — there is no such endpoint. Every agent / provider you configure is something you control.
## Is NomiFun really local-only?
The application logic and your data are local. The agents you connect to may not be — most CLI agents make outbound calls to their respective providers (Anthropic, OpenAI, Google, …). That is between you and the agent.
What NomiFun itself does over the network:
- Optional update checks (system info / check-update endpoint).
- Extension marketplace (`/api/hub/*`) — only if you actively use it.
- Whatever your configured agents and providers do — typically API calls to LLM providers.
There is no telemetry pipeline, no analytics SDK, no `SENTRY_DSN` integration in the binary. The backend does not phone home on its own.
## What about extensions and skills — what runs them?
Extensions (themes, assistants, channel plugins, settings tabs) are loaded by `nomifun-extension` from the data directory. Skills are bundles of prompts/instructions resolved into the agent's context per-conversation. Both are local files under your data dir; the marketplace flow simply downloads them into that directory.
The agent CLI binaries are not extensions — they are external CLIs that NomiFun launches as child processes via the ACP protocol.
## Can I run agents on a different machine from the UI?
Yes — that is exactly what `nomifun-web` is for. Deploy the web host on the machine where you want the agents (and their CLIs, and their network access) to live, and access the SPA from any browser. See [Web Server Deployment](../guides/web-server-deployment.md).
For lighter-weight remote access from a phone or another laptop without spinning up a separate server, [WebUI Remote Access](../guides/webui-remote-access.md) exposes an existing desktop install over the LAN.
## What is the licence?
**Apache-2.0**, declared in the workspace `Cargo.toml`. You can use, modify, redistribute, and bundle the code under the standard Apache-2.0 terms — including in commercial products — provided you keep the licence and notice intact.
## Are there prebuilt installers?
Not yet. Desktop bundles can be built locally, macOS Developer ID signing is
scripted through `bun run build:signed`, and updater artifacts can be generated
with `bun run build:updater`; there is not yet an official public release
channel or registry-backed installer feed. Until then, the supported install
paths are:
- **Desktop**: `bun install && bun run build:ui && cargo run -p nomifun-desktop` (or `cargo build --release -p nomifun-desktop`).
- **Server**: build from source (`cargo build --release -p nomifun-web`) or `docker compose up -d --build`.
When prebuilt installers ship, they will be linked from the project README and the [getting-started guide](../getting-started/).
## I lost my admin password
On `nomifun-web`, the in-band recovery flow is the local-only WebUI route (`POST /api/webui/reset-password`) — you can hit it from the same machine the server runs on, and it generates a fresh random password and prints it. From a remote machine you cannot recover the password through the API.
The fallback is to stop the server, edit the database directly (the `system_default_user.password_hash` column), and restart. The simplest reset is to set the hash to an empty string — the next boot then treats the install as needing first-run setup again, and the next visitor can claim the admin.
For desktop installs there is no password for the local WebView. WebUI remote
access has its own admin password because it is reachable from another browser.
## Is there a "single binary" build?
Yes for the server: `nomifun-web` is one statically-linked Rust binary plus the `ui/dist/` directory it serves. SQLite is statically linked, TLS uses rustls — there is no `libsqlite`, no `openssl` dependency at runtime. Build with `cargo build --release -p nomifun-web`.
The agent runtime (bun) is *not* embedded by default; install it system-wide or use the `NOMIFUN_EMBED_BUN=1` build flag to bundle it into the binary. See the [bun-on-PATH](../guides/web-server-deployment.md#bun-must-be-on-the-system-path) section.
The desktop shell also produces a single binary (`nomifun-desktop`), but for distribution you typically want the platform-native packaging via `bun run build` once installer signing is set up.
## See also
- [Configuration Reference](./configuration.md)
- [API Overview](./api-overview.md)
- [Troubleshooting](./troubleshooting.md)
- [Web Server Deployment](../guides/web-server-deployment.md)
- [Running NomiFun as a Desktop App](../guides/desktop-app.md)