Code Monkey home page Code Monkey logo

homepage's People

Contributors

aidenpwnz avatar amadeusgraves avatar benphelps avatar denispapec avatar dependabot[bot] avatar fneiraj avatar gantoine avatar github-actions[bot] avatar godd6366 avatar hunkyn avatar itsjustmechris avatar jameswynn avatar jazzfisch avatar juanmanuelbc avatar kefir2105 avatar ling0412 avatar lucadev avatar milotype avatar modem7 avatar mspzyzh avatar nicedc avatar nonoss117 avatar ringwraith911 avatar shamoon avatar smexhy avatar tarow avatar theshaun avatar weblate avatar williamwoldum avatar xicopitz 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

homepage's Issues

[Feature Request] Site up or down indicator

Similar to what uptime kuma would do it would be nice to use the green light you use for container status to indicate if a website is up or down (404 / 502 / 300 / etc). I use uptime kuma as the example but it doesn't need to be that sophisticated a simple yes/no of if a site is up or down would be helpful.

Tautulli - Service Showing "NaN Bitrate"

Hello,

I have recently deployed 'Homepage' within my home environment and I'm loving it so far!

I am however having an issue with the Tautulli Service Widget. The page recognizes that the container is up, but wont show any "Playing", "Transcoding" data and "Bitrate" is showing as 'NaN Bitrate'.

My Plex instance is not containerized. This is its own dedicated VM due to how my storage is set up within my personal environment, however the Tautulli instance is dockerized and this works fine as it can communicate with the Plex server itself.

Below is an excerpt from my "services.yaml";

- Media Monitoring:
    - Tautulli:
        icon: https://raw.githubusercontent.com/walkxhub/dashboard-icons/master/png/tautulli.png
        href: https://<REDACTED>
        description: Media Library
        server: https://<REDACTED>
        container: tautulli
        widget:
            type: tautulli
            url: https://<REDACTED>
            key: SOMEAPIKEYHERE

Just for clarity as well, my Plex instance does sit behind NGINX Proxy Mgr with a self-signed cert. Tatulli can see the local IP and WAN IP for the Plex server too.

Many thanks for your help in advance!

Exception when container has "host" network

First off, awesome work @benphelps! I wanted to report an issue that if the container is network: host an exception occurs when you click on the green indicator light.

Application error: a client-side exception has occurred (see the browser console for more information).

Browser Console

framework-b3ca2e9a9574e304.js:1 
    TypeError: Cannot read properties of undefined (reading 'eth0')
    at N (index-19044850d7adb1f3.js:1:3883)
    at Eo (framework-b3ca2e9a9574e304.js:1:63191)
    at Pu (framework-b3ca2e9a9574e304.js:1:74879)
    at xi (framework-b3ca2e9a9574e304.js:1:121314)
    at bs (framework-b3ca2e9a9574e304.js:1:109367)
    at gs (framework-b3ca2e9a9574e304.js:1:109295)
    at vs (framework-b3ca2e9a9574e304.js:1:109158)
    at as (framework-b3ca2e9a9574e304.js:1:105938)
    at ls (framework-b3ca2e9a9574e304.js:1:104489)
    at S (framework-b3ca2e9a9574e304.js:1:138448)

Services Widget

Hi having an issue with services widgets. When I test locally on 192. address I can hit sonar, Speedtest and rutorrent for example.

I was planning to use the local ip and port as I have authelia and is would then bypass it.

- Media Services:
    - ruTorrent:
       icon: rutorrent.png
       href: https://rutorrent.mydomain.com
       description: Torrent Client
       container: rutorrent
       widget:
          type: rutorrent
          url: http://192.168.1.10:8080
          username: false # optional, false if not used
          password: false # optional, false if not used
    - Sonarr:
       icon: sonarr.png
       href: https://sonarr.mydomain.com
       description: Series management
       container: sonarr
       widget:
          type: sonarr
          url: http://192.168.1.10:8989
          key: <api key>
    - Radarr:
       icon: radarr.png
       href: https://radarr.mydomain.com
       description: Movie manager
       container: radarr

But when I access it via domain address rutorrent pulls fine but sonarr and Speedtest just show api error

Any ideas why it can't access local ip when accessed in this way.

Unable to start homepage in Docker: TypeError: handler is not a function

