Der Satellit kann Android-Geraete im LAN erkennen und die Agent-APK ausrollen, statt sie von Hand aufs Geraet zu kopieren. - satellite.py: adb.devices/connect/install/shell. _apk_fetch laedt die APK per HTTP (gecached in /data/apk, sha256 optional) statt sie durchs RVS zu schicken — der RVS ist ein BROADCAST-Relay (jede base64-APK ginge an alle Clients, und das Satelliten-max_size liegt bei 8 MB). adb.install ist selbstheilend (connect -> install -r) und uebersetzt die typischen Fehler in klare Ansagen (unauthorized, Signatur-Mismatch, Speicher voll). Imports lokal in den Funktionen (Hausmuster). - Discovery: mDNS-Typen _amzn-wplay/_adb-tls-connect/_androidtvremote2, _mdns_kind -> firetv/android-adb/androidtv, plus _enrich_adb (TCP-Probe 5555) -> adbCapable. - Dockerfile: adb; compose: HOME=/data (ADB-Key persistent, sonst fragt das Geraet nach jedem Rebuild neu) + ANDROID_ADB_SERVER_PORT=5038 (Host-Kollision). - .env.example: neue Aktionen + Warnung, dass die Allowlist den Code-Default ueberschreibt (sonst lehnt ein bestehender Satellit adb.* ab). - Brain: adb.* in der satellite_command-Beschreibung; WICHTIG Timeout 200s fuer adb.*/ssh.exec — der Bridge-Default von 20s haette jede Installation abgewuergt. - Diagnostic: sat_command (Browser->RVS) und sat_result (RVS->Browser) gab es bisher GAR NICHT; beide ergaenzt. 📦-Button je ADB-faehigem Geraet + Rollout- Modal mit Status/Log, ADB-Tag in der Geraeteliste. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.4 KiB
YAML
33 lines
1.4 KiB
YAML
# ARIA Satellit — eigenstaendiger Stack fuer ein fremdes Netz (Buero, Werkstatt …).
|
|
#
|
|
# Deploy:
|
|
# cd satellite
|
|
# cp .env.example .env # RVS-Zugang + SATELLITE_LOCATION eintragen
|
|
# docker compose up -d --build
|
|
#
|
|
# WICHTIG: network_mode: host — der Satellit MUSS im Host-Netz laufen, sonst
|
|
# sieht er die mDNS/SSDP-Broadcasts + Geraete-IPs des LAN nicht (Docker-Bridge
|
|
# wuerde das isolieren). Damit ist er zugleich als RVS-Client raus ins Internet
|
|
# verbunden. Keine Ports zu veroeffentlichen — er ist reiner Client.
|
|
#
|
|
# ⚠ NUR auf LINUX Docker Engine, und der Host muss physisch im Ziel-LAN haengen!
|
|
# Docker Desktop (Mac/Windows) gibt hier NUR das Docker-VM-Netz (192.168.65.x /
|
|
# 172.x), NICHT dein echtes LAN → Discovery findet dann nur Docker-Container.
|
|
# Fuer Mac/Windows: satellite.py nativ starten (siehe README, Weg B).
|
|
services:
|
|
satellite:
|
|
build: .
|
|
container_name: aria-satellite
|
|
network_mode: host
|
|
env_file: .env
|
|
restart: unless-stopped
|
|
environment:
|
|
# ADB-Schluessel in /data persistieren: sonst erzeugt adb nach jedem
|
|
# Rebuild einen NEUEN Schluessel und das Fire TV fragt erneut
|
|
# "USB-Debugging zulassen?" (Autorisierung geht verloren).
|
|
- HOME=/data
|
|
- ANDROID_ADB_SERVER_PORT=5038 # 5037 kann auf dem Host belegt sein
|
|
volumes:
|
|
# Persistenter Credential-Store (verschluesselt) + Schluesseldatei.
|
|
- ./data:/data
|