Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Synology / NAS 11.06.2026 · 11 min Lesezeit

Snipe-IT auf dem Synology NAS installieren: IT-Inventarisierung mit System

Snipe-IT v8.6.1 per Container Manager auf dem Synology NAS installieren: mit korrektem APP_KEY, MariaDB-Healthcheck, Reverse-Proxy-Konfiguration und erstem Asset mit QR-Code-Etikett.

Grafik oder Screenshot zur Installation von Snipe-IT auf einem Synology NAS, um eine strukturierte IT-Inventarisierung für Geräte, Lizenzen und Zubehör mit einer selbst gehosteten Open-Source-Lösung umzusetzen.

Wer als KMU oder IT-Verantwortlicher den Überblick über Hardware, Software-Lizenzen und Zubehör behalten will, kommt an einem strukturierten Asset-Management nicht vorbei. Snipe-IT ist die führende Open-Source-Plattform in diesem Bereich: webbasiert, aktiv gepflegt (aktuell v8.6.1, Laravel 12 / PHP), mit Checkout/Checkin-Workflow, Wartungsprotokollen, benutzerdefinierten Feldern und QR-Code-Etiketten. Für KMU ist ein vollständiges IT-Inventar mit Seriennummern und Lizenznachweis nicht nur praktisch – es ist zunehmend Voraussetzung für Cyber-Versicherungen und Compliance-Audits. Das Synology NAS mit DSM 7.2 und Container Manager bietet eine ideale Heimat für Snipe-IT: kein separater Server nötig, keine Portainer-Abhängigkeit, einfache Datenverwaltung per File Station.