Docker command:
docker run --rm -it -p 3000:3000 -v $(pwd)/homepage/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/benphelps/homepage:main

http://localhost:3000/ will return internal server error

Docker logs:

TypeError: handler is not a function
    at Server.<anonymous> (/app/server.js:19:11)
    at Server.emit (node:events:513:28)
    at parserOnIncoming (node:_http_server:980:12)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17)
TypeError: handler is not a function
    at Server.<anonymous> (/app/server.js:19:11)
    at Server.emit (node:events:513:28)
    at parserOnIncoming (node:_http_server:980:12)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17)
TypeError: handler is not a function
    at Server.<anonymous> (/app/server.js:19:11)
    at Server.emit (node:events:513:28)
    at parserOnIncoming (node:_http_server:980:12)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17)
TypeError: handler is not a function
    at Server.<anonymous> (/app/server.js:19:11)
    at Server.emit (node:events:513:28)
    at parserOnIncoming (node:_http_server:980:12)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17)
TypeError: handler is not a function
    at Server.<anonymous> (/app/server.js:19:11)
    at Server.emit (node:events:513:28)
    at parserOnIncoming (node:_http_server:980:12)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17)
TypeError: handler is not a function
    at Server.<anonymous> (/app/server.js:19:11)
    at Server.emit (node:events:513:28)
    at parserOnIncoming (node:_http_server:980:12)
    at HTTPParser.parserOnHeadersComplete (node:_http_common:128:17)

Local icons don't show

I have mapped a volume to /public/icons as instructed, but the icon will not show up.

In the folder I have a file otmonitor.png, if I add this as /icons/opentherm.png in the yaml, it shows as a broken image in the homepage.

PS. love your work, only thing which upsets me is that the links are not centered identially depending on the presence of a status indicator and/or an icon.

[Feature Request] Add auth header to widget requests

Hi, loving Homepage so far but I have one question - is it possible to add some sort of way to allow Homepage to pull data from Pi-hole etc when it's behind auth & a reverse proxy?

I run Pi-hole behind Authelia and Nginx Proxy Manager - meaning that when going to pihole.mydomain.com, I have to sign in with a username & password before I see the Pi-hole admin page.
Authelia can bypass auth based on headers and URL paths - for example I currently bypass auth for Pi-hole's /admin/api.php so Homepage can pull data. I'm not too keen on this for privacy reasons however.
If I could supply a header and value in Homepage and then add that to my Authelia config, it would ensure that Homepage's API requests to Pi-hole only bypass the username/password prompt. I don't think any actual authentication keys or whatever is needed here - as long as the value of the header is unique & known to Homepage and Authelia, the request can be specifically allowed through.

Thanks, I hope this is possible - and I'm more than happy to assist in testing it :)

Client should not crash if the API key for services is not valid

Reproduce: just use any invalid key in Radarr (or any other services), then refresh the homepage

Expected: unable to see info of the service, only an indicator/logo telling that the config for the service is invalid

Observed: cannot view the page, the client crashes.

Application error: a client-side exception has occurred (see the browser console for more information).

New install configs not being generated

Hi,

just installed with yarn, and after yarn start when I navigate to the webpage the console gets spammed with the below

  errno: -2,
  code: 'ENOENT',
  syscall: 'copyfile',
  path: '/opt/homepage/src/skeleton/widgets.yaml',
  dest: '/opt/homepage/config/widgets.yaml'
}
[Error: ENOENT: no such file or directory, open '/opt/homepage/config/widgets.yaml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/opt/homepage/config/widgets.yaml'
}
error copying config [Error: ENOENT: no such file or directory, copyfile '/opt/homepage/src/skeleton/bookmarks.yaml' -> '/opt/homepage/config/bookmarks.yaml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'copyfile',
  path: '/opt/homepage/src/skeleton/bookmarks.yaml',
  dest: '/opt/homepage/config/bookmarks.yaml'
}
[Error: ENOENT: no such file or directory, open '/opt/homepage/config/bookmarks.yaml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/opt/homepage/config/bookmarks.yaml'
}
error copying config [Error: ENOENT: no such file or directory, copyfile '/opt/homepage/src/skeleton/widgets.yaml' -> '/opt/homepage/config/widgets.yaml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'copyfile',
  path: '/opt/homepage/src/skeleton/widgets.yaml',
  dest: '/opt/homepage/config/widgets.yaml'
}
[Error: ENOENT: no such file or directory, open '/opt/homepage/config/widgets.yaml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/opt/homepage/config/widgets.yaml'
}
error copying config [Error: ENOENT: no such file or directory, copyfile '/opt/homepage/src/skeleton/services.yaml' -> '/opt/homepage/config/services.yaml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'copyfile',
  path: '/opt/homepage/src/skeleton/services.yaml',
  dest: '/opt/homepage/config/services.yaml'
}
[Error: ENOENT: no such file or directory, open '/opt/homepage/config/services.yaml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/opt/homepage/config/services.yaml'
}

