You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f628a7d
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+29-10Lines changed: 29 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,21 +4,30 @@ This package runs the official [QVAC](https://qvac.tether.io/) CLI as a private,
4
4
5
5
The image includes QVAC's upstream worker and native Linux addons. The built-in configuration UI provides a searchable model library and manages QVAC settings without shell or File Manager access.
| CPU |`qvac.dnp.dappnode.eth`|`qvac.dappnode`| Does not request a GPU and runs on every DAppNode |
14
+
| GPU |`qvac-gpu.dnp.dappnode.eth`|`qvac-gpu.dappnode`| Reserves every GPU exposed by Docker's GPU/CDI runtime |
15
+
16
+
On either hostname, the configuration UI uses port `8080`, the OpenAI-compatible API uses `/v1` on port `11434`, and the interactive API documentation is at `/docs` on port `11434`.
12
17
13
18
## Defaults
14
19
15
-
- QVAC CLI: `0.11.0`
20
+
- QVAC CLI: `0.12.0`
16
21
- Model: `QWEN3_600M_INST_Q4`
17
22
- API alias: `qwen3-600m`
18
23
- Model cache: `/data/models`
19
24
- Configuration: `/data/config/qvac.config.json`
20
25
21
-
CPU inference is supported on Linux. The package does not request host GPU devices, so larger models and image generation can be slow. Model downloads, configuration, and backups persist in the `data` volume.
26
+
Model downloads, configuration, and backups persist in the `data` volume.
27
+
28
+
## CPU and GPU behavior
29
+
30
+
Docker treats a Compose GPU reservation as a hard requirement and fails before starting the container when no GPU vendor is available. The CPU package therefore omits that reservation. The GPU package requests every GPU through Docker's vendor-neutral `gpu` capability and requires a working AMD or NVIDIA container toolkit/CDI configuration. Both variants use the same image, which includes the Vulkan loader, Mesa Vulkan drivers, and `vulkaninfo`.
22
31
23
32
## Configuration ownership
24
33
@@ -28,17 +37,27 @@ The installation wizard is limited to settings that must exist before the packag
28
37
- Optional host mapping for the API port
29
38
- Data-volume location
30
39
31
-
After installation, use `http://qvac.dappnode:8080` for model selection, aliases, preload/default behavior, engine configuration, logging, download behavior, browser origins, JSON import/export, validation, and backup restore.
40
+
After installation, open port `8080` on your variant's hostname for model selection, aliases, preload/default behavior, engine configuration, logging, download behavior, browser origins, JSON import/export, validation, and backup restore.
32
41
33
42
## Development
34
43
35
-
Build and run locally without IPFS:
44
+
Build and run the CPU variant locally without IPFS:
Use `package_variants/gpu/docker-compose.yml` instead to test the GPU variant on a host where `docker run --rm --gpus all ubuntu:24.04 true` succeeds. CI and the release workflow build and publish both variants with the SDK's `--all-variants` option.
60
+
42
61
Use `make dev-tar` only when a Docker image tarball is needed for a DAppNode development upload.
Copy file name to clipboardExpand all lines: dappnode_package.json
+4-5Lines changed: 4 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,15 @@
1
1
{
2
-
"name": "qvac.dnp.dappnode.eth",
3
-
"version": "0.1.0",
4
2
"upstream": [
5
3
{
6
4
"repo": "tetherto/qvac",
7
-
"version": "0.11.0",
5
+
"version": "0.12.0",
8
6
"arg": "UPSTREAM_VERSION"
9
7
}
10
8
],
11
9
"shortDescription": "Private multimodal AI with OpenAI-compatible APIs",
12
-
"description": "Run the complete [QVAC](https://qvac.tether.io/) CLI locally on DAppNode as an OpenAI-compatible AI provider. QVAC keeps prompts and inference on your own hardware. Its HTTP server supports text generation, embeddings, RAG, image and video generation, transcription, text-to-speech, and audio translation when the corresponding models are configured.\n\nA built-in configuration UI includes a searchable model library, validates and backs up settings, and applies changes without shell access. The QVAC worker reloads independently, so the UI remains available while models download or start. The default configuration serves the compact `QWEN3_600M_INST_Q4` text-generation model as `qwen3-600m`. Downloaded models, custom configuration, and backups are stored in a persistent volume.\n\nThis image includes QVAC's upstream worker and all native Linux addons shipped by the CLI.\n\n- Configuration UI: `http://qvac.dappnode:8080`\n- API: `http://qvac.dappnode:11434/v1`\n- API documentation: `http://qvac.dappnode:11434/docs`\n- CPU inference works on Linux; 4 GB RAM and 5 GB free disk are the upstream minimum recommendations, while larger models require more resources.\n- Set an API key during installation if clients outside your trusted DAppNode network can reach the service.",
10
+
"description": "Run the complete [QVAC](https://qvac.tether.io/) CLI locally on DAppNode as an OpenAI-compatible AI provider. QVAC keeps prompts and inference on your own hardware. Its HTTP server supports text generation, embeddings, RAG, image and video generation, transcription, text-to-speech, and audio translation when the corresponding models are configured.\n\nA built-in configuration UI includes a searchable model library, validates and backs up settings, and applies changes without shell access. The QVAC worker reloads independently, so the UI remains available while models download or start. The default configuration serves the compact `QWEN3_600M_INST_Q4` text-generation model as `qwen3-600m`. Downloaded models, custom configuration, and backups are stored in a persistent volume.\n\nThis image includes QVAC's upstream worker and all native Linux addons shipped by the CLI. The default package does not reserve a GPU, so it installs and runs on CPU-only DAppNodes.\n\n- Configuration UI: `http://qvac.dappnode:8080`\n- API: `http://qvac.dappnode:11434/v1`\n- API documentation: `http://qvac.dappnode:11434/docs`\n- At least 4 GB RAM and 5 GB free disk are required for the default model; larger models require substantially more RAM and storage.\n- Set an API key during installation if clients outside your trusted DAppNode network can reach the service.",
13
11
"type": "service",
12
+
"mainService": "qvac",
14
13
"author": "DAppNode Association <admin@dappnode.io> (https://github.com/dappnode)",
15
14
"license": "Apache-2.0",
16
15
"categories": ["AI"],
@@ -40,6 +39,6 @@
40
39
}
41
40
],
42
41
"warnings": {
43
-
"onInstall": "Without an API key, QVAC is available without authentication to clients that can reach the DAppNode network. The configuration UI on port 8080 is administrative and should not be exposed publicly. The complete runtime image and configured model downloads can use many GB of storage. Large models may also require substantial RAM and take several minutes to load."
42
+
"onInstall": "This package runs on CPU-only DAppNodes. CPU inference can be slow, so start with the default compact model before selecting larger models. Without an API key, QVAC is available without authentication to clients that can reach the DAppNode network. The configuration UI on port 8080 is administrative and should not be exposed publicly. The complete runtime image and configured model downloads can use many GB of storage. Large models may also require substantial RAM and take several minutes to load."
- Interactive API documentation: `http://qvac.dappnode:11434/docs`
5
+
- CPU package: `qvac.dappnode`
6
+
- GPU package: `qvac-gpu.dappnode`
7
+
8
+
On the hostname for your installed package, the configuration UI uses port `8080`, the OpenAI-compatible API uses `/v1` on port `11434`, and the interactive API documentation is at `/docs` on port `11434`.
8
9
9
10
QVAC starts with the compact `qwen3-600m` model. Its first download can take several minutes; later starts reuse the persistent model cache.
10
11
12
+
## CPU and GPU variants
13
+
14
+
The `qvac.dnp.dappnode.eth` package does not reserve a GPU and therefore starts on CPU-only DAppNodes. CPU inference is slower and needs enough system RAM for the selected model; begin with `qwen3-600m` before loading larger models.
15
+
16
+
The `qvac-gpu.dnp.dappnode.eth` package reserves every GPU exposed by Docker. Before installing it, confirm that `docker run --rm --gpus all ubuntu:24.04 true` succeeds on the DAppNode host. Use the CPU package if that check fails.
17
+
11
18
## Choose models
12
19
13
20
1. Open **Models** in the configuration UI.
@@ -23,7 +30,8 @@ Models that do not preload are loaded when first requested. This helps avoid fil
23
30
Use the API key chosen during installation as a Bearer token. Omit the `Authorization` header if no key was configured.
0 commit comments