Looking to learn docker compose -> TrueNAS Scale Custom app (Scrutiny)

Hi, I’m trying to learn how to deploy custom apps (instead of using TrueCharts). I wanted to try the simple app - Scrutiny. I was able to get it deployed and have the web UI load up but it won’t show any of the disks.

here’s the docker compose: AnalogJ/scrutiny: Hard Drive S.M.A.R.T Monitoring, Historical Trends & Real World Failure Thresholds (github.com)

And I am not sure what all becomes an Env variable and what all goes elsewhere. For example, the Scrutiy page says -v /run/udev:/run/udev:ro \ is an important component. Gemini says that this defines where the data about the drives is stored, I don’t know what that is in TrueNAS Scale. Stuff like that, just trying to learn but limited by my own knowledge. Any help would be welcome.

Thanks

AFAIK, The TrueNAS apps system only directly supports single docker containers, not compose.

There is a TrueCharts chart for a docker compose app (using docker-in-docker)

But take a look at this,

If you want to learn docker compose, this is probably the best way.

2 Likes

i’ve successfully setup scrutiny using jailmaker before.

however in order to do so i used the capabilities in the docker jail config in order to do so.

which we don’t do since that capabilities all was deprecated because it did some bad stuff.

This is the working docker compose i used

services:
  scrutiny:
    container_name: scrutiny
    image: ghcr.io/analogj/scrutiny:master-omnibus
    cap_add:
      - SYS_RAWIO
      - SYS_ADMIN
    ports:
      - 6180:8080 # webapp
      - 6186:8086 # influxDB admin
    volumes:
      - /run/udev:/run/udev:ro
      - /mnt/docker/data/scrutiny/config:/opt/scrutiny/config
      - /mnt/docker/data/scrutiny/influxdb:/opt/scrutiny/influxdb
    devices:
      - /dev/sda
      - /dev/sdb
      - /dev/sdc
      - /dev/sdd
      - /dev/sde
      - /dev/sdf
      - /dev/sdg

    restart: unless-stopped
networks: {}

i was later going to revise networking to this

    networks:
      - proxy
    restart: unless-stopped
#networks: {}


networks:
  proxy:
    external: true

Anyway if you want to deploy it, you will then need to add capability for SYS_RAWIO & SYS_ADMIN as binds in the docker jail config. But whether you should, i don’t know. You can find out. I didn’t think it was worth it till i knew more.

Just double checked, the omnibus only has sys_rawio as the only required capability. I can’t recall why i added sys_admin, so maybe that is not needed, you can try.

for latest docker compose the services line is no longer needed.

Oo i remember now

A note on –cap-addfor this container: *SYS_RAWIOis necessary to allow smartctl permission to query your device SMART data. *SYS_ADMIN is required for NVMe drives as per upstream issue [#26](https://github.com/AnalogJ/scrutiny/issues/26#issuecomment-696817130).

That said linuxserver release for scrutiny is older than analog’s github version. keep that in mind