chore(unraid): finalize production lifecycle and acceptance notes
This commit is contained in:
@@ -6,7 +6,7 @@ GPU-only, receive-only NDI inference service. It never saves frames/crops and ha
|
|||||||
- Token: `/mnt/user/appdata/tail2-pose-server/secrets/api-token` (mode 0600)
|
- Token: `/mnt/user/appdata/tail2-pose-server/secrets/api-token` (mode 0600)
|
||||||
- Source: `TAIL 2_1621D2 (OBSBOT)` / `192.168.50.207`
|
- Source: `TAIL 2_1621D2 (OBSBOT)` / `192.168.50.207`
|
||||||
- Coordinate contract: unmodified NDI buffer, no horizontal flip
|
- Coordinate contract: unmodified NDI buffer, no horizontal flip
|
||||||
- Models: official OpenMMLab RTMDet-m and RTMW-l 256x192; model hashes are generated in `models/SHA256SUMS`.
|
- Models: official OpenMMLab RTMDet-tiny and RTMW-m 256x192. RTMDet-m/RTMW-l were tested first but failed the 15 FPS requirement. Model hashes are in `models/SHA256SUMS`.
|
||||||
- NDI binding: cyndilib 0.1.1 and its distributed NDI runtime. NDI's redistributable license applies; do not redistribute the image outside this private deployment without reviewing that license.
|
- NDI binding: cyndilib 0.1.1 and its distributed NDI runtime. NDI's redistributable license applies; do not redistribute the image outside this private deployment without reviewing that license.
|
||||||
|
|
||||||
Rotate the integration token after onboarding clients:
|
Rotate the integration token after onboarding clients:
|
||||||
@@ -17,3 +17,13 @@ printf 'tail2_%s' "$(head -c 48 /dev/urandom | base64 | tr -d '\n=/+')" > /mnt/u
|
|||||||
docker compose restart tail2-pose-server
|
docker compose restart tail2-pose-server
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Current acceptance status
|
||||||
|
|
||||||
|
`blocked` for the requested performance SLO only. Functional/API/privacy/stability acceptance passed, including a 600.072-second NDI soak with 6,355 strictly increasing messages and no WS failures. Live p50/p95/p99 source-to-send latency was 91.629/122.584/139.033 ms (~10.59 output FPS), so p95 exceeds 100 ms and output is below 15 FPS. Offline 1/2/4-person p50 was 144.228/154.546/153.313 ms. No OOM; maximum selected-GPU memory was 14,145 MiB and temperature 43 C.
|
||||||
|
|
||||||
|
The one-shot validation services are profile-gated and do not run during normal Arcane lifecycle:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker compose --profile validation up validate
|
||||||
|
docker compose --profile validation up soak
|
||||||
|
```
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ services:
|
|||||||
test ! -e /target/.foreign-project || { echo 'foreign project marker found'; exit 1; }
|
test ! -e /target/.foreign-project || { echo 'foreign project marker found'; exit 1; }
|
||||||
cp -a /source/app/. /target/app/
|
cp -a /source/app/. /target/app/
|
||||||
cp -a /source/config/. /target/config/
|
cp -a /source/config/. /target/config/
|
||||||
cp /source/compose.yaml /source/requirements.lock /source/DEPLOYMENT.md /target/
|
cp -a /source/tests /target/
|
||||||
|
cp /source/compose.yaml /source/Dockerfile /source/requirements.lock /source/DEPLOYMENT.md /target/
|
||||||
if [ ! -s /target/secrets/api-token ]; then
|
if [ ! -s /target/secrets/api-token ]; then
|
||||||
umask 077
|
umask 077
|
||||||
printf 'tail2_%s' "$$(head -c 48 /dev/urandom | base64 | tr -d '\n=/+')" > /target/secrets/api-token
|
printf 'tail2_%s' "$$(head -c 48 /dev/urandom | base64 | tr -d '\n=/+')" > /target/secrets/api-token
|
||||||
@@ -108,6 +109,7 @@ services:
|
|||||||
start_period: 180s
|
start_period: 180s
|
||||||
|
|
||||||
validate:
|
validate:
|
||||||
|
profiles: ["validation"]
|
||||||
image: tail2-pose-server:0.1.0
|
image: tail2-pose-server:0.1.0
|
||||||
container_name: tail2-pose-validate
|
container_name: tail2-pose-validate
|
||||||
network_mode: host
|
network_mode: host
|
||||||
@@ -142,6 +144,7 @@ services:
|
|||||||
chmod 0666 /validation/*.txt /validation/*.json /validation/*.csv
|
chmod 0666 /validation/*.txt /validation/*.json /validation/*.csv
|
||||||
|
|
||||||
soak:
|
soak:
|
||||||
|
profiles: ["validation"]
|
||||||
image: tail2-pose-server:0.1.0
|
image: tail2-pose-server:0.1.0
|
||||||
container_name: tail2-pose-soak
|
container_name: tail2-pose-soak
|
||||||
network_mode: host
|
network_mode: host
|
||||||
|
|||||||
Reference in New Issue
Block a user