Code Monkey home page Code Monkey logo

hubleys-dashboard's Introduction

Hi there ๐Ÿ‘‹

My blog and current projects:

hubleys-dashboard's People

Contributors

dbondarchuk avatar dependabot[bot] avatar fieldofclay avatar knrdl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

hubleys-dashboard's Issues

Calculator Button

Could there be an integrated calculator? Either as a separate button or another tab option next to the Stopwatch & Timer?

A button below the calendar may be good placement too (toggle option for those not wanting it)

[BUG] Internal Error when menu is empty

With the below configuration, Hubleys will not display a dashboard, when the user is not part of any of the groups that are defined within the menu.

  - title: Stuff
    allow: true
    menu:
      - title: Item1
        allow: [ group:users1 ]
      - title: Item2
        allow: [ group:users2 ]
      - title: Item3
        allow: [ group:users3 ]

If the user is not part of any of the above groups, I would expect Hubleys to not show the "Stuff" tile.

This can be worked around by explicitly defining each of the menu groups in the parent, however this requires updating the configuration in two spots when groups change.

  - title: Stuff
    allow: [ group:users1, group:users2, group:users3 ]
...

Logging output:

Listening on 0.0.0.0:3000
TypeError: Cannot read properties of undefined (reading 'some')
    at file:///app/server/chunks/_page.svelte-bdea7f04.js:422:407
    at Object.$$render (file:///app/server/chunks/index2-be719a76.js:111:18)
    at file:///app/server/chunks/_page.svelte-bdea7f04.js:570:48
    at each (file:///app/server/chunks/index2-be719a76.js:82:12)
    at file:///app/server/chunks/_page.svelte-bdea7f04.js:569:102
    at Object.$$render (file:///app/server/chunks/index2-be719a76.js:111:18)
    at Object.default (file:///app/server/index.js:89:97)
    at file:///app/server/chunks/_layout.svelte-62f868ba.js:4790:36
    at Object.$$render (file:///app/server/chunks/index2-be719a76.js:111:18)
    at file:///app/server/index.js:54:101
Server shutdown

NGINX + OAuth2/OIDC Guide

Very interested in this project, wondering if you may have a guide in the works for NGINX + OAuth2?

Would love to integrate this with an auth provider that is 'higher-function' than Authelia (i.e., authentik, Keycloak, etc.)

GUI Method for Users to Add Sections + Tiles

Just curious to know if there are any plans down the road for some sort of GUI interface that allows modification of the dashboard?

If it is ever implemented, it would be nice if there can be layers of authority. E.g., Public/Admin created sections/tiles are fixed and cannot be modified or edited by users. Any User created section/tiles are added to the bottom of the config file so they appear below the higher authority Admin sections/tiles

Feature Request: Search Engine "Scrolling" and Search Bar Placement

Search Engine "Scrolling"
Currently if you want to select a new engine for the search bar you need to manually click the drop down box and then select the engine you want. Any idea if it'd be possible to turn this into a "scrollable" menu? i.e., Hover mouse over the box, use wheel to scroll up or down to select engine.

This would be a very nice comfort feature

Search Bar Placement
Could there be a toggle feature where the search bar is placed more in the center of the screen & made a bit larger so it is more prominent? Aesthetic similar to google is what I'm imagining

Tab Name Customization

Would it be possible to change how the 'Dashboard' page's name is displayed in tabs?

I'd like to set my instance to 'Home', but other users may want to customize to 'Hubley's', or 'Dash', or etc.

image

Background --> Random Images --> (Local) Photo Library

Would it be possible to have include a radio button in the random images options that connects to a local photo library?

The idea is to drop our own images into a folder (e.g., /data/backgrounds ) so that we can set Hubley's to alternate backgrounds to a personal/local photo library

Feature Request: set admins following groups

Hey, it seems the only way to setup a user as an admin is to add its userId to the compose file. Would it be possible to also handle a groupId, so that all users belonging to that said group would be set as admins?

[Issue] Stylesheets are not loading

I'd love to use this dashboard, since it is one of the only with forward auth possibilites.
But within my deployment, Hubleys seems to have problems with loading stylesheets:
image
Here the console output from Firefox:
image

My environment:
OS: TrueNAS SCALE 22.12.2
I used the custom-app from TrueCharts to deploy the hubleys-dashboard. And otherwise I had no issues with other docker images I deployed this way...

Permission Denied error

Hi! This project looks awesome, and I want to try it out.
But I always stuck on Error: EACCES: permission denied, mkdir 'every directory'.

Things I've tried:

  • Run as root.
  • Detached volume binding.
  • Running it on three different systems.
  • Running both edge and latest.
  • Defined PUID=1026 (my current user) and PGID=101 (administrative group) on Synology Container Manager.
  • I can't connect to the container since it was always abruptly closed after permission got denied.

Test systems I've tried:

  • Synology Container Manager 20.10.23-1437 running on DVA3221.
  • Docker Desktop 4.26.1 (131620) running on Windows 10.
  • Docker 20.10.21 running on Ubuntu 22.01.2 LTS VM.

I'm attaching the error log error.

}
Node.js v21.5.0
node:internal/fs/promises:855
  return await PromisePrototypeThen(
         ^
Error: EACCES: permission denied, mkdir '/data/logos'
    at async Object.mkdir (node:internal/fs/promises:855:10)
    at async Promise.all (index 0)
    at async onServerStartup (file:///app/server/chunks/hooks.server-0W6GFEIO.js:67:3)
    at async file:///app/server/chunks/hooks.server-0W6GFEIO.js:81:1 {
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/data/logos'
}
Node.js v21.5.0
node:internal/fs/promises:855
  return await PromisePrototypeThen(
         ^
Error: EACCES: permission denied, mkdir '/data/logos'
    at async Object.mkdir (node:internal/fs/promises:855:10)
    at async Promise.all (index 0)
    at async onServerStartup (file:///app/server/chunks/hooks.server-0W6GFEIO.js:67:3)
    at async file:///app/server/chunks/hooks.server-0W6GFEIO.js:81:1 {
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/data/logos'
}
Node.js v21.5.0
node:internal/fs/promises:855
  return await PromisePrototypeThen(
         ^
Error: EACCES: permission denied, mkdir '/data/logos'
    at async Object.mkdir (node:internal/fs/promises:855:10)
    at async Promise.all (index 0)
    at async onServerStartup (file:///app/server/chunks/hooks.server-0W6GFEIO.js:67:3)
    at async file:///app/server/chunks/hooks.server-0W6GFEIO.js:81:1 {
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/data/logos'
}
Node.js v21.5.0
node:internal/fs/promises:855
  return await PromisePrototypeThen(
         ^
Error: EACCES: permission denied, mkdir '/data/logos'
    at async Object.mkdir (node:internal/fs/promises:855:10)
    at async Promise.all (index 0)
    at async onServerStartup (file:///app/server/chunks/hooks.server-0W6GFEIO.js:67:3)
    at async file:///app/server/chunks/hooks.server-0W6GFEIO.js:81:1 {
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/data/logos'
}
Node.js v21.5.0
node:internal/fs/promises:855
  return await PromisePrototypeThen(
         ^
Error: EACCES: permission denied, mkdir '/data/logos'
    at async Object.mkdir (node:internal/fs/promises:855:10)
    at async Promise.all (index 0)
    at async onServerStartup (file:///app/server/chunks/hooks.server-0W6GFEIO.js:67:3)
    at async file:///app/server/chunks/hooks.server-0W6GFEIO.js:81:1 {
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/data/logos'
}
Node.js v21.5.0
node:internal/fs/promises:855
  return await PromisePrototypeThen(
         ^
Error: EACCES: permission denied, mkdir '/data/logos'
    at async Object.mkdir (node:internal/fs/promises:855:10)
    at async Promise.all (index 0)
    at async onServerStartup (file:///app/server/chunks/hooks.server-0W6GFEIO.js:67:3)
    at async file:///app/server/chunks/hooks.server-0W6GFEIO.js:81:1 {
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/data/logos'
}
Node.js v21.5.0

[FEATURE_REQUEST] walkxcode/dashboard-icons integration

Firstly, great app, exactly the type of dashboard I've been looking for!

It would be great to integrate walkxcode/dashboard-icons into Hubleys, so if the user can put in logo configuration like this:

  - title: Nextcloud
    url: https://nextcloud.com
    logo: di nextcloud.png

Hubley's would go and grab the icon (if it didn't exist in logos already), save it in logos, then use that as the logo. This same approach could be used with some other icon providers (Simple Icons, Material Icons etc) and would speed up the initial configuration process for new users.

Alternatively, an easier option would be to just link to them as sources for icons for new users to download themselves.

Brilliant

Seriously - this is the first of its kind in self hosted dashboards. Agnostic OIDC allowing me to restrict dashboard items based on groups is something I wanted for a long time!

If you take feature requests, i'd love the ability to be able to set default settings for my users (default them to unsplash or a custom wallpaper, for example)

It'd also be nice to be able to choose different locations for the apps to appear, like just under the search bar.

One last ask, would be to have a help text option, that would either display additional text information about a tile either on hover, or attached to a small ? on each tile with the property. Or however else.

Anyways, thank you again. So happy this exists.

How to open link in same tab?

Maybe I'm just missing a configuration option, but how do I open a link not in a new tab, but in the same (i.e. hubley's) tab?

Calendar Event Displays Incorrect Time

I've connected 2x ical calendars (one Google, one Outlook) and looks when you enter the detailed view for the calendar all events display as being from 6p-6p

image

But the times do appear correct on the default page
image

User Config Settings

Few questions regarding default-config.json

  • weather mode: when setting default to "lonlat", I'd imagine when a new user first joins the page Hubley's would request permission to their location, however this does not seem to be the case? Rather, user's still have to manually select zipcode or geolocation within settings.

  • While on the topic of weather... any chance can their be an added environment variable/config that would allow us to set default to imperial vs metric system for temp/windspeed/visability?

  • show_settings_text: when set to false does not appear to change anything. My understanding is this would disable the settings button so that users cannot modify backgrounds/weather/etc.

Compose and Demo error out

The following error I get is as follows:

mkdir: can't create directory '/data/logos': Permission denied

I am doing this as a root user in both Arch and Debian 11 system for evaluation of replacing Dashy.
This stops my testing dead in it's tracks.

Feature Request: Group menu items in sections instead of folders

Love the dashboard!
One thing that I would love to see for myself is the ability to display the menu option as a group instead of a folder.
It will save +1 click to reach the needed service and time to wonder where the service is for non-admin users.
It could be a switch either on system level or user level

Something like this:
image

'search_engine' is incompatible with non "?q=" search queries

Testing out Hubley with a few search engines and it seems that any entry in the 'search_url' parameter is automatically appended with a "?q=" at the end. This makes it incompatible with search engines that have alternative search urls, like:

  • example.com/?term=
  • example.com/content/search?search=

Because when these search_url's are entered as is, what Hubley forwards users to is:

  • example.com/?term=?q=
  • example.com/content/search?search=?q=

If it helps for research, here is another project I've used that has a similar search bar function: https://github.com/jump-dev/JuMP.jl

I would think simply removing the appending of "?q=" to text within 'search_url' would fix the problem? Users would simply have to write the full search_url explicitely

Example:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.