Inital commit

This commit is contained in:
2026-06-19 23:18:04 +02:00
commit 1bb79dc5a5
46 changed files with 3401 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
# Hardware Raspberry PI5
**Zusammenfassung**: Der `da-server-pi5` ist ein Raspberry PI5 mit 15 GB RAM, aktivem Kühler und drei USB-Massenspeichern. Läuft stabil bei ~46 °C CPU-Temperatur.
**Quellen**: 🔌 SSH (`/proc/cpuinfo`, `lsusb`, `lspci`, `/sys/class/thermal/`)
**Zuletzt aktualisiert**: 2026-06-17
---
## Modell
| Merkmal | Wert |
|---|---|
| **Modell** | Raspberry Pi 5 (BCM2712) |
| **CPU** | ARM Cortex-A76 (4 Kerne, aarch64) |
| **BogoMIPS** | 108.00 pro Kern |
| **Features** | fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp |
| **RAM** | 15 GB |
| **Architektur** | arm64 (nativ), 64-bit-mode (`arm_64bit=1`, `arm_boost=1`) |
## Temperatur & Kühlung
- **CPU-Temperatur**: ~46 °C (Quelle: `/sys/class/thermal/thermal_zone0/temp`)
- **Throttling**: Keines (vcgencmd zeigt keine Drosselung)
- Der PI5 ist aktiv gekühlt und läuft sehr kühl.
## Angeschlossene Hardware (USB)
| Bus | Gerät | ID | Beschreibung |
|---|---|---|---|
| Bus 001 | Device 002 | `1e3d:2092` | **Chipsbank Flash Disk** USB-Stick mit LUKS-Schlüsseldateien |
| Bus 001 | Device 003 | `0781:55ae` | **SanDisk Extreme 55AE** 1,8-TB-SSD (Hauptsystem + Daten) |
| Bus 004 | Device 002 | `1058:1042` | **WD Elements SE Portable** 931-GB-SSD (Zweitsystem) |
## PCI / Erweiterungsbus
```
0002:00:00.0 BCM2712 PCIe Bridge
0002:01:00.0 RP1 PCIe 2.0 South Bridge (Ethernet, USB, GPIO)
```
## Boot-Konfiguration (`/boot/firmware/config.txt`)
```
arm_64bit=1 # 64-bit mode
arm_boost=1 # max Takt
dtoverlay=vc4-kms-v3d # Grafiktreiber
dtparam=audio=on # Audio aktiv
camera_auto_detect=1 # Kamera-Erkennung
display_auto_detect=1 # Display-Erkennung
```
## Verwandte Seiten
- [systemuebersicht](../Konfiguration/systemuebersicht.md)
- [laufwerke-und-speicher](../Konfiguration/laufwerke-und-speicher.md)
+74
View File
@@ -0,0 +1,74 @@
# Netzwerk Raspberry PI5
**Zusammenfassung**: Der PI5 hat eine kabelgebundene (eth0) und eine WLAN-Schnittstelle (wlan0). DNS läuft über die FritzBox, Netzwerkkonfiguration via NetworkManager.
**Quellen**: 🔌 SSH (`ip addr`, `/etc/resolv.conf`, `/etc/hosts`, `ss -tlnp`, `/opt/compose/traefik/conf.d/*.yml`)
**Zuletzt aktualisiert**: 2026-06-17
---
## Schnittstellen
| Interface | IP | Typ | Status |
|---|---|---|---|
| `eth0` | `192.168.178.77/24` | Kabel (primär) | UP |
| `wlan0` | `192.168.178.66/24` | WLAN (Fallback) | UP |
| `lo` | `127.0.0.1/8` | Loopback | UP |
Gateway/Subnetz: `192.168.178.0/24`, Standard-Gateway `192.168.178.1` (FritzBox).
## DNS
- **Namensserver**: `192.168.178.1` (FritzBox)
- **Suchdomain**: `fritz.box`
- **Hostname**: `da-server-pi5`
- **/etc/hosts**: `127.0.1.1 da-server-pi5` (von cloud-init verwaltet)
## Öffentliche Dienste
Alle öffentlichen Dienste laufen hinter [traefik](../Konfiguration/docker/traefik.md) auf den Ports **80 (HTTP)** und **443 (HTTPS)** mit Let's Encrypt:
| Subdomain | Dienst | interner Port |
|---|---|---|
| `cloud.da.home-webserver.de` | [nextcloud](../Konfiguration/docker/nextcloud.md) | `nextcloud:80` |
| `photos.da.home-webserver.de` | [immich](../Konfiguration/docker/immich.md) | `immich_server:2283` |
| `paperless.da.home-webserver.de` | [paperless](../Konfiguration/docker/paperless.md) | `paperless-webserver-1:8000` |
| `wiki.da.home-webserver.de` | [wikijs](../Konfiguration/docker/wikijs.md) | `wikijs:3000` |
| `pdf.da.home-webserver.de` | [stirling-pdf](../Konfiguration/docker/stirling-pdf.md) | `stirling-pdf:8080` |
| `music.da.home-webserver.de` | [plex](../Konfiguration/docker/plex.md) | `plex:32400` |
| `web.da.home-webserver.de` | [nginx](../Konfiguration/docker/nginx.md) | `nginx_pi5:80` |
| `office.da.home-webserver.de` | [collabora](../Konfiguration/docker/collabora.md) | `collabora:9980` |
| `jenkins.da.home-webserver.de` | [jenkins](../Konfiguration/docker/jenkins.md) | `jenkins:8080` |
| `git.da.home-webserver.de` | [gitea](../Konfiguration/docker/gitea.md) | `gitea:3000` |
| `traefik.da.home-webserver.de` | Traefik-Dashboard | `api@internal` |
| `prometheus.da.home-webserver.de` | Prometheus | `monitoring-prometheus:9090` |
| `grafana.da.home-webserver.de` | Grafana | `monitoring-grafana:3000` |
(Quelle: `/opt/compose/traefik/conf.d/*.yml`)
## HTTP->HTTPS-Weiterleitung
Die HTTPS-Weiterleitung im Traefik-Global-Router ist **derzeit auskommentiert** (`conf.d/0000-global.yml`). HTTP-Anfragen landen im "noop"-Service (Antwort 404). Die Dienste sind nur via HTTPS direkt erreichbar.
## Offene Ports (Listening)
| Port | Dienst | Bemerkung |
|---|---|---|
| `22/tcp` | SSH (sshd) | Nur per SSH-Key |
| `80/tcp` | docker-proxy → Traefik | HTTP |
| `443/tcp` | docker-proxy → Traefik | HTTPS |
| `111/tcp` | rpcbind | system-intern |
| `631/tcp` | cupsd (localhost) | Druckserver |
(Quelle: `ss -tlnp`)
## Firewall
- **ufw**: Nicht installiert
- **iptables**: Wird von Docker verwaltet (Netzwerk-Isolation der Container)
## Verwandte Seiten
- [traefik](../Konfiguration/docker/traefik.md)
- [domain-und-ssl](../Konfiguration/domain-und-ssl.md)
- [systemuebersicht](../Konfiguration/systemuebersicht.md)
- [sicherheit](./sicherheit.md)
+86
View File
@@ -0,0 +1,86 @@
# Sicherheit Raspberry PI5
**Zusammenfassung**: SSH-Zugriff ist auf Public-Key-Authentifizierung beschränkt. Einige Sicherheitslücken bestehen (Grafana-Passwort, Gitea-Container-Konfiguration).
**Quellen**: 🔌 SSH (`/etc/ssh/sshd_config`, `/etc/passwd`, `groups`, `docker inspect`)
**Zuletzt aktualisiert**: 2026-06-17
---
## SSH-Zugang
- **Passwort-Authentifizierung**: **Deaktiviert** (`KbdInteractiveAuthentication no`)
- **Zugelassen**: Nur SSH-Key (Public-Key-Auth via `authorized_keys`)
- **User**: `piadmin` (UID 1000, /home/piadmin, bash)
- **SSH-Port**: 22 (Standard)
- **Keys**: Ed25519-Schlüsselpaar vorhanden
## Benutzer & Gruppen
Einziger menschlicher Benutzer: `piadmin`
Gruppen-Mitgliedschaften von `piadmin`:
| Gruppe | Zweck |
|---|---|
| `piadmin` | Eigenes |
| `adm` | Log-Dateien lesen |
| `dialout` | Serielle Schnittstelle |
| `cdrom` | Optische Laufwerke |
| `sudo` | **Vollständiger root-Zugriff** (sudo) |
| `audio` | Audio-Geräte |
| `video` | Video-Geräte |
| `plugdev` | Wechselmedien |
| `games` | Spiele |
| `users` | Standard-Benutzergruppe |
| `input` | Eingabegeräte |
| `render` | GPU-Rendering |
| `netdev` | Netzwerk-Konfiguration |
| `spi` | SPI-Schnittstelle |
| `i2c` | I²C-Schnittstelle |
| `gpio` | GPIO-Pins |
| **`docker`** | **Docker-Befehle ohne sudo** |
## LUKS-Verschlüsselung
Beide Datenpartitionen sind mit LUKS2 verschlüsselt und erfordern einen **USB-Schlüsselstick** (`/mnt/usb_key/`) zum Booten:
| Container | Schlüsseldatei | Größe |
|---|---|---|
| `encrypt_data` | `/mnt/usb_key/twotb.bin` | 4096 Bytes |
| `encrypt_sdc3` | `/mnt/usb_key/onetb.bin` | 16384 Bytes |
Siehe [luks-verschluesselung](../Konfiguration/luks-verschluesselung.md).
## Bekannte Sicherheitslücken
### 🔴 Grafana-Passwort im Klartext
In `/opt/compose/monitoring/docker-compose.yml` steht das Admin-Passwort als Umgebungsvariable im Klartext:
```yaml
environment:
- GF_SECURITY_ADMIN_PASSWORD=Y57ekJeG2fLohiL0xdZNDViKteDZf55wQkhvabR96xPlEy4qRd
```
Sollte in ein Docker-Secret oder eine `.env`-Datei ausgelagert werden.
### 🔴 Gitea-Container `restart: no`
Der Gitea-Container hat die Restart-Policy `no` (statt `unless-stopped`) und läuft nicht. Die zugehörige MariaDB läuft dagegen normal.
Siehe [gitea](../Konfiguration/docker/gitea.md).
### 🟡 Collabora-Admin-Passwort
Der Standard-Admin-Zugang für Collabora sollte geändert werden.
### 🟡 HTTP->HTTPS-Weiterleitung
Die Weiterleitung von HTTP auf HTTPS ist in Traefik **auskommentiert**. Dienste sind zwar nur per HTTPS aufrufbar, aber HTTP-Anfragen geben einen 404 statt einer Weiterleitung.
## Verwandte Seiten
- [systemuebersicht](../Konfiguration/systemuebersicht.md)
- [luks-verschluesselung](../Konfiguration/luks-verschluesselung.md)
- [gitea](../Konfiguration/docker/gitea.md)
- [monitoring](../Konfiguration/docker/monitoring.md)