Add mini/mid/gaming hardware profiles and always-on full stack

Profiles select CPU vs Vulkan and Bonsai-27B vs Qwen3.5-9B Abliterated
Q4_K_M. OpenHands is no longer optional; compose deploys every service.
download-models.sh fetches both GGUF families as the profile requests.
This commit is contained in:
tim 2026-07-22 19:00:59 -07:00
parent 3bf1726a99
commit a729ff14e9
11 changed files with 333 additions and 171 deletions

View file

@ -7,20 +7,34 @@ Stack: **`/opt/stack`** · Media: **`/storage`** · User: **`tim`**
## Fresh install / tech demo (max automation)
Almost everything lives in **`.env`** (see `.env.example` — ports, paths, AI, Usenet, demo login, bootstrap flags).
Almost everything lives in **`.env`** (see `.env.example`). **Every container deploys by default** (including OpenHands).
### Hardware profiles
| Profile | Hardware | Inference | Default model |
|---------|----------|-----------|----------------|
| **mini** | Beelink / SER5-class | **CPU** | Ternary-Bonsai-27B Q2_0 |
| **mid** | 8GB AMD GPU, 16GB RAM | **Vulkan** | Qwen3.5-9B Abliterated **Q4_K_M** (~5.6GB) |
| **gaming** | 16GB AMD GPU, 64GB RAM | **Vulkan** | Ternary-Bonsai-27B (+ downloads Qwen too) |
```bash
cp .env.example .env
# set STACK_HOST, LAN_SUBNET, usenet keys (NZBKEEPKEY, NEWSHOSTING*, TWEAKNEWS*)
# drop wireguard/wg0.conf (+ # EndpointHost = your.provider.host)
# set STACK_HOST, LAN_SUBNET, usenet keys
# drop wireguard/wg0.conf (+ # EndpointHost = hostname)
./scripts/apply-profile.sh mini # or mid | gaming
./scripts/bootstrap-stack.sh
# → dirs, model download, compose build/up, gluetun heal, SABnzbd servers
# → dirs, model download(s), build bonsai (cpu|vulkan), compose up ALL services
```
Demo login for local apps you create: **`tim` / `asdfasdf`** (`DEMO_USER` / `DEMO_PASS`).
Switch later:
```bash
./scripts/apply-profile.sh mid
docker compose build bonsai && docker compose up -d
```
Still manual once (app APIs differ): Prowlarr↔apps, Jellyfin libraries, first Forgejo/Open WebUI admin (use demo user/pass).
Demo login: **`tim` / `asdfasdf`**.
Still manual once: Prowlarr↔apps, Jellyfin libraries, first Forgejo/Open WebUI admin.
---
@ -95,8 +109,7 @@ LAN URLs (UFW allows **`192.168.8.0/24`**). Replace host if needed.
| **Forgejo** | http://192.168.8.123:3002 |
| Forgejo Git SSH | `ssh://git@192.168.8.123:2222/user/repo.git` |
OpenHands only runs with: `docker compose --profile coding up -d` (or `stack_compose_profiles: [coding]` in Ansible).
Images are from **GHCR** (`ghcr.io/all-hands-ai/...`); the old `docker.all-hands.dev` host often does not resolve.
OpenHands is always started with the stack (GHCR images).
### Manual config (once)