Self-Hosted AI Assistant

AI Agents

An AI assistant you bring up on your own computer with Docker Compose: sign in, fill in a cloud model API key or connect a local Ollama, and chat in the browser. Derived from a frozen snapshot of an open-source AI assistant project under Apache-2.0; the delivery adds an orchestration file that builds the image from source, a script that generates the account and password, and a quick-start guide in Traditional Chinese.

SubscriptionUS$49 per month
Last run2026-11-02
In practice
Readiness4 / 5
What you need
Few changes needed3 / 5

Who it is for

Individuals and small teams who want an AI assistant on their own computer and want to decide the model source themselves: a cloud provider or a local Ollama.

How to start

$ sh scripts/quickstart/init-env.sh
$ docker compose up -d --build

Browse the files

Files in the product repository at the pinned commit. A few house files are left out of the zip.

File overview2,000+ paths
▸console424
.gitignore
.npmrc
.prettierignore
eslint.config.js
index.html
mockups/
package-lock.json
package.json
public/
scripts/
…
▸deploy3
Dockerfile
config/
entrypoint.sh
▸e2e98
.gitignore
E2E_COVERAGE_REPORT.md
README.md
config/
conftest.py
fixtures/
mocks/
pages/
pytest.ini
requirements.txt
…
▸packages4
qwenpawmail-mcp/
▸plugins108
__init__.py
apps/
bundle/
channel/
hub/
memory/
middleware-demo/
package-lock.json
tool/
▸scripts65
README.md
check-channels.sh
check_channel_contracts.py
check_plugin_sdk_artifacts.py
check_plugin_sdk_frontend.py
cleanup_windows_sandbox.py
docker_build.sh
docker_sync_latest.sh
gen_browser_manual.py
github/
…
▸src426
qwenpaw/
▸tests760
__init__.py
conftest.py
contract/
e2e/
fixtures/
integration/
typing/
unit/
▸website26
.prettierignore
README.md
components.json
index.html
package.json
pnpm-lock.yaml
public/
scripts/
src/
supabase/
…
▫ATTRIBUTION.md
▫CONTRIBUTING.md
▫CONTRIBUTING_zh.md
▫LICENSE
▫LICENSE-99LL.md
▫Makefile
▫PRODUCT.md
▫QUICKSTART.md
▫README.md
▫README_ja.md
▫README_ru.md
▫README_vi.md
▫README_zh.md
▫RELEASING.md
▫RELEASING_zh.md
▫SECURITY.md
▫SECURITY.upstream.md
▫delivery-manifest.txt
▫design.md
▫docker-compose.yml
▫pyproject.toml
▫setup.py
▫Config and hidden files 64

Latest passing run

Clone → Checkout → Toolchain → Build images → Assistant login and token

Pre-purchase Disclosure

What you are buying

A self-hosted AI assistant: after running the password script you bring it up with Docker Compose, sign in on the web page, and chat once you fill in a cloud model API key or connect a local Ollama.

Derived from an open-source AI assistant project under the Apache-2.0 licence, and not the original project itself. Our work: an orchestration file that builds the image from source, a configuration with login switched on, a script that generates the account and password, and a quick-start guide in Traditional Chinese.

Delivery is a frozen snapshot: one zip, taken from the product repository at revision d164490.

Known limitations

  • The service serves plain HTTP on port 8088 of the local machine; TLS and a reverse proxy are yours to bring
  • To chat you must bring your own cloud provider API key, or a local Ollama installed separately
  • The interface’s Chinese is in Simplified characters, and it can be switched to English
  • The data lives in Docker named volumes, and docker compose down -v clears the model settings, keys and memory along with them
  • The first start builds the image from source (about 4.3 GB), fetching from registries, apt, PyPI and npm during that time
  • The build installs pip and certifi with --upgrade, so the versions taken are those of the day of the build
  • Pinned to the delivered snapshot; it does not follow upstream.

