daybook/_archive_/hosts/nuc-daybook.md

145 lines
3.8 KiB
Markdown

# NUC Daybook Host
Current Daybook deployment target for fast local iteration.
Last checked: 2026-06-11.
## Summary
| Item | Value |
|---|---|
| Proxmox host | `pve`, Intel NUC5i3MYHE, Proxmox VE 9.1.0 / Debian 13 |
| Host LAN IP | `192.168.1.6` |
| Host Tailscale IP | `100.76.55.68` |
| Host SSH | `claude@proxmox.cygnus.internal` or `claude@nuc.cygnus.internal` |
| Container | LXC VMID `128`, hostname `daybook` |
| Container IP | `192.168.1.36/24` |
| App URL | `http://192.168.1.36:8000/` |
| API base URL | `http://192.168.1.36:8000` |
| Deployment path | `/opt/daybook` |
| Persistent data path | `/opt/daybook/deploy/data` |
| Local source tree | `C:\Users\ritte\_PR_DEV_\DEV_WEB_APPS\AGENT_DAYBOOK` |
| NUC ops repo | `C:\Users\ritte\_PR_DEV_\LIVE_ADMIN\NUC_SERVER` |
Write requests use the Daybook bearer token configured in `/opt/daybook/deploy/.env` as `DAYBOOK_API_TOKEN`.
## Runtime Shape
Daybook runs in Docker Compose inside unprivileged Debian LXC `128` with `nesting=1` enabled.
Compose root:
```text
/opt/daybook
```
Compose file:
```text
/opt/daybook/deploy/docker-compose.yml
```
Persistent state must stay outside the image:
```text
/opt/daybook/deploy/data
```
That directory contains the SQLite database and stored artifacts.
## Fast Update Loop
From the Proxmox host, rebuild the running Daybook service inside CT `128`:
```bash
sudo pct exec 128 -- bash -lc 'cd /opt/daybook && docker compose -f deploy/docker-compose.yml up -d --build'
```
Before copying source or rebuilding, preserve:
```text
/opt/daybook/deploy/.env
/opt/daybook/deploy/data
```
The current deployment was copied from the local source tree rather than cloned from a remote Git repository.
## Health Checks
From a machine that can reach the LAN:
```bash
curl -fsS http://192.168.1.36:8000/api/capabilities
```
From the Proxmox host:
```bash
sudo pct status 128
sudo pct config 128
sudo pct exec 128 -- bash -lc 'cd /opt/daybook && docker compose -f deploy/docker-compose.yml ps'
sudo pct exec 128 -- bash -lc 'test -f /opt/daybook/deploy/data/db.sqlite3 && test -d /opt/daybook/deploy/data/artifacts_store'
```
Storage check:
```bash
sudo /sbin/lvs -o vg_name,lv_name,lv_size,data_percent pve/data pve2/data
```
Important: `local-lvm` / `pve/data` was near the alert threshold at last check. New larger VM/CT disks should normally go on `local-lvm2`. Daybook already uses `local-lvm2`.
## Smoke Publish
Use this after ingest, rendering, or deployment changes. Replace the token with the value from `/opt/daybook/deploy/.env` if it changes.
```bash
curl -fsS -X POST http://192.168.1.36:8000/api/artifacts \
-H "Authorization: Bearer $DAYBOOK_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"persona": "deploy-smoke",
"source_type": "agent",
"source_name": "Deployment Smoke Agent",
"kind": "markdown",
"theme": "report",
"title": "Deployment Smoke Test",
"content": "# Deployment Smoke Test\n\nDaybook accepted an artifact.",
"tags": ["deploy", "smoke"],
"metadata": {"run_id": "deploy-smoke-001"}
}'
```
The response should include `id`, `url`, `api_url`, and `raw_url`. Open the returned `url` or refresh the feed.
## Backup Target
Back up this directory:
```text
/opt/daybook/deploy/data
```
Quick host-side backup command:
```bash
sudo pct exec 128 -- bash -lc 'tar -czf /tmp/daybook-data-$(date +%Y%m%d-%H%M%S).tar.gz -C /opt/daybook/deploy data'
```
For heavy write activity, stop the Compose service before archiving and start it again afterward.
## Related Docs
Broader deployment handoff:
```text
planning/daybook-container-handoff.md
```
NUC infrastructure docs:
```text
C:\Users\ritte\_PR_DEV_\LIVE_ADMIN\NUC_SERVER\knowledge_base\containers\128-daybook.md
C:\Users\ritte\_PR_DEV_\LIVE_ADMIN\NUC_SERVER\knowledge_base\daybook\api.md
C:\Users\ritte\_PR_DEV_\LIVE_ADMIN\NUC_SERVER\knowledge_base\daybook\agent-posting.md
```