There is no /config directory or .yaml files being generated

[Feature Request] GPU Memory/Utilization

Would like to have a widget that would display the local resource utilization for GPU similar to nvidia-smi command:

# nvidia-smi
Wed Sep  7 18:03:58 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 515.65.01    Driver Version: 515.65.01    CUDA Version: 11.7     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro P2000        Off  | 00000000:01:00.0 Off |                  N/A |
| 44%   30C    P8     5W /  75W |      2MiB /  5120MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Feature Request: Plex Integration

Similar to the Emby support currently existing, Plex support would be great! I've seen on some other homepages I've tried that this integration may be easiest via Tautulli because of something to do with the Plex api, or lack thereof (I'm not a programmer and I don't remember the exact issue).

[Bug] Jellyfin: TypeError: Cannot read properties of undefined (reading 'MediaSources')

Awesome work lately @benphelps! Another error to report. Using the "latest" docker tag and was playing a show via Jellyfin and this error popped up. I am using the Jellyfin widget.

Using Image:

ghcr.io/benphelps/homepage:latest@sha256:5314689c255705e71615030534e1efdfd0356def9daa32b604666ecf1fe27e59

Error in Browser Console

framework-b3ca2e9a9574e304.js:1 TypeError: Cannot read properties of undefined (reading 'MediaSources')
    at index-eb06fe45eb940f9e.js:1:6901
    at Array.reduce (<anonymous>)
    at jellyfin (index-eb06fe45eb940f9e.js:1:6840)
    at Eo (framework-b3ca2e9a9574e304.js:1:63191)
    at Pu (framework-b3ca2e9a9574e304.js:1:74879)
    at xi (framework-b3ca2e9a9574e304.js:1:121314)
    at bs (framework-b3ca2e9a9574e304.js:1:109367)
    at gs (framework-b3ca2e9a9574e304.js:1:109295)
    at vs (framework-b3ca2e9a9574e304.js:1:109158)
    at as (framework-b3ca2e9a9574e304.js:1:105938)

OpenWeatherMap is leaking apikey

I tested and found that Openweathermap widget is still not using new proxy yet, so it's leaking API key. This costs money due to subscription so I think it's very sensitive.

[Feature Request] Logins

Heya,

Would it be possible to at some point add a login method (preferably something like oauth for things like Google login), so that we can show/hide certain things on the dashboard without putting the dashboard fully behind a login?

E.g.:

Without login/public:
Shows Group A, C, D.
Shows bookmarks Social, Development

With Login:
Shows Group A, B, C, D.
Shows bookmarks Social, Development, Entertainment

In config file, proposed suggestion is a new boolean such as "private:true" or similar for each section.

ELIFECYCLE  Command failed.

Not being a programmer so apologies for my ignorance

pnpm install
Lockfile is up to date, resolution step is skipped
Packages: +322
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 322, reused 322, downloaded 0, added 0, done
node_modules/.pnpm/[email protected]/node_modules/cpu-features: Running install script...
node_modules/.pnpm/[email protected]/node_modules/core-js-pure: Running postinstall script...
node_modules/.pnpm/[email protected]/node_modules/sharp: Running install script...
 ELIFECYCLE  Command failed.

Jellyfin NaN Bitrate

Hey,

Maybe I missed another issue on here, but my Jellyfin Widget is working really nice the only thing thats not working is the bitrate indicator. For some reason when a user is playing something it will default to NaN. Might be a setting on my Jellyfin that is messing with the indicator but I'm not sure.

Thanks in advance

NZBGet API Error

