New updates available

openmediavault 7.4.9

  • Update locale files.
  • Several improvements.

openmediavault-onedrive 7.1.0

  • Upgrade to onedrive 2.5.2.
  • Update locale files.
  • Add Cleanup local files and Extra options configuration
    settings to the UI.

Make use of the DSL in the openmediavault-k8s plugin

The recipe editor of the openmediavault-k8s has a DSL (Domain Specific Language) that supports the user in getting specific information from their openmediavault host system in Kubernetes manifests.

The following functions are currently available:

  • hostname() – Get the hostname of the host.
  • domain() – Get the domain name of the host.
  • fqdn() – Get the FQDN of the host.
  • ipaddr(name=NULL) – Get the IPv4 address of the specified network interface. If not set, the IPv4 address of the interface of the first default route is used.
  • ipaddr6(name=NULL) – Get the IPv6 address of the specified network interface. If not set, the IPv6 address of the interface of the first default route is used.
  • uid(name) – Get the UID of the specified user.
  • gid(name) – Get the GID of the specified group.
  • sharedfolder_path(name) – Get the full path of the specified shared folder.
  • conf_get(id, uuid=NULL) – Get the specified database configuration object.
  • tz() – Get the time zone of the host.

The following filters are currently available:

  • get(key, default=NULL) – Get the specified key, e.g. foo.bar.baz from a dictionary.

For the built-in features of the used template engine please have a look here:

Here are several examples that make use of the DSL:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/instance: wetty
    app.kubernetes.io/name: wetty
  name: wetty
  namespace: wetty-app
spec:
  ...
  template:
    ...
    spec:
      containers:
        - image: docker.io/wettyoss/wetty:latest
          imagePullPolicy: IfNotPresent
          name: wetty
          ports:
            - containerPort: 3000
          securityContext:
            runAsNonRoot: true
            runAsUser: {{ uid('nobody') }}
            runAsGroup: {{ gid('nogroup') }}
          args:
            - "--port=3000"
            - "--base=/"
            - "--force-ssh"
            - "--ssh-port={{ conf_get('conf.service.ssh') | get('port') }}"
            - "--ssh-host={{ hostname() }}"
      restartPolicy: Always
...
persistence:
    import:
        enabled: true
        type: hostPath
        readOnly: true
        mountPath: /srv/import
        hostPath: {{ sharedfolder_path('images') }}
        hostPathType: Directory
apiVersion: v1
kind: PersistentVolume
metadata:
  name: config-dir
  labels:
    app.kubernetes.io/instance: plex-media-server
    app.kubernetes.io/name: plex-media-server
spec:
  storageClassName: shared-folder
  capacity:
    storage: 2Gi
  hostPath:
    path: {{ sharedfolder_path('media') }}
    type: Directory
  accessModes:
    - ReadWriteMany
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: immich-websecure
  namespace: immich-app
  ...
spec:
  entryPoints:
    - websecure
  routes:
    - match: Host(`immich.{{ ipaddr() }}.sslip.io`)
      kind: Rule
      services:
        - name: immich-server
          port: 3001

immich is available as openmediavault-k8s recipe

A new recipe for the immich self-hosted photo and video management solution has been released to the openmediavault-k8s-recipes GitHub repository. You can get it after updating the recipes list in your openmediavault-k8s plugin.

The following list of applications is now available:

  • filebrowser
  • immich
  • jellyfin
  • minio
  • photoprism
  • plex-media-server
  • wetty

Contributions from the community are welcome to increase the number of recipes.

New updates available

openmediavault 7.4.8

  • Update locale files.
  • Unify the sorting order of displayed data in the Disk Temperatures and S.M.A.R.T. Status dashboard widgets for a consistent user experience.
  • Issue #1825: Support Xen predictive network interface naming.

openmediavault-k8s 7.3.1

  • Update locale files.
  • Add the ipaddr and ipaddr6 functions to the recipe DSL (Domain Specific Language). These functions allow users to retrieve the IP address of the specified network interface, e.g. ipaddr('ens6'). If no network interface name is specified, the IP address of the network interface used for the default route is returned.

openmediavault-nut 7.0.5

  • Update locale files.
  • Make sure the NUT config parser is not irritated by the characters # and = in a password.

New updates available

openmediavault 7.4.7

  • Support host names according to RFC1123.

openmediavault 7.3.0

  • Upgrade K3S to v1.30.4+k3s1.
  • Create a wildcard SSL certificate.
  • Various improvements.