270 lines
5.1 KiB
Markdown
270 lines
5.1 KiB
Markdown
# Jetson Orin Nano 8GB - Complete Home Hub
|
|
|
|
## Übersicht
|
|
|
|
Alles lokal, keine Cloud, volle Kontrolle.
|
|
|
|
| Domain | Service | Beschreibung |
|
|
|--------|---------|--------------|
|
|
| `home.lan` | Home Assistant | Smart Home Zentrale |
|
|
| `adguard.lan` | AdGuard Home | DNS + Werbeblocker |
|
|
| `whisper.lan` | Whisper WebUI | Sprache → Text (GPU) |
|
|
| `jellyfin.lan` | Jellyfin | Media Server |
|
|
| `portainer.lan` | Portainer | Docker Management |
|
|
| `vpn.lan` | WireGuard Easy | VPN für unterwegs |
|
|
| `files.lan` | FileBrowser | Private Cloud |
|
|
| `sync.lan` | Syncthing | Dateisync |
|
|
| `ollama.lan` | Ollama | Lokale LLMs |
|
|
|
|
## Hardware Setup
|
|
|
|
```
|
|
5G Antenne ──► Nighthawk M5 (DHCP, DNS=192.168.1.50)
|
|
│
|
|
Netgear Switch
|
|
│
|
|
└── Jetson Orin Nano @ TV
|
|
├── eth0: 192.168.1.50
|
|
├── USB: TP-Link WiFi → AP "Home.8"
|
|
└── HDMI: 4K TV
|
|
```
|
|
|
|
## Installation
|
|
|
|
### 1. JetPack flashen (am PC mit Ubuntu)
|
|
|
|
```bash
|
|
# SDK Manager: https://developer.nvidia.com/sdk-manager
|
|
# Jetson in Recovery Mode (Power aus, Recovery halten, Power an)
|
|
sdkmanager
|
|
# → Jetson Orin Nano 8GB
|
|
# → JetPack 6.x
|
|
# → NVMe als Ziel
|
|
```
|
|
|
|
### 2. Nach erstem Boot
|
|
|
|
```bash
|
|
# Dateien auf Jetson kopieren
|
|
scp -r jetson-setup/ d@192.168.1.50:~/
|
|
|
|
# SSH zum Jetson
|
|
ssh d@192.168.1.50
|
|
|
|
# Setup ausführen
|
|
cd ~/jetson-setup
|
|
chmod +x setup.sh
|
|
sudo ./setup.sh
|
|
sudo reboot
|
|
```
|
|
|
|
### 3. Nach Reboot
|
|
|
|
```bash
|
|
cd ~/docker
|
|
docker-compose up -d
|
|
|
|
# Logs
|
|
docker-compose logs -f
|
|
```
|
|
|
|
### 4. AdGuard DNS Rewrites einrichten
|
|
|
|
1. Öffne `http://192.168.1.50:3000`
|
|
2. Setup durchführen
|
|
3. Settings → DNS rewrites
|
|
4. Alle Einträge aus `adguard-dns-rewrites.txt` hinzufügen
|
|
|
|
### 5. Nighthawk DNS ändern
|
|
|
|
Im Nighthawk Router: DNS auf `192.168.1.50` setzen
|
|
|
|
Jetzt funktionieren alle `.lan` Domains!
|
|
|
|
## Zugriff
|
|
|
|
### Im LAN
|
|
|
|
Einfach im Browser:
|
|
- `http://home.lan`
|
|
- `http://adguard.lan`
|
|
- `http://whisper.lan`
|
|
- `http://portainer.lan`
|
|
- etc.
|
|
|
|
### Unterwegs (VPN)
|
|
|
|
1. Öffne `http://vpn.lan` (Passwort: 123 - ÄNDERN!)
|
|
2. Neuen Client erstellen
|
|
3. QR-Code mit WireGuard App scannen
|
|
4. Verbinden - fertig, alle .lan Domains erreichbar
|
|
|
|
**Wichtig:** `WG_HOST` in docker-compose.yml auf deine externe IP/DynDNS setzen!
|
|
|
|
## Services im Detail
|
|
|
|
### Home Assistant (`home.lan`)
|
|
|
|
Voice Assistant einrichten:
|
|
1. Settings → Devices & Services → Add Integration
|
|
2. "Wyoming Protocol" hinzufügen
|
|
3. Whisper: `localhost:10300`
|
|
4. Piper TTS: `localhost:10200`
|
|
|
|
### Whisper WebUI (`whisper.lan`)
|
|
|
|
- Sprache aufnehmen im Browser
|
|
- Dateien hochladen
|
|
- Läuft 100% lokal auf GPU
|
|
- Deutsch, Englisch, etc.
|
|
|
|
### FileBrowser (`files.lan`)
|
|
|
|
Private Cloud für alle Dateien:
|
|
- Default Login: `admin` / `admin`
|
|
- Zugriff auf `/home/d/`
|
|
|
|
### Syncthing (`sync.lan`)
|
|
|
|
Dateien zwischen Geräten synchronisieren:
|
|
- Handy ↔ Jetson ↔ PC
|
|
- Verschlüsselt, kein Server in der Mitte
|
|
|
|
### Portainer (`portainer.lan`)
|
|
|
|
Docker Management mit GUI:
|
|
- Container starten/stoppen
|
|
- Logs anschauen
|
|
- Compose verwalten
|
|
|
|
## Dateistruktur
|
|
|
|
```
|
|
~/docker/
|
|
├── docker-compose.yml
|
|
├── caddy/
|
|
│ └── Caddyfile
|
|
├── homeassistant/config/
|
|
├── adguard/conf/
|
|
├── whisper/models/
|
|
├── jellyfin/config/
|
|
├── portainer/
|
|
├── wireguard/
|
|
├── filebrowser/
|
|
├── syncthing/
|
|
└── ollama/
|
|
```
|
|
|
|
## Passwörter ändern!
|
|
|
|
```bash
|
|
# WiFi AP
|
|
sudo nano /etc/hostapd/hostapd.conf
|
|
# wpa_passphrase=NEUES_PASSWORT
|
|
sudo systemctl restart hostapd
|
|
|
|
# WireGuard
|
|
nano ~/docker/docker-compose.yml
|
|
# PASSWORD=NEUES_PASSWORT
|
|
docker-compose up -d wg-easy
|
|
```
|
|
|
|
## Port Forwarding (für VPN von aussen)
|
|
|
|
Im Nighthawk Router:
|
|
- UDP 51820 → 192.168.1.50:51820
|
|
|
|
## Whisper Modelle
|
|
|
|
| Modell | VRAM | Speed | Qualität |
|
|
|--------|------|-------|----------|
|
|
| tiny | ~1GB | ⚡⚡⚡⚡ | ★★☆☆☆ |
|
|
| base | ~1GB | ⚡⚡⚡ | ★★★☆☆ |
|
|
| small | ~2GB | ⚡⚡ | ★★★★☆ |
|
|
| medium | ~5GB | ⚡ | ★★★★★ |
|
|
|
|
Ändern in `docker-compose.yml`:
|
|
```yaml
|
|
environment:
|
|
- WHISPER_MODEL=small
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Domains funktionieren nicht
|
|
|
|
```bash
|
|
# DNS Test
|
|
nslookup home.lan 192.168.1.50
|
|
|
|
# AdGuard läuft?
|
|
docker logs adguard
|
|
```
|
|
|
|
### WiFi AP startet nicht
|
|
|
|
```bash
|
|
sudo systemctl status hostapd
|
|
sudo journalctl -u hostapd -f
|
|
iw dev
|
|
```
|
|
|
|
### GPU nicht erkannt
|
|
|
|
```bash
|
|
# Test
|
|
docker run --rm --runtime=nvidia nvidia/cuda:11.4-base nvidia-smi
|
|
|
|
# Jetson Stats
|
|
sudo pip3 install jetson-stats
|
|
jtop
|
|
```
|
|
|
|
### Container startet nicht
|
|
|
|
```bash
|
|
docker-compose logs <container-name>
|
|
docker-compose up <container-name> # ohne -d für live output
|
|
```
|
|
|
|
## Updates
|
|
|
|
```bash
|
|
cd ~/docker
|
|
docker-compose pull
|
|
docker-compose up -d
|
|
```
|
|
|
|
## Backup
|
|
|
|
```bash
|
|
# Alles
|
|
tar -czvf jetson-backup.tar.gz ~/docker/
|
|
|
|
# Nur Configs
|
|
tar -czvf ha-backup.tar.gz ~/docker/homeassistant/config
|
|
tar -czvf adguard-backup.tar.gz ~/docker/adguard/conf
|
|
```
|
|
|
|
## Nützliche Befehle
|
|
|
|
```bash
|
|
# Alle Container Status
|
|
docker ps -a
|
|
|
|
# Ressourcen
|
|
docker stats
|
|
|
|
# Jetson GPU/CPU Monitor
|
|
jtop
|
|
|
|
# Logs live
|
|
docker-compose logs -f
|
|
|
|
# Neustart einzelner Service
|
|
docker-compose restart homeassistant
|
|
|
|
# Shell in Container
|
|
docker exec -it homeassistant bash
|
|
```
|