Written by 09:35 Docker, NAS, Synology, Ugreen Views: 18

OPSI auf einem Synology oder Ugreen NAS installieren (Docker Container Setup)

OPSI (Open PC Server Integration) ist eine Open-Source-Lösung für das automatisierte Client-Management in IT-Umgebungen. Mit OPSI kannst du Betriebssysteme verteilen, Software installieren, Inventarisierung durchführen und vieles mehr – zentral und automatisiert.

In diesem Beitrag zeige ich dir, wie du OPSI auf einem Synology NAS (z. B. DS920+) oder einem Ugreen NAS über Docker Compose im Container Manager installierst.


Was ist OPSI?

OPSI ist ein Enterprise-Tool zur zentralen Verwaltung von Windows-, Linux- und macOS-Clients. Es stammt ursprünglich aus dem Schul- und Verwaltungsbereich, ist aber längst auch im Unternehmensumfeld angekommen. Es ist besonders leistungsfähig bei:

  • Betriebssystemverteilung (inkl. PXE)
  • Softwareverteilung
  • Lizenzmanagement
  • Hardware- und Software-Inventarisierung

Voraussetzungen

Für Synology NAS

  • Synology NAS mit DSM 7.x oder höher
  • Docker / Container Manager installiert
  • Benutzer mit UID 1026 und GID 100 (Standard bei DSM)

Für Ugreen NAS

  • Ugreen NAS mit Docker-Funktion (z. B. über Portainer)
  • Benutzer mit UID 1000 und GID 100

Schritt 1: Verzeichnisstruktur vorbereiten

  1. Öffne auf deinem NAS den File Station.
  2. Navigiere zu: /volume1/docker/
  3. Lege dort einen neuen Ordner namens opsi an: /volume1/docker/opsi/
  4. Lege darunter folgende Unterordner an:
    • /volume1/docker/opsi/data
    • /volume1/docker/opsi/mysql
    • /volume1/docker/opsi/redis
    • /volume1/docker/opsi/grafana

Wichtig: Stelle sicher, dass diese Ordner deinem Benutzer gehören – auf Synology UID 1026 / GID 100, auf Ugreen UID 1000 / GID 100.


Schritt 2: Docker Compose-Datei erstellen

Für Synology NAS (UID 1026 / GID 100):

version: '3.8'

x-restart-policy: &restart-policy
  restart: unless-stopped

x-common-variables: &common-variables
  TZ: Europe/Berlin
  PUID: 1026
  PGID: 100

x-common-mysql-variables: &common-mysql-variables
  MYSQL_DATABASE: opsi
  MYSQL_USER: opsi
  MYSQL_PASSWORD: eeC9ku3iejeiriSh

x-common-redis-variables: &common-redis-variables
  REDIS_PASSWORD: ideeT2aeliesh4oo

x-common-grafana-variables: &common-grafana-variables
  GF_SECURITY_ADMIN_USER: admin
  GF_SECURITY_ADMIN_PASSWORD: shai6eeQuuQuuo0a

services:
  mysql:
    image: mariadb:10.7
    <<: *restart-policy
    command: --max_connections=1000 --max_allowed_packet=256M --sort_buffer_size=4M
    environment:
      <<: [*common-variables, *common-mysql-variables]
      MYSQL_ROOT_PASSWORD: oareaNg6Ooz4teik
      MYSQL_INITDB_SKIP_TZINFO: 1
    volumes:
      - /volume1/docker/opsi/mysql:/var/lib/mysql
    user: "1026:100"

  redis:
    image: redislabs/redistimeseries:latest
    <<: *restart-policy
    command: sh -c "redis-server --requirepass $$REDIS_PASSWORD --loadmodule /usr/lib/redis/modules/redistimeseries.so"
    environment:
      <<: [*common-variables, *common-redis-variables]
    volumes:
      - /volume1/docker/opsi/redis:/data
    user: "1026:100"

  grafana:
    image: grafana/grafana:latest
    <<: *restart-policy
    environment:
      <<: [*common-variables, *common-grafana-variables]
      GF_INSTALL_PLUGINS: simpod-json-datasource
      GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s:%(http_port)s/grafana"
    volumes:
      - /volume1/docker/opsi/grafana:/var/lib/grafana
    user: "1026:100"

  opsi-server:
    image: uibmz/opsi-server:4.3
    <<: *restart-policy
    depends_on:
      - mysql
      - redis
    ports:
      - "4447:4447"
      - "69:69/udp"
    hostname: opsi
    domainname: domain.tld
    environment:
      <<: [*common-variables, *common-mysql-variables, *common-grafana-variables, *common-redis-variables]
      MYSQL_HOST: mysql
      REDIS_HOST: redis
      GRAFANA_HOST: grafana
      OPSI_ADMIN_PASSWORD: vhahd8usaz
      OPSI_HOST_ROLE: configserver
      OPSI_TFTPBOOT: "true"
      OPSICONFD_GRAFANA_EXTERNAL_URL: /grafana
      OPSICONFD_LOG_LEVEL: 6
      OPSICONFD_LOG_LEVEL_FILE: 4
      USERNAME: opsi
    volumes:
      - /volume1/docker/opsi/data:/data
    user: "1026:100"

Für Ugreen NAS (UID 1000 / GID 100):

Ändere in obiger Datei:

PUID: 1000
PGID: 100


und alle user: "1026:100" zu:

user: "1000:100"



Schritt 3: Projekt im Synology Container Manager erstellen

  1. Öffne die Docker / Container Manager App.
  2. Gehe zu: Projekte > Erstellen > Benutzerdefiniertes Projekt.
  3. Wähle:
    • Projektname: opsi
    • Speicherort: /volume1/docker/opsi/
  4. Lade dort deine docker-compose.yml hoch oder füge sie im Editor ein.
  5. Klicke auf “Erstellen und starten”.

Der erste Start kann etwas länger dauern. Danach erreichst du OPSI über den Browser unter:

http://<NAS-IP>:4447

Login in OPSI

  • Benutzername: adminuser
  • Passwort: vhahd8usaz (wie in der Compose-Datei gesetzt)
  • One Time Password: leer lassen, sofern keine Zwei-Faktor-Authentifizierung aktiviert ist

Fazit

Mit dieser Anleitung betreibst du eine vollwertige OPSI-Umgebung direkt auf deinem NAS. Ideal für Testumgebungen, Schulungsnetzwerke oder sogar kleinere produktive Szenarien.

(Visited 18 times, 1 visits today)
Close