Voraussetzungen

  1. Synology NAS mit DSM 7.2 oder neuer und installiertem Container Manager
  2. Mindestens 2 GB RAM frei (4 GB empfohlen); Snipe-IT mit MariaDB belegt im Betrieb ca. 400–600 MB
  3. Mindestens 5 GB freier Speicher auf /volume1 für Docker-Images und Datenbankdateien
  4. SSH-Zugang zum NAS (für APP_KEY-Generierung und ggf. Rechte-Korrekturen)
  5. Feste lokale IP oder DDNS-Hostname (z. B. meinname.synology.me) für die APP_URL
  6. SSL-Zertifikat im DSM (Let's Encrypt oder eigenes) für den Reverse Proxy – empfohlen für produktiven Betrieb
  7. SMTP-Zugangsdaten optional, aber sinnvoll für Passwort-Reset und Benachrichtigungen

Schritt 1: Ordnerstruktur anlegen

Öffne die File Station im DSM und navigiere zu /volume1/docker. Lege dort den Ordner snipeit an, darin die Unterordner storage, db und optional logs. Alternativ per SSH:

mkdir -p /volume1/docker/snipeit/storage
mkdir -p /volume1/docker/snipeit/db
mkdir -p /volume1/docker/snipeit/logs

Die korrekte Eigentümerschaft richtet sich nach deiner Synology-Benutzer-ID. Die PUID/PGID trägst du später in die compose.yaml ein (Standard: PUID=1026, PGID=100). Deine eigene UID ermittelst du per SSH mit id deinbenutzername.

Verifizieren: In der File Station sollten die Ordner /volume1/docker/snipeit/storage, /volume1/docker/snipeit/db und /volume1/docker/snipeit/logs sichtbar sein. Alle drei müssen existieren, bevor der Stack gestartet wird.

Schritt 2: compose.yaml erstellen

Öffne den Container Manager, wechsle zu „Projekt“ und klicke auf „Erstellen“. Vergib den Projektnamen snipeit und wähle als Pfad /volume1/docker/snipeit. Füge folgende compose.yaml ein – passe die hervorgehobenen Werte an deine Umgebung an:

version: "3.8"

services:
  snipeit-db:
    image: mariadb:11.4.7
    container_name: snipeit-db
    restart: unless-stopped
    volumes:
      - /volume1/docker/snipeit/db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: "sicheres_root_passwort"
      MYSQL_DATABASE: "snipe"
      MYSQL_USER: "snipe"
      MYSQL_PASSWORD: "sicheres_passwort"
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      timeout: 1s
      retries: 5

  snipeit:
    image: snipe/snipe-it:v8.6.1
    container_name: snipeit
    restart: unless-stopped
    depends_on:
      snipeit-db:
        condition: service_healthy
    ports:
      - "8000:80"
    volumes:
      - /volume1/docker/snipeit/storage:/var/lib/snipeit
      - /volume1/docker/snipeit/logs:/var/www/html/storage/logs
    environment:
      APP_ENV: "production"
      APP_DEBUG: "false"
      APP_KEY: "base64:HIER_GENERIERTEN_KEY_EINTRAGEN"
      APP_URL: "https://snipeit.meinname.synology.me"
      APP_TIMEZONE: "Europe/Berlin"
      APP_FORCE_TLS: "true"
      APP_TRUSTED_PROXIES: "REMOTE_ADDR"
      SECURE_COOKIES: "true"
      DB_CONNECTION: "mysql"
      MYSQL_PORT_3306_TCP_ADDR: "snipeit-db"
      MYSQL_PORT_3306_TCP_PORT: "3306"
      MYSQL_DATABASE: "snipe"
      MYSQL_USER: "snipe"
      MYSQL_PASSWORD: "sicheres_passwort"
      TZ: "Europe/Berlin"
      PUID: "1026"
      PGID: "100"

Wichtige Hinweise zu den Umgebungsvariablen:

  1. APP_KEY: Platzhalter – wird in Schritt 3 generiert und hier eingetragen.
  2. APP_URL: Exakt die Adresse, unter der Snipe-IT erreichbar ist – kein abschließender Schrägstrich, sonst stimmen QR-Codes und E-Mail-Links nicht.
  3. MYSQL_PASSWORD muss in beiden Services identisch sein.
  4. Das Image snipe/snipe-it:v8.6.1 verwendet einen expliziten Versions-Tag. Die offizielle Dokumentation rät ausdrücklich von :latest ab, da unerwartete Major-Updates Breaking Changes und erzwungene Datenbank-Migrationen verursachen können.
  5. Auch bei MariaDB expliziten Tag verwenden: mariadb:11.4.7 ist die vom Snipe-IT-Entwicklungsteam getestete LTS-Version – und damit die sicherste Wahl.

Verifizieren: Speichere die compose.yaml, ohne den Stack zu starten. Prüfe im Container Manager unter „Projekt“, ob das Projekt aufgelistet wird. Die Images werden noch nicht gezogen – das passiert erst nach der APP_KEY-Generierung in Schritt 3.

Schritt 3: APP_KEY generieren

Der APP_KEY ist der Laravel-Verschlüsselungsschlüssel der Anwendung. Ohne einen gültigen Key startet Snipe-IT nicht und wirft den Fehler „No application encryption key has been specified“. Der Key muss einmalig generiert und dauerhaft in der compose.yaml hinterlegt werden.

Melde dich per SSH am NAS an und führe folgenden Befehl aus:

docker run --rm snipe/snipe-it:v8.6.1 php artisan key:generate --show

Der Befehl zieht das Image (falls noch nicht vorhanden) und gibt einen Schlüssel zurück:

base64:AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfGhIjK=

Kopiere die gesamte Ausgabe inklusive des Präfixes base64:. Öffne die compose.yaml im Container Manager (Projekt > snipeit > Bearbeiten) und ersetze base64:HIER_GENERIERTEN_KEY_EINTRAGEN mit dem kopierten Wert.

Verifizieren: Der eingetragene Wert muss genau dem Muster base64:<44-Zeichen-Base64-String>= entsprechen. Leerzeichen vor oder nach dem Wert führen zu Startfehlern. Prüfe den Eintrag nochmals, bevor du weitermachst.

Schritt 4: Synology Reverse Proxy einrichten

Für den HTTPS-Zugang über eine saubere Domain konfigurierst du den Synology Reverse Proxy unter DSM > Systemsteuerung > Anmeldungsportal > Erweitert > Reverse Proxy. Erstelle eine neue Regel:

EinstellungWert
QuellprotokollHTTPS
Quell-Hostnamesnipeit.meinname.synology.me
Quellport443
ZielprotokollHTTP
Ziel-Hostnamelocalhost
Zielport8000

Stelle sicher, dass für die Quell-Domain ein gültiges SSL-Zertifikat im DSM hinterlegt ist (DSM > Systemsteuerung > Sicherheit > Zertifikat). Synology Let's Encrypt-Zertifikate werden automatisch erneuert.

Die Variablen APP_TRUSTED_PROXIES=REMOTE_ADDR und SECURE_COOKIES=true in der compose.yaml sind beim Betrieb hinter diesem Reverse Proxy zwingend. Fehlen sie, entsteht eine endlose HTTPS-Redirect-Schleife – eines der häufigsten Probleme bei dieser Konstellation.

Verifizieren: Rufe nach dem Stack-Start https://snipeit.meinname.synology.me im Browser auf. Du solltest keine Zertifikatswarnung erhalten und auf die Snipe-IT-Startseite (oder den Setup-Wizard) weitergeleitet werden – nicht auf eine Fehlerseite oder Endlosschleife.

Schritt 5: Stack starten und Migrationen prüfen

Starte das Projekt im Container Manager über „Starten“. Container Manager zieht zunächst die Images für mariadb:11.4.7 (ca. 130 MB) und snipe/snipe-it:v8.6.1 (ca. 275–291 MB). Dank des konfigurierten Healthchecks wartet der Snipe-IT-Container, bis MariaDB vollständig initialisiert ist – das verhindert den sonst häufigen Verbindungsfehler beim ersten Start.

Nach dem Start prüfst du das Migrations-Log per SSH:

docker logs snipeit 2>&1 | grep -i migrat

Eine erfolgreiche Migration zeigt Einträge wie:

Migrating: 2016_06_02_000000_create_users_table
Migrated:  2016_06_02_000000_create_users_table (156.23ms)
...
Migrating: 2024_11_15_000000_add_eol_date_to_models_table
Migrated:  2024_11_15_000000_add_eol_date_to_models_table (12.41ms)

Erscheinen keine Migrations-Einträge oder nur Fehlermeldungen, warte 30–60 Sekunden und führe den Befehl erneut aus – der erste Datenbankaufbau dauert bei schwächeren NAS-Modellen etwas länger.

Verifizieren: Das Migrations-Log muss mit Migrated:-Einträgen abschließen, ohne Fehlermeldungen wie SQLSTATE oder Connection refused. Anschließend ist der Snipe-IT-Container im Container Manager als „Läuft“ markiert.

Schritt 6: Setup-Wizard und erste Einrichtung

Nach erfolgreichen Migrationen rufe im Browser folgende Adresse auf:

https://snipeit.meinname.synology.me/setup

Der Setup-Wizard führt dich in wenigen Schritten durch die Grundkonfiguration:

  1. Umgebungsprüfung: Snipe-IT prüft PHP-Version, Datenbankverbindung und Schreibrechte – alle Punkte sollten grün sein.
  2. Datenbankverbindung bestätigen: Die Zugangsdaten aus der compose.yaml werden automatisch übernommen.
  3. Admin-Konto anlegen: Vorname, Nachname, E-Mail-Adresse und sicheres Passwort festlegen.
  4. Grundeinstellungen: Zeitzone (Europe/Berlin), Datumsformat (TT.MM.JJJJ für DACH), Währung (EUR), Sprache (Deutsch) – diese Einstellungen lassen sich später jederzeit anpassen.

Nach Abschluss des Wizards wirst du automatisch auf das Dashboard weitergeleitet.

Verifizieren: Du landest nach dem Wizard-Abschluss auf dem Snipe-IT-Dashboard und kannst dich mit den Admin-Zugangsdaten anmelden. Die Spracheinstellung „Deutsch“ sollte im Interface sichtbar sein. Ruft man / auf, bevor der Wizard abgeschlossen ist, wird man zurück zu /setup umgeleitet – das ist erwartetes Verhalten, kein Fehler.

Schritt 7: Erstes Asset mit Etikett anlegen

Bevor du das erste Asset erfasst, lege die notwendigen Stammdaten an – Snipe-IT erzwingt eine Mindeststruktur:

  1. Einstellungen > Barcodes: Wähle den Barcode-Typ (QR-Code empfohlen, alternativ Code128). Hier kannst du auch ein Unternehmenslogo für die Etiketten hochladen.
  2. Einstellungen > Kategorien: Lege Kategorien an, z. B. „Laptop“, „Monitor“, „Server“, „Software-Lizenz“.
  3. Einstellungen > Hersteller: Füge relevante Hersteller hinzu (Dell, HP, Lenovo, Apple, Microsoft …).
  4. Einstellungen > Standorte: Definiere mindestens einen Standort, z. B. „Hauptbüro“ oder „Lager“.

Danach navigierst du zu Assets > Erstellen und erfasst das erste Gerät: Asset-Tag (automatisch vergeben oder manuell, z. B. „PC-0001“), Modell, Hersteller, Kategorie, Seriennummer (wichtig für Versicherungsnachweis) sowie Standort und optional zugewiesener Benutzer (Checkout). Nach dem Speichern ist das Asset direkt in der Liste sichtbar. Über den Button „Etikett drucken“ öffnet sich ein druckfertiges PDF mit QR-Code, Asset-Tag und Seriennummer – bereit für den Etikettendrucker.

Verifizieren: Das neue Asset erscheint in der Asset-Liste unter Assets > Alle Assets. Der QR-Code auf dem generierten Etikett muss beim Scannen exakt auf die Asset-Detailseite unter deiner konfigurierten APP_URL zeigen. Stimmt die URL nicht (z. B. weil APP_URL mit Slash endet oder falsch gesetzt ist), zeigt der Scan ins Leere.

Eckdaten auf einen Blick

EigenschaftWert
Image (App)snipe/snipe-it:v8.6.1
Image (Alpine)snipe/snipe-it:v8.6.1-alpine (ca. 111–142 MB)
Image (Datenbank)mariadb:11.4.7
Architekturenlinux/amd64, linux/arm64
Interner Port80 (Container) → 8000 (Host)
Volume App-Daten/volume1/docker/snipeit/storage → /var/lib/snipeit
Volume Datenbank/volume1/docker/snipeit/db → /var/lib/mysql
Volume Logs (optional)/volume1/docker/snipeit/logs → /var/www/html/storage/logs
RAM-Bedarf (Betrieb)ca. 400–600 MB (App + DB)
FrameworkLaravel 12 / PHP

Troubleshooting / Typische Fehler

  1. „No application encryption key has been specified“: Der APP_KEY fehlt oder ist ungültig. Prüfe, ob der vollständige String inklusive base64:-Präfix eingetragen ist und keine Leerzeichen enthält. Generiere ggf. einen neuen Key wie in Schritt 3 beschrieben, trage ihn ein und starte den Container neu.
  2. „SQLSTATE[HY000] [2002] Connection refused“: Der Snipe-IT-Container hat gestartet, bevor MariaDB bereit war. Prüfe, ob der Healthcheck in der compose.yaml korrekt konfiguriert ist und depends_on mit condition: service_healthy gesetzt ist. Starte den Stack ggf. neu.
  3. Endlose Redirect-Schleife (HTTPS): APP_TRUSTED_PROXIES=REMOTE_ADDR oder SECURE_COOKIES=true fehlen in der compose.yaml. Beide Variablen sind hinter dem Synology Reverse Proxy zwingend. Trage sie ein und starte den Container neu.
  4. Uploads oder Logs nicht schreibbar: Die Volume-Ordner gehören einem anderen Benutzer als dem Container-Prozess. Ermittle deine Synology-Benutzer-ID per SSH (id deinbenutzername) und passe PUID und PGID in der compose.yaml an.
  5. QR-Code-Links führen auf falsche URL: APP_URL ist falsch gesetzt – mit abschließendem Slash, falscher Domain oder falschem Protokoll. Der Wert muss exakt der im Browser aufgerufenen Adresse entsprechen, ohne Slash am Ende.
  6. Setup-Wizard nicht erreichbar nach Start: Die Datenbank-Migrationen laufen noch. Warte 1–2 Minuten und prüfe mit docker logs snipeit 2>&1 | grep -i migrat, ob die Migrationen abgeschlossen sind.
  7. Container startet, aber App zeigt 500-Fehler: Prüfe mit docker logs snipeit 2>&1 | tail -50 die letzten Log-Zeilen. Häufige Ursachen: falsches MYSQL_PASSWORD (stimmt nicht zwischen App und DB überein) oder fehlende Schreibrechte auf dem Storage-Volume.

Häufige Fragen

Muss ich Portainer installieren, oder reicht der Container Manager?

Portainer ist nicht erforderlich. Der Synology Container Manager ab DSM 7.2 unterstützt Docker-Compose-Projekte nativ: Container Manager öffnen > Projekt > Erstellen > compose.yaml einfügen. Wer Portainer bereits nutzt, kann den Stack selbstverständlich auch dort deployen – die compose.yaml funktioniert in beiden Umgebungen identisch.

Welche Synology-Modelle werden unterstützt?

Das offizielle Snipe-IT-Image unterstützt linux/amd64 (alle Synology NAS mit Intel/AMD-CPU – Plus-, Value- und Enterprise-Linie wie DS223+, DS923+, RS-Modelle) und linux/arm64 (neuere ARM-Modelle). Reine 32-Bit-ARM-Modelle werden nicht unterstützt. Für NAS-Modelle mit wenig RAM empfiehlt sich die Alpine-Variante snipe/snipe-it:v8.6.1-alpine mit ca. 111–142 MB statt 275–291 MB komprimiert.

Was ist der Unterschied zwischen Snipe-IT und GLPI?

Snipe-IT ist reines Asset-Management: Hardware-Inventar mit Seriennummern, Software-Lizenzen, Zubehör, Verbrauchsmaterial, Checkout/Checkin-Workflow und QR-Code-Etiketten. Ein eingebautes Helpdesk- oder Ticketsystem gibt es nicht. GLPI bietet dagegen ein vollständiges IT-Service-Management mit Ticketsystem, CMDB, Projektmodul und Wissensbank – ist aber deutlich komplexer in der Einrichtung. Wer beides braucht, schaut sich GLPI auf dem Synology NAS an.

Warum ist Snipe-IT für Cyber-Versicherungen relevant?

Viele Cyber-Versicherungen prüfen im Underwriting und im Schadensfall, ob das Unternehmen einen vollständigen Überblick über seine IT-Assets hat – Endpoints mit Seriennummern, Software-Lizenzen und Verantwortlichkeiten. Snipe-IT liefert genau diese Nachweise: ein auditfähiges Inventar mit Änderungsprotokoll. Welche konkreten Anforderungen Versicherer 2026 stellen, erklärt die Cyber-Versicherungs-Checkliste für KMU.

Wie führe ich ein Update auf eine neue Snipe-IT-Version durch?

Passe den Image-Tag in der compose.yaml an (z. B. v8.7.0), stoppe den Stack und ziehe das neue Image: docker pull snipe/snipe-it:v8.7.0. Starte den Stack neu – Snipe-IT führt ausstehende Datenbank-Migrationen automatisch beim Start aus. Prüfe das Migrations-Log wie in Schritt 5 beschrieben. Ein Backup der DB und des Storage-Volumes vor dem Update ist dringend empfohlen.

Wie richte ich E-Mail-Benachrichtigungen ein?

Trage SMTP-Parameter in die compose.yaml ein: MAIL_PORT_587_TCP_ADDR (SMTP-Host), MAIL_PORT_587_TCP_PORT (587), MAIL_ENV_USERNAME, MAIL_ENV_PASSWORD (bei Gmail: 16-stelliges App-Passwort, kein Account-Passwort), MAIL_ENV_FROM_ADDR und MAIL_ENV_ENCRYPTION=TLS. Starte den Container nach der Änderung neu. Die E-Mail-Konfiguration lässt sich auch nachträglich über Einstellungen > E-Mail in der Web-UI anpassen und testen.

Fazit

Snipe-IT auf dem Synology NAS ist eine schlanke, wartungsarme Lösung für das IT-Asset-Management im KMU. Der Container Manager übernimmt das Lifecycle-Management, MariaDB 11.4.7 sorgt für eine stabile Datenbasis, und der korrekt gesetzte APP_KEY zusammen mit den Reverse-Proxy-Variablen verhindert die häufigsten Startprobleme. Nach etwa 45 Minuten Einrichtungszeit steht ein vollständiges IT-Inventar – mit QR-Code-Etiketten, Lizenzmanagement und Audit-Trail – als solide Grundlage für Compliance-Dokumentation und Cyber-Versicherungsanforderungen. Ein strukturiertes IT-Inventar ist dabei keine bürokratische Pflicht, sondern praktischer Alltag: Wer im Schadensfall innerhalb von Minuten belegen kann, welche Geräte im Netz sind und welche Lizenzen laufen, spart Zeit, Nerven und Versicherungsärger.

Wer neben dem Asset-Management auch ein Helpdesk-System benötigt, findet in GLPI auf dem Synology NAS die passende Ergänzung. Für einen umfassenden Überblick über Docker-Sicherheit im Produktivbetrieb lohnt sich außerdem ein Blick auf Docker Compose absichern: Secrets, Healthchecks und Non-Root.

Weiterführende Anleitungen und Quellen

  1. GLPI auf dem Synology NAS: Helpdesk und IT-Asset-Management für KMU
  2. Cyber-Versicherung für KMU: Anforderungen und Checkliste 2026
  3. Docker Compose absichern: Secrets, Healthchecks und Non-Root
  4. Nginx Proxy Manager auf der Synology mit Container Manager einrichten

Offizielle Quellen: Snipe-IT Docker-Dokumentation (snipe-it.readme.io)Snipe-IT GitHub Repository mit docker-compose.ymlsnipe/snipe-it auf Docker Hub (Tags und Architekturen).