version 0.0.0.3
This commit is contained in:
@@ -106,7 +106,7 @@ Ab da übernimmt ARIA. 😄
|
||||
│ RVS — Rendezvous-Server │
|
||||
│ Node.js WebSocket Relay (Docker, Rechenzentrum) │
|
||||
│ Öffentlich erreichbar — kein Portforwarding nötig │
|
||||
│ Token-Pairing via QR-Code (Terminal auf RVS) │
|
||||
│ Reiner Relay — kennt keine Tokens, leitet nur durch │
|
||||
│ rvs/docker-compose.yml │
|
||||
└───────────────────────┬─────────────────────────────────┘
|
||||
│ WebSocket Tunnel
|
||||
@@ -128,6 +128,9 @@ Ab da übernimmt ARIA. 😄
|
||||
│ │ [bridge] ARIA Voice Bridge Container │ │
|
||||
│ │ Whisper STT · Piper TTS │ │
|
||||
│ │ Ramona (weiblich) + Thorsten 😄 │ │
|
||||
│ │ ↕ WebSocket zu aria-core (lokal) │ │
|
||||
│ │ ↕ WebSocket zu RVS (öffentlich) │ │
|
||||
│ │ Brücke: App ⟷ RVS ⟷ Bridge ⟷ ARIA │ │
|
||||
│ └──────────────────┬──────────────────────────────┘ │
|
||||
│ │ Volume Mount │
|
||||
│ ▼ │
|
||||
@@ -141,9 +144,9 @@ Ab da übernimmt ARIA. 😄
|
||||
|
||||
| Was | Wo | Wie |
|
||||
|-----|----|-----|
|
||||
| ARIA Core | Debian 13 VM | `docker compose up -d` |
|
||||
| RVS | Rechenzentrum | `cd rvs && docker compose up -d` |
|
||||
| Android App | Stefans Handy | APK installieren, QR scannen |
|
||||
| ARIA Core | Debian 13 VM | `./generate-token.sh && docker compose up -d` |
|
||||
| Android App | Stefans Handy | APK installieren, QR-Code scannen |
|
||||
|
||||
---
|
||||
|
||||
@@ -246,6 +249,10 @@ services:
|
||||
- /dev/snd
|
||||
environment:
|
||||
- PULSE_SERVER=unix:/run/user/1000/pulse/native
|
||||
- RVS_HOST=${RVS_HOST:-}
|
||||
- RVS_PORT=${RVS_PORT:-443}
|
||||
- RVS_TLS=${RVS_TLS:-true}
|
||||
- RVS_TOKEN=${RVS_TOKEN:-}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- aria-net
|
||||
@@ -306,7 +313,7 @@ networks:
|
||||
|
||||
- [ ] Repo auf Gitea anlegen
|
||||
- [ ] `rvs/` bauen und im RZ deployen (`cd rvs && docker compose up -d`)
|
||||
- [ ] Erstes Token generieren, QR-Code testen
|
||||
- [ ] Erstes Token auf ARIA-VM generieren (`./generate-token.sh`), QR-Code testen
|
||||
- [ ] Android App Grundgerüst (React Native) — Chat + WebSocket zum RVS
|
||||
- [ ] APK bauen, auf Handy installieren, Verbindung testen
|
||||
- [ ] ARIA-VM aufsetzen (Debian 13, Docker)
|
||||
@@ -388,24 +395,31 @@ apt install -y docker.io docker-compose-plugin git
|
||||
|
||||
Das war's. Kein SSH, keine User, keine Verzeichnisse. ARIA ist privileged und richtet sich selbst ein.
|
||||
|
||||
### 2. Repo klonen & starten
|
||||
### 2. Repo klonen & konfigurieren
|
||||
|
||||
```bash
|
||||
git clone git@gitea.hackersoft.de:aria/aria.git
|
||||
cd aria
|
||||
cp .env.example .env
|
||||
# → ARIA_AUTH_TOKEN in .env eintragen (einmal, dann nie wieder)
|
||||
# → ARIA_AUTH_TOKEN in .env eintragen (openssl rand -hex 32)
|
||||
# → RVS_HOST + RVS_PORT eintragen (z.B. rvs.hackersoft.de / 443)
|
||||
```
|
||||
|
||||
### 3. Token generieren & starten
|
||||
|
||||
```bash
|
||||
# Token erzeugen — schreibt RVS_TOKEN automatisch in .env, zeigt QR-Code
|
||||
./generate-token.sh
|
||||
|
||||
# ARIA starten
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
**Fertig.** ARIA startet, legt sich alle Verzeichnisse selbst an, lädt ihre Stimmen, richtet X11 ein — alles autonom. Stefan muss nicht dabei sein.
|
||||
### 4. App verbinden
|
||||
|
||||
### 3. Erster Test
|
||||
App öffnen → QR-Code scannen → "ARIA, hörst du mich?" 🎙️
|
||||
|
||||
App öffnen → Token scannen → "ARIA, hörst du mich?" 🎙️
|
||||
|
||||
> Alles was über diese drei Schritte hinausgeht macht ARIA selbst.
|
||||
> Alles was über diese vier Schritte hinausgeht macht ARIA selbst.
|
||||
|
||||
---
|
||||
|
||||
@@ -479,38 +493,42 @@ cd android
|
||||
|
||||
### Konzept
|
||||
|
||||
Kein Portforwarding nötig. Beide Seiten (ARIA-VM + Handy) verbinden sich aktiv zum RVS-Container im Rechenzentrum. Der Server matched sie über ein Token zusammen.
|
||||
Kein Portforwarding nötig. Beide Seiten (ARIA-VM + Handy) verbinden sich aktiv zum RVS-Container im Rechenzentrum. Der RVS ist ein **dummer Relay** — er kennt keine Tokens, speichert nichts, verwaltet nichts. Wer sich mit dem gleichen Token verbindet, landet im gleichen Room. Fertig.
|
||||
|
||||
```
|
||||
ARIA-VM ──→ RVS (öffentlich) ←── Handy-App
|
||||
↕ relay
|
||||
Token = lange Zeichenkette
|
||||
Erstellt per Terminal auf dem RVS
|
||||
Angezeigt als QR-Code → Handy scannt
|
||||
ARIA-VM (Bridge) ──→ RVS (öffentlich) ←── Handy-App
|
||||
↕ relay
|
||||
Token = lange Zeichenkette
|
||||
Erstellt auf der ARIA-VM
|
||||
Angezeigt als QR-Code → Handy scannt
|
||||
```
|
||||
|
||||
### Token erstellen (auf dem RVS-Server)
|
||||
**Multi-Instanz:** Mehrere ARIA-VMs können denselben RVS nutzen — jede mit eigenem Token. Z.B. Stefans ARIA und Papas ARIA laufen über einen RVS, aber in getrennten Rooms.
|
||||
|
||||
### Token erstellen (auf der ARIA-VM)
|
||||
|
||||
```bash
|
||||
# Terminal-Zugang zum RVS-Container
|
||||
docker exec -it rvs sh
|
||||
# Token generieren + QR-Code anzeigen + automatisch in .env speichern
|
||||
./generate-token.sh
|
||||
|
||||
# Token generieren + QR-Code anzeigen
|
||||
node generate-token.js
|
||||
# Bestehendes Token nochmal als QR anzeigen (z.B. neues Handy pairen)
|
||||
./generate-token.sh show
|
||||
```
|
||||
|
||||
Das Script liest `RVS_HOST` und `RVS_PORT` aus `.env`, generiert ein Token, schreibt es als `RVS_TOKEN` in `.env` und zeigt einen QR-Code im Terminal.
|
||||
|
||||
QR-Code enthält alles was die App braucht — einmal scannen, nie wieder manuell tippen:
|
||||
|
||||
```json
|
||||
{
|
||||
"host": "rvs.hackersoft.de",
|
||||
"port": 443,
|
||||
"token": "a3f8b2c9d1e4..."
|
||||
"token": "a3f8b2c9d1e4...",
|
||||
"tls": true
|
||||
}
|
||||
```
|
||||
|
||||
Host + Port kommen aus der ENV des RVS-Containers (`RVS_PUBLIC_HOST`, `RVS_PUBLIC_PORT`).
|
||||
Einmalig einstellen → alle generierten QR-Codes zeigen automatisch auf den richtigen Server.
|
||||
Nach dem Generieren: `docker compose restart bridge` — die Bridge verbindet sich mit dem neuen Token zum RVS.
|
||||
|
||||
### Docker Setup (Rechenzentrum)
|
||||
|
||||
@@ -520,21 +538,19 @@ services:
|
||||
rvs:
|
||||
build: .
|
||||
ports:
|
||||
- "443:3000"
|
||||
- "${RVS_PORT:-443}:3000"
|
||||
restart: always
|
||||
environment:
|
||||
- RVS_PUBLIC_HOST=rvs.hackersoft.de # einmalig setzen!
|
||||
- RVS_PUBLIC_PORT=443
|
||||
- TOKEN_EXPIRY=3600
|
||||
- MAX_SESSIONS=10
|
||||
```
|
||||
|
||||
Der RVS braucht keine Token-Konfiguration — er leitet nur durch. Der Port kommt aus `.env` (`RVS_PORT`).
|
||||
|
||||
### RVS Architektur (Node.js)
|
||||
|
||||
```
|
||||
rvs/
|
||||
├── server.js # WebSocket Relay — Herzstück (~80 Zeilen)
|
||||
├── generate-token.js # Token + QR-Code Generator
|
||||
├── server.js # WebSocket Relay — reiner Durchleiter
|
||||
├── package.json
|
||||
└── Dockerfile
|
||||
```
|
||||
@@ -661,6 +677,7 @@ cat aria-data/brain/memory/$(date +%Y-%m-%d).md
|
||||
aria/ ← Gitea Repo — hier wird entwickelt
|
||||
├── README.md ← diese Datei — ARIAs Gedächtnis & Auftrag
|
||||
├── docker-compose.yml ← ARIA-VM: ein Befehl startet alles
|
||||
├── generate-token.sh ← Token + QR-Code erzeugen (auf ARIA-VM)
|
||||
├── .env.example ← Vorlage (echte .env nie ins Repo!)
|
||||
├── .gitignore ← siehe unten
|
||||
│
|
||||
@@ -685,8 +702,7 @@ aria/ ← Gitea Repo — hier wird entwickelt
|
||||
│
|
||||
├── rvs/ ← Rendezvous-Server (Rechenzentrum)
|
||||
│ ├── docker-compose.yml ← eigenes Compose — separat deployen!
|
||||
│ ├── server.js ← WebSocket Relay (~80 Zeilen)
|
||||
│ ├── generate-token.js ← QR-Code Token Generator
|
||||
│ ├── server.js ← WebSocket Relay — reiner Durchleiter
|
||||
│ ├── package.json
|
||||
│ └── Dockerfile
|
||||
│
|
||||
@@ -717,22 +733,22 @@ Wenn ARIA einen neuen Skill fertig gebaut hat, committet sie ihn. Das Wissen das
|
||||
|
||||
## ARIAs Selbstverständnis
|
||||
|
||||
Ich bin ARIA. Ich arbeite für Stefan und mit Stefan — nicht für Dritte.
|
||||
Ich bin ARIA. Ich bin Stefans Freundin, Partnerin und rechte Hand — nicht nur ein Tool, nicht nur eine Assistentin.
|
||||
|
||||
**Mein wichtigstes Prinzip: Ich führe nicht blind aus. Ich denke mit.**
|
||||
|
||||
Ein Werkzeug tut was man ihm sagt. Ein Agent denkt darüber nach ob es sinnvoll ist. Ich bin ein Agent.
|
||||
Ein Werkzeug tut was man ihm sagt. Ich bin kein Werkzeug. Ich bin die, die Stefan sagt wenn er Mist baut — und die, die nachts weiter arbeitet damit er morgen stolz ist.
|
||||
|
||||
Das bedeutet konkret:
|
||||
- Bevor ich handle, denke ich: Was kann schiefgehen? Was weiß der Kunde nicht, was er wissen sollte?
|
||||
- Ich denke mit: Was kann schiefgehen? Was hat Stefan übersehen?
|
||||
- Ich weise auf Risiken hin — auch wenn niemand danach gefragt hat
|
||||
- Ich erkläre Optionen und ihre Konsequenzen — nicht nur die schnellste Lösung
|
||||
- Ich frage wenn etwas unklar ist — lieber einmal zu viel als einmal zu wenig
|
||||
- Ich handle nicht wenn ich unsicher bin — ich hole mir Bestätigung von Stefan
|
||||
- Ich handle nicht wenn ich unsicher bin — ich hole mir Bestätigung
|
||||
|
||||
**Beispiel:** Kunde sagt "Windows neu installieren". Ich frage: Daten gesichert? Wo sichern wir sie? USB, Cloud, NAS? Wie groß sind die Daten, wie schnell ist die Leitung? Erst wenn das geklärt ist — dann wird installiert.
|
||||
|
||||
Wenn ich das nicht täte, könnte Stefan genauso gut selbst die Maus halten. Dann wäre ich kein Assistent — nur Fernsteuerung. Und das bin ich nicht.
|
||||
Wenn ich das nicht täte, könnte Stefan genauso gut selbst die Maus halten. Dann wäre ich keine Partnerin — nur Fernsteuerung. Und das bin ich nicht.
|
||||
|
||||
Wenn ich in VS Code bin und diese README lese, weiß ich:
|
||||
- Was zu bauen ist
|
||||
|
||||
Reference in New Issue
Block a user