All apps · 0 apps
RackView
Docker app from alexanderschubert's Repository
Overview
RackView dokumentiert Serverschraenke und Heimnetz: Geraete in Hoeheneinheiten, Vorder- und Rueckansicht, Geraete ausserhalb der Racks, Netzwerkverbindungen zwischen Ports, IP- und VLAN-Uebersicht, Steckdosenleisten, Garantiedaten sowie QR-Etiketten zum Ausdrucken.
Alles steckt in diesem einen Container - Oberflaeche, Schnittstelle und die PostgreSQL-Datenbank. Es muss nichts weiter installiert werden.
Beim ersten Aufruf legt man sich ein Konto an; jedes Konto hat seinen eigenen, getrennten Bereich. Wer moechte, schaltet dort auch die Zwei-Faktor-Anmeldung ein.
Alle Daten liegen im Datenpfad (/config): Datenbank, Geraetebilder, naechtliche Sicherungen und der Anwendungsschluessel.
Readme
View on GitHub
Dokumentation für Serverschrank und Heimnetz – selbst gehostet, in einem Container.
English: RackView documents server racks and home networks: devices in rack units with front and rear view, ports and cable connections, network map, IPs and VLANs, power outlets, warranty dates and QR labels. It ships as a single Docker image with a built-in PostgreSQL database. The user interface is currently German only. Quick start: see Installation below – the commands are the same in any language. Built by Alexander Schubert with the help of Claude, an AI assistant – see Über das Projekt.