Did I miss something? getting API Error

  • Download Clients:
    • NZBGet:
      icon: nzbget.png
      href: url here
      description: NZB Download Client
      container: nzbget
      widget:
      type: nzbget
      url: url here
      username: nzbget
      password: tegbzn6789

Jellyseerr widget

Hello @benphelps !
I implemented the jellyseerr widget in #34 but I guess I messed up something. The widgets works indeed when using the pnpm. But when using the dockerized app it doesn't work since the request is returning a 500 internal server error.
I already tried to google it but no avail. Do you have any tips or ideas what could be the cause and how to solve it?

Thanks!

Jellyfin: TypeError: c.filter is not a function

Updated to the new v0.2.0. Getting this error with my jellyfin widget

Navigate URL: {URL}/api/services/proxy?type=jellyfin&group=Media&service=Jellyfin&endpoint=Sessions

{"error":"Unkown proxy service type"}
framework-b3ca2e9a9574e304.js:1 TypeError: c.filter is not a function
  at g (index-52903fa49e6384e8.js:1:2056)
  at Eo (framework-b3ca2e9a9574e304.js:1:63191)
  at Pu (framework-b3ca2e9a9574e304.js:1:74879)
  at xi (framework-b3ca2e9a9574e304.js:1:121314)
  at bs (framework-b3ca2e9a9574e304.js:1:109367)
  at gs (framework-b3ca2e9a9574e304.js:1:109295)
  at vs (framework-b3ca2e9a9574e304.js:1:109158)
  at as (framework-b3ca2e9a9574e304.js:1:105938)
  at ls (framework-b3ca2e9a9574e304.js:1:104489)
  at S (framework-b3ca2e9a9574e304.js:1:138448)

YAML Config:

- Jellyfin:
  icon: jellyfin.png # Icon, see: https://github.com/walkxcode/dashboard-icons or public/icons
  href: REDACTED
  description: Media Server
  server: &docker groot-docker
  container: jellyfin
  widget:
    type: jellyfin
    url: REDACTED
    key: REDACTED

Feature Request - Disk space from other servers

Feature Request:
Please would you add the ability to report free disk space from other servers on the network. Homepage currently displays the disk space, cpu and memory usage of my Docker VM but it would be useful to see those same measures (particularly disk space) for the physical servers on my network.

Thank you

Locatization, we need translations of this proyect. Spanish, German, French....

I have seen the project and it attracts me a lot, the only problem is that it is not internationalized, that is to say, translated into other languages. I have been looking at the code and I have seen that internationalization is not implemented. I think this is one of the most urgent functionality because it is discarding the public who speak languages other than English.

Feature Request - Disk space units.

For the disk space. I would like to change the units. I passed in my main storage which is about 35TB. right now it shows:

20421 GB free
16918 GB used

Haven't at least two decimals and TB would be nice to see.

[Feature Request] Allow variables in config file

Would it be possible to allow variables in the config files?

E.g.

- Media:
    - Sonarr:
        href: http://192.168.0.254:8989
        #description: Homepage is awesome
        server: myserver
        container: Sonarr
        widget:
          type: sonarr
          url: http://192.168.0.254:8989 # no slash at the end
          key: $SONARRKEY

Then in the compose file, we can do something like:

  homepage:
    image: ghcr.io/benphelps/homepage:latest
    container_name: Homepage
    environment:
      - SONARRKEY=xNYcIvYlbEiBXiIXJo3HDw32
    ports:
      - 8045:3000
    volumes:
      - $USERDIR/Homepage:/app/config
      - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations

(note: key used was randomly generated for this request)

[Feature Request] Docker labels for services

Would it be possible to use compose file labels to define the Docker services side of things?

E.g.

  homepage:
    image: ghcr.io/benphelps/homepage:latest
    container_name: Homepage
    labels: 
      ## Homepage Dashboard
      - homepage.name=Netboot.XYZ
      - homepage.category=System
      - homepage.url=192.168.0.6:3000
      - homepage.icon=https://raw.githubusercontent.com/modem7/MiscAssets/master/Icons/HeimdallIcons/netboot.png
    ports:
      - 8045:3000
    volumes:
      - $USERDIR/Homepage:/app/config
      - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations

URL should be optional, as the URL should be able to be grabbed from the Docker socket link.

I have a similar setup with the Flame dashboard, which gives the following (with Traefik integration):
image

This would reduce the amount of dependency on external config files, and allow for auto-updating of services when they are added/remove/modified.