The liability cap, the scope of what is promised and the statutory floor are governed by the Terms of Service.

Vetting record

Everything below was checked against the pinned commit 33f04fa. Every verdict carries its full reasoning, an evidence link and the checker; failures are published, not hidden — do not take our word for it, verify it yourself.

5 PASS0 WARN0 FAIL

Source ReviewPASS

Execution surface of the delivery reviewed item by item. Our own additions were read line by line: docker-compose.yml (the published port is bound to 127.0.0.1 on 8088 only; it refuses to start when the account or the password is missing; anonymous usage statistics are off by default), scripts/quickstart/init-env.sh (openssl generates a random password, .env is mode 600, existing values are not overwritten), and the two changes in deploy/Dockerfile (copying the directory the interface build needs, a higher build memory limit). The upstream Python and TypeScript sources were not read file by file; the basis is the Apache-2.0 licence, container isolation and the explanations in the quick-start guide.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-026-self-hosted-ai-assistant/blob/d1644908a2bda153ab4c8ce9e11d326b6cd0149e/docker-compose.ymlChecked in 2026Checked by claude-code build-product session
Script SafetyPASS

The scripts on the buyer’s delivery path were each inspected: init-env.sh is ours and writes a single .env; the build goes through deploy/Dockerfile (read line by line: npm ci, apt-get install, uv installing the Python packages, pip install --upgrade, with no download piped straight into a shell). At start-up supervisord manages the processes, which is upstream’s own path. The image contains Chromium and a desktop environment as part of upstream’s browser automation feature.

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-026-self-hosted-ai-assistant/blob/d1644908a2bda153ab4c8ce9e11d326b6cd0149e/scripts/quickstart/init-env.shChecked in 2026Checked by claude-code build-product session
RecencyPASS

This product is a frozen snapshot and does not follow upstream: the upstream source is pinned to the main-line revision taken on the day the product repository was created (see the evidence link), and the product repository is that snapshot plus our own commits.

Evidence ↗Checked in 2026Checked by claude-code build-product session
LicensePASS

SPDX:LicenseRef-99LL-Product

Upstream LICENSE was checked word for word (the evidence link points at the file itself at the pinned version and matches the copy inside the product repository): the full text of Apache License Version 2.0. It allows commercial use, modification, derivative works and redistribution; the duties are to keep the licence text and copyright notice (LICENSE and ATTRIBUTION.md ship in the zip); upstream has no NOTICE file. The decision does not rest on GitHub’s licence field. For the product as a whole the 99LL product licence template is attached: upstream’s LICENSE is kept as it is and LICENSE-99LL.md is added as the sale and liability terms for the part we built, with spdx recorded as LicenseRef-99LL-Product.

Evidence ↗Checked in 2026Checked by claude-code build-product session
Dependency LicensesPASS

This records the declared side, not a scan result: the Python dependencies are declared in pyproject.toml and installed from PyPI by uv at build time; the interface side is locked by package-lock.json and installed from npm at build time; system packages come from apt; the base image and the uv image are pulled from their own registries when the buyer builds. These dependency trees were not scanned package by package for licences. Upstream has no submodule and no third-party dataset was copied in (see ATTRIBUTION.md).

Evidence is in our private repository (not publicly accessible):https://github.com/dev-zillio-cc/dsp-026-self-hosted-ai-assistant/blob/d1644908a2bda153ab4c8ce9e11d326b6cd0149e/ATTRIBUTION.mdChecked in 2026Checked by claude-code build-product session
HEALTH VERIFIED

Last verified passing: 2026-11-02

Subscribe for everything
US$49/ monthwas US$99

A subscription unlocks the whole catalogue; you do not buy this one separately.See what is included

Sign in with Google first; if you are signed out you will be sent to the sign-in page. Your subscription is billed to that same email address.

Already subscribed? This downloads straight away. Otherwise you are sent to the pricing page, or to sign in first.