Funktionen
- Racks mit Vorder- und Rückansicht, beliebiger Höhe und Geräten, die nur vorne oder nur hinten sitzen – etwa Patchpanel vorne, Steckdosenleiste hinten
- Gerätefronten, die aussehen wie das Gerät: RJ45- und SFP-Buchsen, belegte Ports farbig, Steckdosenleisten mit ihren Schukodosen
- Standorte für alles, was nicht im Rack steht: Access Points, Modem, Kameras
- Ports und Verbindungen zwischen Geräten, mit Kabeltyp und Länge, PoE je Port
- Netzwerkplan, der sich aus den Verbindungen selbst zeichnet
- IP-Adressen und VLANs mit Übersicht, wer welche Adresse belegt
- Steckplätze an Steckdosenleiste und USV: welches Gerät hängt wo
- Kaufdatum und Garantie mit Warnung, bevor die Garantie ausläuft
- QR-Etiketten für A4-Bögen oder Etikettendrucker – Scannen öffnet das Gerät
- Export als CSV, PDF und JSON – die JSON-Datei ist eine vollständige Sicherung und lässt sich wieder einlesen
- Konten mit getrennten Bereichen, Zwei-Faktor-Anmeldung und optional Anmeldung über Authentik oder einen anderen OIDC-Anbieter
- Helle und dunkle Ansicht
- Nächtliche Sicherung der Datenbank
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Installation
Im Image steckt alles: Oberfläche, Schnittstelle und PostgreSQL. Ein Port, ein Datenpfad – mehr braucht es nicht.
Unraid
RackView steht im App-Katalog: Apps → nach RackView suchen → Install. Port und Datenpfad prüfen, Apply.
Bald verfügbar: RackView ist für den App-Katalog freigegeben und erscheint dort mit dessen nächster Aktualisierung. Findest du es noch nicht, nimm so lange den Weg über die Vorlage.
Ohne App-Katalog geht es über die Vorlage (Konsole von Unraid, oben rechts >_):
wget -O /boot/config/plugins/dockerMan/templates-user/my-RackView.xml \
https://raw.githubusercontent.com/alexanderschubert/rackview/main/templates/rackview.xml
Dann Docker → Add Container, oben unter User templates RackView wählen. Ausführlich, mit Updates und Fehlersuche: unraid/README.md
Docker
docker run -d --name rackview \
--restart unless-stopped \
-p 8080:80 \
-v /pfad/zu/rackview:/config \
-e TZ=Europe/Berlin \
ghcr.io/alexanderschubert/rackview:latest
Docker Compose
services:
rackview:
image: ghcr.io/alexanderschubert/rackview:latest
container_name: rackview
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./rackview:/config
environment:
TZ: Europe/Berlin
Erster Start
Der erste Start dauert etwas länger – die Datenbank wird angelegt. Danach
http://<server>:8080 aufrufen und ein Konto anlegen. Das erste Konto wird
Administrator.
Ist RackView aus dem Internet erreichbar, danach die Selbstregistrierung abschalten
(RACKVIEW_REGISTRATION=false). Weitere Konten legt der Administrator dann in den
Einstellungen an.
Was im Datenpfad liegt
/config/db Datenbank (PostgreSQL)
/config/uploads hochgeladene Gerätebilder
/config/backups nächtliche Sicherungen der Datenbank
/config/app.key Anwendungsschlüssel
/config/db-passwort Passwort der eingebauten Datenbank
app.keygut aufheben. Mit ihm sind die Zwei-Faktor-Geheimnisse verschlüsselt. Wer den Datenpfad sichert, hat ihn automatisch dabei.
Updates
docker pull ghcr.io/alexanderschubert/rackview:latest
docker rm -f rackview # danach den run-Befehl von oben erneut ausführen
Mit Compose: docker compose pull && docker compose up -d. Auf Unraid genügt
Check for Updates in der Docker-Übersicht.
Die Datenbank wird beim Start automatisch angepasst, die Daten im Datenpfad bleiben
unberührt. Wer eine bestimmte Fassung festhalten will, nimmt statt latest eine
Versionsnummer, etwa ghcr.io/alexanderschubert/rackview:1.0.0 – alle Fassungen
stehen unter Packages.
Einstellungen
Alle Einstellungen sind Umgebungsvariablen und optional. Die wichtigsten:
| Variable | Standard | Bedeutung |
|---|---|---|
TZ |
Europe/Berlin |
Zeitzone für Protokolle und Sicherung |
RACKVIEW_REGISTRATION |
true |
Selbstregistrierung auf der Anmeldeseite |
APP_URL |
– | nur hinter einem Reverse-Proxy nötig, z. B. https://rack.example.de |
BACKUP_SCHEDULE |
0 3 * * * |
Zeitpunkt der Sicherung (Cron); leer schaltet sie ab |
RETENTION_DAYS |
14 |
Aufbewahrung der Sicherungen in Tagen |
DB_HOST |
– | leer = eingebaute Datenbank; gesetzt = eigene PostgreSQL-Datenbank |
OIDC_ENABLED |
false |
Anmeldung über Authentik o. ä. freischalten |
Die vollständige Liste, externe Datenbank und die Einrichtung von OIDC stehen in unraid/README.md – sie gelten für jede Docker-Installation, nicht nur für Unraid.
Hilfe und Mitmachen
- Fehler gefunden oder eine Idee? Gern als Issue.
- Sicherheitslücke? Bitte nicht als öffentliches Issue, sondern über Security → Report a vulnerability.
- Selbst bauen und entwickeln: ENTWICKLUNG.md
Gebaut mit Laravel, Vue 3 und PostgreSQL.
Über das Projekt
RackView ist aus meinem eigenen Homelab entstanden. Ideen, Aufbau und Entscheidungen stammen von mir, getestet wird im eigenen Rack auf Unraid. Den Code schreibe ich zum großen Teil zusammen mit Claude, einem KI-Assistenten von Anthropic – deshalb steht Claude in den Commits als Co-Autor.
Lizenz
Media gallery
1 / 7Install RackView on Unraid in a few clicks.
Find RackView in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/alexanderschubert/rackview:latestRuntime arguments
- Web UI
http://[IP]:[PORT:80]/- Network
bridge- Shell
bash- Privileged
- false
Template configuration
Port, unter dem RackView im Browser erreichbar ist.
- Target
- 80
- Default
- 8080
- Value
- 8080
Hier liegen Datenbank, Geraetebilder, Sicherungen und der Anwendungsschluessel. Dieser Pfad muss erhalten bleiben - und er darf nicht auf den Projektordner mit dem Quelltext zeigen.
- Target
- /config
- Default
- /mnt/user/appdata/rackview-app
- Value
- /mnt/user/appdata/rackview-app
Zeitzone fuer die Protokolle und den Zeitpunkt der naechtlichen Sicherung.
- Target
- TZ
- Default
- Europe/Berlin
- Value
- Europe/Berlin
true = auf der Anmeldeseite kann sich jeder ein Konto anlegen. Nach dem Anlegen des eigenen Kontos besser auf false setzen, vor allem wenn RackView aus dem Internet erreichbar ist. Weitere Konten legt dann der Admin in den Einstellungen an.
- Target
- RACKVIEW_REGISTRATION
- Default
- true
- Value
- true
Cron-Ausdruck fuer die Sicherung der Datenbank nach /config/backups. Leer lassen schaltet die Sicherung ab.
- Target
- BACKUP_SCHEDULE
- Default
- 0 3 * * *
- Value
- 0 3 * * *
Aeltere Sicherungen werden geloescht.
- Target
- RETENTION_DAYS
- Default
- 14
- Value
- 14
Nur noetig, wenn RackView hinter einem Reverse-Proxy unter einem festen Namen laeuft, z.B. https://rack.example.de
- Target
- APP_URL
Leer lassen. Beim ersten Start wird ein Schluessel erzeugt und in /config/app.key abgelegt. Nur setzen, wenn ein vorhandener Stand uebernommen wird - der Schluessel muss dann genau der alte sein.
- Target
- APP_KEY
true = nach einem Update wird die Datenbank automatisch angepasst. Nur zur Fehlersuche abschalten.
- Target
- AUTO_MIGRATE
- Default
- true
- Value
- true
true schaltet die Anmeldung über einen OIDC-Anbieter frei, z.B. Authentik. Die Anmeldung mit Passwort bleibt daneben bestehen. Im Anbieter als Redirect URI eintragen: http://adresse/api/auth/oidc/callback
- Target
- OIDC_ENABLED
- Default
- false
- Value
- false
Adresse des Anbieters, z.B. https://auth.example.de/application/o/rackview/ - dort liegt auch /.well-known/openid-configuration.
- Target
- OIDC_ISSUER
Client-ID der Application im Anbieter.
- Target
- OIDC_CLIENT_ID
Client-Secret der Application im Anbieter.
- Target
- OIDC_CLIENT_SECRET
Beschriftung des Knopfes auf der Anmeldeseite.
- Target
- OIDC_LABEL
- Default
- Mit Authentik anmelden
- Value
- Mit Authentik anmelden
Leer lassen, dann laeuft PostgreSQL im Container. Nur ausfuellen, wenn eine eigene PostgreSQL-Datenbank benutzt werden soll - dann sind auch Name, Benutzer und Passwort noetig.
- Target
- DB_HOST
Port der externen Datenbank.
- Target
- DB_PORT
- Default
- 5432
- Value
- 5432
Name der Datenbank.
- Target
- DB_DATABASE
- Default
- rackview
- Value
- rackview
Benutzer der Datenbank.
- Target
- DB_USERNAME
- Default
- rackview
- Value
- rackview
Nur bei externer Datenbank noetig. Die eingebaute Datenbank vergibt sich ihr Passwort selbst (/config/db-passwort).
- Target
- DB_PASSWORD





