April 9, 20242 yr 2 hours ago, The_Holocron said: Okay, I'm clearly being dense today. I keep getting this error: text error warn system array login 2024/04/08 21:59:59 ERROR Cannot read conf.yml error="read /app/conf.yml: is a directory" ** Press ANY KEY to close this window ** I have a text file named "conf.yml" inside the folder "/mnt/user/appdata/unraid-simple-monitoring-api/conf.yml" and I get the error above. I tried to move it to "/mnt/user/appdata/unraid-simple-monitoring-api/" but same. I am also having this issue. the instructions are not very clear. Have done both config.yml inside the config.yml folder as well as the main app/unraid-simple-monitoring-api/ folder
April 9, 20242 yr 21 minutes ago, Schwaby412 said: I am also having this issue. the instructions are not very clear. Have done both config.yml inside the config.yml folder as well as the main app/unraid-simple-monitoring-api/ folder I think there is an error in the container image and it's getting confused looking in a folder named "conf.yml".
April 9, 20242 yr 1 hour ago, The_Holocron said: I think there is an error in the container image and it's getting confused looking in a folder named "conf.yml". Go it running remove the /config.yml at the end.
April 9, 20242 yr Author 5 hours ago, Schwaby412 said: Go it running remove the /config.yml at the end. While this works, it should not be necessary, you can mount files directly in Docker, which is what the default configuration does. My configuration, which is the default, has: - container path: /app/conf.yml - host path: /mnt/user/appdata/unraid-simple-monitoring-api/conf.yml Just make sure you restart the app once you have made sure that the file you specify in the mount binding exists. The error "read /app/conf.yml: is a directory" is due to how Docker handles misconfigured mount points, if the host file/directory specified to be mounted at "/app/conf.yml" does not exist, Docker will create an empty directory in its place, and you will get this error, which I admit is not very helpful.
April 9, 20242 yr 1 hour ago, NebN said: While this works, it should not be necessary, you can mount files directly in Docker, which is what the default configuration does. My configuration, which is the default, has: - container path: /app/conf.yml - host path: /mnt/user/appdata/unraid-simple-monitoring-api/conf.yml Just make sure you restart the app once you have made sure that the file you specify in the mount binding exists. The error "read /app/conf.yml: is a directory" is due to how Docker handles misconfigured mount points, if the host file/directory specified to be mounted at "/app/conf.yml" does not exist, Docker will create an empty directory in its place, and you will get this error, which I admit is not very helpful. I think the issue is that when the template runs with the default settings, it is creating a folder named "conf.yml" at /mnt/user/appdata/unraid-simple-monitoring-api/ because the "conf.yml" file doesn't exist. In my opinion, it would be better to just point to the folder, rather than the file directly. I would change it to: - container path: /app - host path: /mnt/user/appdata/unraid-simple-monitoring-api or - container path: /app/config - host path: /mnt/user/appdata/unraid-simple-monitoring-api/config But. I will try the notes above and let you know if it works. UPDATE: The default settings work on restart, but you have to delete the erroneous "conf.yml" folder that the template automatically creates. Edited April 9, 20242 yr by The_Holocron update
April 9, 20242 yr Author 1 hour ago, The_Holocron said: UPDATE: The default settings work on restart, but you have to delete the erroneous "conf.yml" folder that the template automatically creates. Copying my response from GitHub so it's visible to anyone else who might encounter this problem: This is very interesting, I just completely uninstalled and reinstalled the app, while also removing the conf folder, and it does in fact create a folder named conf.yml upon first starting the app, which is certainly confusing. This is not something I had noticed in my testing so far. I'll see what I can do to avoid this in future installations. Thanks for bringing this to my attention!
April 9, 20242 yr Cool. If you need to test something, let me know. Happy to help. Works great otherwise. Any possibility of adding temperature attributes?
April 9, 20242 yr Author 38 minutes ago, The_Holocron said: Cool. If you need to test something, let me know. Happy to help. Works great otherwise. Any possibility of adding temperature attributes? Temperature is tricky, but I'll see what's possible without having any software dependencies.
June 23, 20242 yr Author On 4/9/2024 at 7:04 PM, The_Holocron said: Cool. If you need to test something, let me know. Happy to help. Works great otherwise. Any possibility of adding temperature attributes? Temperature is now available. Disks and CPU. CPU temperature file might have to be specified in the configuration, you can read more about it on the readme. Edited June 23, 20242 yr by NebN
July 15, 20241 yr On 4/1/2024 at 6:05 PM, IggyWhite said: For me, almost everything works fine. Problem is, here and there, seemingly at random, there is a parsing error: ... [2024-04-01T20:49:31.797Z] warn: Invalid data for widget 'customapi' endpoint 'null': Expected:undefined Parse error: SyntaxError: Unexpected token j in JSON at position 0 Data: {"type":"Buffer","data":[106,115,111,110,58,32,117,110,115,117,112,112,111,114,116,101,100,32,118,97,108,117,101,58,32,78,97,78]} [2024-04-01T20:49:51.909Z] warn: Invalid data for widget 'customapi' endpoint 'null': Expected:undefined Parse error: SyntaxError: Unexpected token j in JSON at position 0 Data: {"type":"Buffer","data":[106,115,111,110,58,32,117,110,115,117,112,112,111,114,116,101,100,32,118,97,108,117,101,58,32,78,97,78]} [2024-04-01T20:50:01.985Z] warn: Invalid data for widget 'customapi' endpoint 'null': Expected:undefined Parse error: SyntaxError: Unexpected token j in JSON at position 0 Data: {"type":"Buffer","data":[106,115,111,110,58,32,117,110,115,117,112,112,111,114,116,101,100,32,118,97,108,117,101,58,32,78,97,78]} ... and a random disk widget reports an error: On the next refresh, the error goes away completely for a while, or appears for some other disk. For the life of me, I can't find the reason. p.s. First seven widgets use Glances service. And I've never had this kind of problem with it. Great job, that was impressive! Would you mind to share your code? I'd love to try something similar!
August 9, 20241 yr Sure, here it is. It's nothing fancy or smart, but if it can help you, I'm glad. Of course, your IP addresses/ports and/or usernames/passwords may vary. bookmarks.yaml: - Server management: - Server1 (OMV): - abbr: AN href: http://192.168.1.26:800 - Server2 (OMV): - abbr: AU href: http://192.168.1.29 - Server3 (UNRAID): - abbr: HY href: http://192.168.1.27 - Server4 (ESXi): - abbr: OR href: http://192.168.1.23 - Server5 (UNRAID): - abbr: CY href: http://192.168.1.30 - Server1 (CasaOS): - abbr: ANC href: http://192.168.1.26:81 - Server2 (CasaOS): - abbr: AUC href: http://192.168.1.29:81 - Remote access controllers: - Server1: - abbr: AN href: http://192.168.1.17 - Server2: - abbr: AU href: http://192.168.1.18 - Server3: - abbr: HY href: http://192.168.1.13 - Server4: - abbr: OR href: http://192.168.1.14 - Server5: - abbr: CY href: http://192.168.1.19 - Chassis1: - abbr: FX href: http://192.168.1.10 - Server6: - abbr: ER href: http://192.168.1.11 - Server7: - abbr: FO href: http://192.168.1.12 - LANSwitch1: - abbr: UM href: http://192.168.1.5 settings.yaml title: Homepage Home headerStyle: boxedWidgets color: slate providers: openweathermap: openweathermapapikey weatherapi: weatherapiapikey layout: Server1: useEqualHeights: true style: row columns: 5 disableCollape: true Server2: useEqualHeights: true style: row columns: 5 disableCollapse: true Server3: useEqualHeights: true style: row columns: 4 disableCollapse: true Server4: style: row columns: 5 disableCollapse: true Server5: style: row columns: 5 disableCollapse: true Server management: useEqualHeights: true style: row columns: 5 Remote access controllers: useEqualHeights: true style: row columns: 5 widgets.yaml - resources: label: System expanded: true cpu: true memory: true cputemp: true uptime: true - resources: label: Storage expanded: true disk: - / # - /disk1 # - /mnt/disk2 # - /mnt/disk3 # - /mnt/mcache # - /mnt/vcache - search: provider: duckduckgo target: _blank services.yaml - Server3: - Dell R730xd: icon: unraid widget: type: glances url: http://192.168.1.27:61208 metric: info - CPU: icon: thunderhub-light widget: type: glances url: http://192.168.1.27:61208 metric: cpu - Memory: widget: type: glances url: http://192.168.1.27:61208 metric: memory - Network: widget: type: glances url: http://192.168.1.27:61208 metric: network:eth0 - Processes: widget: type: glances url: http://192.168.1.27:61208 metric: process - CPU 1 temperature: widget: type: glances url: http://192.168.1.27:61208 metric: sensor:Package id 0 - CPU 2 temperature: widget: type: glances url: http://192.168.1.27:61208 metric: sensor:Package id 1 - Disk 1: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: array: 0: total label: total format: number suffix: "GB" - field: array: 0: used label: used format: number suffix: "GB" additionalField: field: array: 0: used_percent format: percent prefix: "(" suffix: ")" - field: array: 0: free label: free format: number suffix: "GB" additionalField: field: array: 0: free_percent format: percent prefix: "(" suffix: ")" - Disk 2: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: array: 1: total label: total format: number suffix: "GB" - field: array: 1: used label: used format: number suffix: "GB" additionalField: field: array: 1: used_percent format: percent prefix: "(" suffix: ")" - field: array: 1: free label: free format: number suffix: "GB" additionalField: field: array: 1: free_percent format: percent prefix: "(" suffix: ")" - Disk 3: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: array: 2: total label: total format: number suffix: "GB" - field: array: 2: used label: used format: number suffix: "GB" additionalField: field: array: 2: used_percent format: percent prefix: "(" suffix: ")" - field: array: 2: free label: free format: number suffix: "GB" additionalField: field: array: 2: free_percent format: percent prefix: "(" suffix: ")" - MCache: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: cache: 0: total label: total format: number suffix: "GB" - field: cache: 0: used label: used format: number suffix: "GB" additionalField: field: cache: 0: used_percent format: percent prefix: "(" suffix: ")" - field: cache: 0: free label: free format: number suffix: "GB" additionalField: field: cache: 0: free_percent format: percent prefix: "(" suffix: ")" - VCache: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: cache: 1: total label: total format: number suffix: "GB" - field: cache: 1: used label: used format: number suffix: "GB" additionalField: field: cache: 1: used_percent format: percent prefix: "(" suffix: ")" - field: cache: 1: free label: free format: number suffix: "GB" additionalField: field: cache: 1: free_percent format: percent prefix: "(" suffix: ")" #- Server1: # - Dell R630: # icon: openmediavault # widget: # type: glances # url: http://192.168.1.26:61208 # metric: info # - CPU: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: cpu # - Memory: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: memory # - Network: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: network:eth0 # - Processes: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: process # - CPU temperature: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: sensor:Package id 0 # - S.M.A.R.T.: # widget: # type: openmediavault # url: http://192.168.1.26:800 # username: xxxxxx # password: xxxxxx # method: smart.getListBg - Server2: - Dell R630: icon: openmediavault widget: type: glances url: http://192.168.1.29:61208 metric: info - CPU: widget: type: glances url: http://192.168.1.29:61208 metric: cpu - Memory: widget: type: glances url: http://192.168.1.29:61208 metric: memory - Network: widget: type: glances url: http://192.168.1.29:61208 metric: network:eth0 - Processes: widget: type: glances url: http://192.168.1.29:61208 metric: process - CPU temperature: widget: type: glances url: http://192.168.1.29:61208 metric: sensor:Package id 0 - S.M.A.R.T.: widget: type: openmediavault url: http://192.168.1.29 username: xxxxxx password: xxxxxx method: smart.getListBg
January 12, 20251 yr On 8/9/2024 at 4:56 AM, IggyWhite said: Sure, here it is. It's nothing fancy or smart, but if it can help you, I'm glad. Of course, your IP addresses/ports and/or usernames/passwords may vary. bookmarks.yaml: - Server management: - Server1 (OMV): - abbr: AN href: http://192.168.1.26:800 - Server2 (OMV): - abbr: AU href: http://192.168.1.29 - Server3 (UNRAID): - abbr: HY href: http://192.168.1.27 - Server4 (ESXi): - abbr: OR href: http://192.168.1.23 - Server5 (UNRAID): - abbr: CY href: http://192.168.1.30 - Server1 (CasaOS): - abbr: ANC href: http://192.168.1.26:81 - Server2 (CasaOS): - abbr: AUC href: http://192.168.1.29:81 - Remote access controllers: - Server1: - abbr: AN href: http://192.168.1.17 - Server2: - abbr: AU href: http://192.168.1.18 - Server3: - abbr: HY href: http://192.168.1.13 - Server4: - abbr: OR href: http://192.168.1.14 - Server5: - abbr: CY href: http://192.168.1.19 - Chassis1: - abbr: FX href: http://192.168.1.10 - Server6: - abbr: ER href: http://192.168.1.11 - Server7: - abbr: FO href: http://192.168.1.12 - LANSwitch1: - abbr: UM href: http://192.168.1.5 settings.yaml title: Homepage Home headerStyle: boxedWidgets color: slate providers: openweathermap: openweathermapapikey weatherapi: weatherapiapikey layout: Server1: useEqualHeights: true style: row columns: 5 disableCollape: true Server2: useEqualHeights: true style: row columns: 5 disableCollapse: true Server3: useEqualHeights: true style: row columns: 4 disableCollapse: true Server4: style: row columns: 5 disableCollapse: true Server5: style: row columns: 5 disableCollapse: true Server management: useEqualHeights: true style: row columns: 5 Remote access controllers: useEqualHeights: true style: row columns: 5 widgets.yaml - resources: label: System expanded: true cpu: true memory: true cputemp: true uptime: true - resources: label: Storage expanded: true disk: - / # - /disk1 # - /mnt/disk2 # - /mnt/disk3 # - /mnt/mcache # - /mnt/vcache - search: provider: duckduckgo target: _blank services.yaml - Server3: - Dell R730xd: icon: unraid widget: type: glances url: http://192.168.1.27:61208 metric: info - CPU: icon: thunderhub-light widget: type: glances url: http://192.168.1.27:61208 metric: cpu - Memory: widget: type: glances url: http://192.168.1.27:61208 metric: memory - Network: widget: type: glances url: http://192.168.1.27:61208 metric: network:eth0 - Processes: widget: type: glances url: http://192.168.1.27:61208 metric: process - CPU 1 temperature: widget: type: glances url: http://192.168.1.27:61208 metric: sensor:Package id 0 - CPU 2 temperature: widget: type: glances url: http://192.168.1.27:61208 metric: sensor:Package id 1 - Disk 1: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: array: 0: total label: total format: number suffix: "GB" - field: array: 0: used label: used format: number suffix: "GB" additionalField: field: array: 0: used_percent format: percent prefix: "(" suffix: ")" - field: array: 0: free label: free format: number suffix: "GB" additionalField: field: array: 0: free_percent format: percent prefix: "(" suffix: ")" - Disk 2: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: array: 1: total label: total format: number suffix: "GB" - field: array: 1: used label: used format: number suffix: "GB" additionalField: field: array: 1: used_percent format: percent prefix: "(" suffix: ")" - field: array: 1: free label: free format: number suffix: "GB" additionalField: field: array: 1: free_percent format: percent prefix: "(" suffix: ")" - Disk 3: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: array: 2: total label: total format: number suffix: "GB" - field: array: 2: used label: used format: number suffix: "GB" additionalField: field: array: 2: used_percent format: percent prefix: "(" suffix: ")" - field: array: 2: free label: free format: number suffix: "GB" additionalField: field: array: 2: free_percent format: percent prefix: "(" suffix: ")" - MCache: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: cache: 0: total label: total format: number suffix: "GB" - field: cache: 0: used label: used format: number suffix: "GB" additionalField: field: cache: 0: used_percent format: percent prefix: "(" suffix: ")" - field: cache: 0: free label: free format: number suffix: "GB" additionalField: field: cache: 0: free_percent format: percent prefix: "(" suffix: ")" - VCache: widget: display: list type: customapi url: http://192.168.1.27:24940 method: GET mappings: - field: cache: 1: total label: total format: number suffix: "GB" - field: cache: 1: used label: used format: number suffix: "GB" additionalField: field: cache: 1: used_percent format: percent prefix: "(" suffix: ")" - field: cache: 1: free label: free format: number suffix: "GB" additionalField: field: cache: 1: free_percent format: percent prefix: "(" suffix: ")" #- Server1: # - Dell R630: # icon: openmediavault # widget: # type: glances # url: http://192.168.1.26:61208 # metric: info # - CPU: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: cpu # - Memory: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: memory # - Network: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: network:eth0 # - Processes: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: process # - CPU temperature: # widget: # type: glances # url: http://192.168.1.26:61208 # metric: sensor:Package id 0 # - S.M.A.R.T.: # widget: # type: openmediavault # url: http://192.168.1.26:800 # username: xxxxxx # password: xxxxxx # method: smart.getListBg - Server2: - Dell R630: icon: openmediavault widget: type: glances url: http://192.168.1.29:61208 metric: info - CPU: widget: type: glances url: http://192.168.1.29:61208 metric: cpu - Memory: widget: type: glances url: http://192.168.1.29:61208 metric: memory - Network: widget: type: glances url: http://192.168.1.29:61208 metric: network:eth0 - Processes: widget: type: glances url: http://192.168.1.29:61208 metric: process - CPU temperature: widget: type: glances url: http://192.168.1.29:61208 metric: sensor:Package id 0 - S.M.A.R.T.: widget: type: openmediavault url: http://192.168.1.29 username: xxxxxx password: xxxxxx method: smart.getListBg Thank you for this, just had sent you a pm for your code. This helps.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.