LOTS of 500 Errors in Console

When I look at the console, I see this when I open or refresh the dashboard:

image

This is what my services.yaml file looks like (with keys and urls redacted):

image

Any idea what's causing so many 500 errors?

.

.

Pi-hole Widget CORS

I have added the Pi-hole widget to each of my Pi-hole entries on Homepage and both are saying "PiHole API Error". The message below is given in Chrome's console.

homepage.lan/:1 Access to fetch at 'http://192.168.3.4:8181/admin/api.php' from origin 'http://homepage.lan' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

API Error Radarr / Sonarr works fine

I used this template, and as you can see Sonarr works fine. But for some reason Radarr is reporting API error.
I made sure api and all other data is correct in services.yaml file. Am i missing something?

Screenshot from 2022-09-08 20-29-26

Link opened even if empty in configuration

Hello.

I like the idea of your homepage, but there's one thing that is annoying me as a whole.
I want to check up on some services, like if they're running or not.
Therefore I've put no href on them - they should not be clickable.

Also, as a bonus question:
Is it possible for me to develop my own widgets and put on my own icons for my services?

Cheers!

Disk Resources Widget doesn't work for samba mount

Great work! This is an awesome homepage/dashboard app. Going to log a couple of issues. Put it on the back burner if you wish, just wanted to log the behavior I am seeing. Thanks again.

Expected Behavior

If I use the following config, I expect to see the disk information for the chosen mount:

- resources:
    disk: /mnt/myMount

Actual Behavior

It shows the information for the primary disk, mounted at "/", instead

Steps to Reproduce the Problem

  1. mount a samba share on your system
  2. write widget config to show information for this mount

Specifications

  • Version: First release
  • Device/OS: RPI4 - Ubuntu 22.04 aarch64

Feature request: Hide API keys from API calls

Awesome work @benphelps :).

This is a simple request but I think it will cost a lot of time & redesign to do, so feel free to consider the feature or just close it if it's not what you plan to do with this project.

Why:

  • I want to host the homepage publicly on the internet but I don't want to expose my API keys of my services. Currently if we inspect the network requests we will know all the API keys.
  • If I want to only show my homepage publicly but my services are not public, the API call from frontend will fail. For example, I can configure it to call to http://sonarr:8989, if it's within the Docker network then it can call, but from my FE it won't be able to.

It would be great if we can use backend to relay the API calls.

Radarr and Sonarr API Error

For Radarr and Sonarr I'm getting API error.. what could be the reason? I put it like this in the yaml file

- Radarr:
    icon: radarr.png
    href: url here
    description: Movies Managment
    container: radarr
    widget:
      type: radarr
      url: http://192.168.1.2:7878
      api: apikeyhere

- Sonarr:
    icon: sonarr.png
    href: url here
    description: Series Managment
    container: sonarr
    widget:
      type: sonarr
      url: http://192.168.1.2:8989
      api: apikeyhere

Local icons not loading. getting 404

Hi, i did as the docs, mounted the folder icons into /app/public/icons uploaded some icons the then set it in service.
but the icon is not loading

docker-compose.yml

version: "3.3"
services:
  homepage:
    image: ghcr.io/benphelps/homepage:latest
    volumes:
      - ./config:/app/config
      - ./icons:/app/public/icons

services.yaml

- My First Group:
    - Portainer:
        icon: /icons/portainer.svg
        href: "URL"
        description: Portainer
        server: docker
        container: Portainer

Here is the result
image

console error the third line
image

Widget for services are not working

Hello
widget for services are not working.

Logs:

Listening on port 3000
services.yaml was copied to the config folder
bookmarks.yaml was copied to the config folder
widgets.yaml was copied to the config folder
docker.yaml was copied to the config folder
YAMLException: end of the stream or a document separator is expected (14:1)

 11 | #     customdata:
 12 | #       url: https://startpage. ...
 13 | #       abbr: G # Can be omitte ...
 14 | widget:
------^
 15 |   type: speedtest
 16 |   url: http://192.168.1.4:8261
    at generateError (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:1273:10)
    at throwError (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:1277:9)
    at readDocument (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:2735:5)
    at loadDocuments (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:2778:5)
    at Object.load$1 [as load] (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:2804:19)
    at handler (/app/.next/server/pages/api/widgets.js:53:69)
    at async Object.apiResolver (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/api-utils/node.js:184:9)
    at async NextNodeServer.runApi (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/next-server.js:403:9)
    at async Object.fn (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/base-server.js:493:37)
    at async Router.execute (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/router.js:222:36) {
  reason: 'end of the stream or a document separator is expected',
  mark: {
    name: null,
    buffer: '# For configuration options and examples, please see:\n' +
      '# https://github.com/benphelps/homepage/wiki/Information-Widgets\n' +
      '\n' +
      '- resources:\n' +
      '    cpu: true\n' +
      '    memory: true\n' +
      '    disk: /\n' +
      '# - search: # Searchbar in widgets area\n' +
      '#     provider: custom # Can be google, duckduckgo, bing or custom.\n' +
      '#     target: _blank # Can be _blank, _top, _self or _parent.\n' +
      '#     customdata:\n' +
      '#       url: https://startpage.com/search?q= # Required for custom provider. Remember to add the q param as per your provider.\n' +
      '#       abbr: G # Can be omitted. Only the first 2 characters will be considered.\n' +
      'widget:\n' +
      '  type: speedtest\n' +
      '  url: http://192.168.1.4:8261\n',
    position: 573,
    line: 13,
    column: 0,
    snippet: ' 11 | #     customdata:\n' +
      ' 12 | #       url: https://startpage. ...\n' +
      ' 13 | #       abbr: G # Can be omitte ...\n' +
      ' 14 | widget:\n' +
      '------^\n' +
      ' 15 |   type: speedtest\n' +
      ' 16 |   url: http://192.168.1.4:8261'
  }
}
YAMLException: end of the stream or a document separator is expected (14:1)

 11 | #     customdata:
 12 | #       url: https://startpage. ...
 13 | #       abbr: G # Can be omitte ...
 14 | widget:
------^
 15 |   type: speedtest
 16 |   url: http://192.168.1.4:8261
    at generateError (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:1273:10)
    at throwError (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:1277:9)
    at readDocument (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:2735:5)
    at loadDocuments (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:2778:5)
    at Object.load$1 [as load] (file:///app/node_modules/.pnpm/[email protected]/node_modules/js-yaml/dist/js-yaml.mjs:2804:19)
    at handler (/app/.next/server/pages/api/widgets.js:53:69)
    at async Object.apiResolver (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/api-utils/node.js:184:9)
    at async NextNodeServer.runApi (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/next-server.js:403:9)
    at async Object.fn (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/base-server.js:493:37)
    at async Router.execute (/app/node_modules/.pnpm/[email protected]_biqbaboplfbrettd7655fr4n2y/node_modules/next/dist/server/router.js:222:36) {
  reason: 'end of the stream or a document separator is expected',
  mark: {
    name: null,
    buffer: '# For configuration options and examples, please see:\n' +
      '# https://github.com/benphelps/homepage/wiki/Information-Widgets\n' +
      '\n' +
      '- resources:\n' +
      '    cpu: true\n' +
      '    memory: true\n' +
      '    disk: /\n' +
      '# - search: # Searchbar in widgets area\n' +
      '#     provider: custom # Can be google, duckduckgo, bing or custom.\n' +
      '#     target: _blank # Can be _blank, _top, _self or _parent.\n' +
      '#     customdata:\n' +
      '#       url: https://startpage.com/search?q= # Required for custom provider. Remember to add the q param as per your provider.\n' +
      '#       abbr: G # Can be omitted. Only the first 2 characters will be considered.\n' +
      'widget:\n' +
      '  type: speedtest\n' +
      '  url: http://192.168.1.4:8261\n',
    position: 573,
    line: 13,
    column: 0,
    snippet: ' 11 | #     customdata:\n' +
      ' 12 | #       url: https://startpage. ...\n' +
      ' 13 | #       abbr: G # Can be omitte ...\n' +
      ' 14 | widget:\n' +
      '------^\n' +
      ' 15 |   type: speedtest\n' +
      ' 16 |   url: http://192.168.1.4:8261'
  }
}
Listening on port 3000

Question about text alignment

The screenshots show the cards being aligned towards the left, but upon running the latest docker image via docker-compose, it seems to be centered. Is there a configuration setting I'm missing? I can't seem to find it in the wiki.

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.