Code Monkey home page Code Monkey logo

daledavies / jump Goto Github PK

View Code? Open in Web Editor NEW
512.0 9.0 35.0 29.52 MB

Jump is a self-hosted startpage and real-time status page for your server designed to be simple, stylish, fast and secure.

License: MIT License

Dockerfile 1.40% JavaScript 21.23% PHP 60.22% Mustache 3.33% Shell 3.09% SCSS 10.58% CSS 0.16%
startpage homepage self-hosted dashboard php javascript docker weather selfhosted unsplash directory home portal selfhosted-apps start links status-page

jump's Introduction

Jump

GitHub release (latest by date) PHP Version Docker Image Size (latest by date)

Jump is a self-hosted startpage and real-time status page for your server designed to be simple, stylish, fast and secure.

screenshot

Features

  • Fast, easy to deploy, secure.
  • Easily add sites and use custom icons, or let Jump fetch their original favicons.
  • Categorise sites with tags across multiple pages.
  • Real-time status monitoring for each site.
  • Use your own background images or get random background images from Unsplash.
  • Fast search by name, tag, url with keyboard shortcut.
  • Custom list of search engines accessed via search box.
  • Open Weather Map integration for local time and weather.
  • Several layout options, including responsive UI for mobile devices.
  • Easily enable/disable all configuration options, tailor Jump to suit your needs.

Note - the demo instance is hosted on a render.com free tier so may take a few seconds to wake up.

Installation

Docker Compose

Get the container image from Docker Hub (https://hub.docker.com/r/daledavies/jump).

The following will start Jump and serve the page at http://localhost:8123 with a custom site name, Open Weather Map support, and volumes to map Jump's "backgrounds", "favicon", "search" and "sites" directories to local directories on your machine. OWMAPIKEY and LATLONG values below are just for example - refer to the environment variables.

version: '3'
services:
    web:
        image: daledavies/jump
        ports:
            - 8123:8080
        volumes:
            - ./backgrounds:/backgrounds
            - ./favicon:/favicon
            - ./search:/search
            - ./sites:/sites
        environment:
            SITENAME: 'Custom site name'
            OWMAPIKEY: '0a1b2c3d4e5f6a7b8c9d0a1b'
            LATLONG: '51.509865,-0.118092'

Volume Mapping

You can map the "backgrounds", "favicon", "search" and "sites" directories to local directories as shown in the Docker Compose example above. Your local directories will be populated with Jump's default files when the container is next started unless the local directories already contain files, in which case the local files will be used by Jump instead.

Docker

The same can be achieved just using Docker CLI...

docker run -d -p 8123:8080 \
--volume <path/to/backgrounds>:/backgrounds \
--volume <path/to/favicon>:/favicon \
--volume <path/to/sites>:/sites \
--volume <path/to/search>:/search \
--env SITENAME='Custom site name' \
--env OWMAPIKEY='<open weather api key>' \
--env LATLONG='<lat,long>' \
--name jump docker.io/daledavies/jump

Kubernetes

There is a Helm chart for Jump, provided by @djjudas21.

Enable the Helm repo:

helm repo add djjudas21 https://djjudas21.github.io/charts/

Check out the default values.yaml and make your own copy, overriding the values are necessary. All the same environment variables are supported.

The key difference is that there is no need to create and mount sites.json and search.json. Enter your sites and search engines config as YAML in values.yaml and Helm will create Kubernetes ConfigMap resources and mount them into the container as virtual files.

Finally, install Jump with Helm:

helm install my-jump djjudas21/jump -f values.yaml

Without Docker

Clone this repository and copy everything within the jumpapp directory to your server, edit config.php accordingly.

Install dependencies via composer by running the following command within the web root...

composer install --no-dev

Make sure you have created a cache directory and given the web user permission to write to it, the cache directory should match your config.php entry for cachedir.

Configuration

Environment variables

You can use the following optional environment variables to configure/customise your Jump site...

  • SITENAME - Custom site name.
  • SHOWCLOCK - Show the clock (default: 'true').
  • AMPMCLOCK - Show 12 hour clock format(default: 'false').
  • SHOWGREETING - If false show the label "#home" instead of "good morning/evening" (default: 'true').
  • CUSTOMGREETING: 'Some other greeting message' - Show a custom greeting message instead.
  • SHOWSEARCH - Show the search button, enable/disable search (default: 'true').
  • ALTLAYOUT - Display list of sites using an alternative layout (default: 'false').
  • CUSTOMWIDTH - Set a custom max width in px for the page container/site list.
  • BGBLUR - Background image blur percentage (e.g. 50).
  • BGBRIGHT - Background image brightness percentage (e.g. 90).
  • UNSPLASHAPIKEY - An API key for Unsplash, enables fetching random background images from Unsplash.
  • UNSPLASHCOLLECTIONS - List of Unsplash collection ID's (separated by commas) to select random images from.
  • ALTBGPROVIDER - An alternative background provider url.
  • OWMAPIKEY - An API key for Open Weather Map, LATLONG (below) must also be defined.
  • LATLONG - A latitude and longitude for the default location (e.g. "51.509865,-0.118092").
  • METRICTEMP: - Metric (C) or imperial (F) temperature units (default: 'true').
  • CHECKSTATUS - Enable/disable checking site availability status (default: 'true').
  • STATUSCACHE - Duration in minutes to cache site availability status.
  • NOINDEX - Include a robots noindex meta tag in site header (default: 'true').
  • WWWURL - Useful if Jump is hosted in a sub-directory (e.g. "/startpage").
  • DISABLEIPV6 - Disable IPV6 if required (default: 'false').
  • DOCKERSOCKET - Mounted docker socket location, for Docker integration without a proxy (e.g "/var/run/docker.sock").
  • DOCKERPROXYURL - Docker proxy URL, for Docker integration with a proxy (e.g. "dockerproxy:2375").
  • DOCKERONLYSITES - Set to true if you want to only use docker integration and not define a sites.json (default: 'false').
  • LANGUAGE - Set to your chosen language code (default: 'en').
  • CACHEBYPASS - Bypass all caches, useful for testing changes (default: 'false').
  • DEBUG - Enable debug mode (default: 'false').

NOTE: The OWMAPIKEY and LATLONG config options must be defined together. DOCKERSOCKET and DOCKERPROXYURL are mutually exclusive.

Open Weather Map

You can configure Jump to get local time and weather updates by adding an Open Weather Map API key to config.php or passing the OWMAPIKEY environment variable to the Docker container (as described above).

You will also need to provide a default LATLONG string (e.g. "51.509865,-0.118092"), Jump will use this until you press the location button and allow permission to get your location from the web browser.

Sites

The sites.json file is where you can define default configuration for sites and add a list of sites manually to the startpage, this is great for adding sites that are hosted anywhere on the web.

Jump can also integrate with Docker to automatically list any sites you have running on the same Docker host.

Site defaults and manual configuration

Edit the /sites/sites.json file to include your own sites on the startpage...

{
    "default": {
        "nofollow": true,
        "icon": "my-default-icon.png",
        "newtab": false
    },
    "sites": [
        {
            "name": "Github",
            "url" : "https://github.com/daledavies/jump",
            "description": "This is an example description",
            "nofollow": false,
            "newtab": true
        },
        {
            "name": "Docker Hub",
            "url" : "https://hub.docker.com/r/daledavies/jump"
        },
        {
            "name": "Bitwarden",
            "url" : "https://bitwarden.example.com",
            "description": "This is another example of a site with a description",
            "icon": "bitwarden.png",
            "tags": ["stuff"]
        },
        {
            "name": "Gitea",
            "url" : "https://git.example.com",
            "icon": "gitea.png",
            "tags": ["stuff"]
        },
        {
            "name": "Nextcloud",
            "url" : "https://cloud.example.com",
            "icon": "nextcloud.png",
            "tags": ["home", "stuff", "things"]
        }
        {
            "name": "Google",
            "url" : "https://www.google.com",
            "nofollow": false
        },
        {
            "name": "Teapot",
            "url" : "https://www.google.com/pagedoesnotexist",
            "status": {
                "allowed_status_codes": [418],
                "request_method": "GET",
                "url": "https://www.google.com/teapot",
                "verify_cert": false
            }
        }
    ]
}
  • name and url are mandatory.
  • description, tags, nofollow, newtab, icon and status are optional.
Tags

Sites can be categorised using tags, for each site in your sites.json file you can list multiple tags as shown in the example above. Sites that have no tags are included on the home screen, however for sites with multiple tags you can specify the "home" tag to include them on the home screen.

The tag selector button will only appear in the top right of the page if you have tagged sites, clicking this will open a popup menu showing all the tags referenced in your sites.json file.

Default Options

Jump has a built-in default icon for sites that do not specify their own although you can override this and specify your own as shown above in the default section.

You can also override nofollow and newtab to be true for all sites.

Icons

You can provide custom icons for your sites by placing them in the /sites/icons/ directory and referencing the filename in sites.json using the icon option. If you do not provide a custom icon for a site then Jump will attempt to retrieve that site's favicon, if it can't find one then the default icon will be shown.

Jump also supports Dashboard Icons. To use these pick the icon you wish to use from the Dashboard Icons repository and add it's file name using the icon option, removing the file extension. For example... adguard-home.

nofollow

On a per-site basis use "nofollow": true to include rel="nofollow" on specific site links, if this is set as a global default then "nofollow": false can be used to remove rel="nofollow" for individual sites.

newtab

On a per-site basis use "newtab": true to open specific site links in a new browser tab.

status

Options to control how status checking works can be defined for each site...

  • allowed_status_codes: A list of additional status codes (in the 4XX and 5XX ranges) that could represent the site is online, for example if the site responds with "418 I'm a teapot".
  • request_method: By default Jump will make a HEAD request when checking a site's status, you can use this option to specify GET instead.
  • url: An alternate status URL to check instead of the main site URL.
  • verify_cert: Disable SSL certificate verification, useful for sites with self-signed certs.

Docker Integration

It is highly recommended to use a docker socket proxy when setting up Docker integration, this does not directly expose your host's docker API to Jump.

Using a proxy
# Configure docker socket proxy container
dockerproxy:
    image: tecnativa/docker-socket-proxy:latest
    environment:
        - CONTAINERS=1 # Allow access to view containers
        - POST=0 # Make the connection read only
    volumes:
        - /var/run/docker.sock:/var/run/docker.sock:ro # Read only mount for local socket

# Configure Jump to use docker socket proxy
web:
    image: daledavies/jump
    ports:
        - 8123:8080
    volumes:
        - ./backgrounds:/backgrounds
        - ./favicon:/favicon
        - ./search:/search
        - ./sites:/sites
    environment:
        SITENAME: 'Custom site name'
        DOCKERPROXYURL: 'dockerproxy:2375' # Matches proxy hostname and ports from above
    depends_on:
        - dockerproxy # Ensure dockerproxy is available before starting jump
Configuring docker sites for Jump

Then each for each docker service you with to list on your startpage, configure labels as follows. Each label below matches the options found in the manual configuration section above...

somesite:
    image: dockerimage
    labels:
        jump.name: 'Test Site'
        jump.url: 'https://test.site'
        jump.description: 'This is a site for testing'
        jump.tags: 'home, stuff, things'
        jump.status.allowed_status_codes: '418, 500'
        jump.status.request_method: 'GET'
        jump.status.verify_cert: false

Search

Edit the /search/searchengines.json file to customise the list of search engines available from the search dropdown, the first search engine in the list will be the default...

[
    {
        "name": "Google",
        "url": "https://www.google.co.uk/search?q="
    },
    {
        "name": "DuckDuckGo",
        "url": "https://duckduckgo.com/?q="
    },
    {
        "name": "Bing",
        "url": "https://www.bing.com/search?q="
    }
]

For quick access to the search from the keyboard you can open the search bar using the ctrl-shift-/ keyboard shortcut and start typing straight away.

Background Images

To use your own background images just copy them to the /backgrounds/ directory, Jump will pick up on them automatically ans show a random image every time the page loads.

If instead you want to use Unsplash for random background images add an Unsplash API key to config.php or pass the UNSPLASHAPIKEY environment variable to the Docker container. You can provide a comma separated list of collection ID's using the unsplashcollections option in config.php or by passing them to the Docker container via the UNSPLASHCOLLECTIONS environment variable.

Favicon

After mapping the favicon directory as shown in the Docker Compose or Docker examples above, replace the default icon.png file with whatever PNG icon image you want (ensuring that the filename is always icon.png).

Language

Jump has been translated into the following languages so far, to use one of these languages just pass the appropriate language code from the list below via the language option in config.php or the LANGUAGE environment variable...

  • cs - Czech
  • de - German
  • es - Spanish
  • it - Italian
  • nl - Dutch
  • pt - Portuguese
  • ru - Russian
  • ua - Ukrainian

More translations are always welcome! If you'd like to contribute please see the existing examples and create a pull request.

Debugging

Occasionally things don't work out as expected! If you get an error and want to find out a bit more information you can use the built in debug option. To enable this set debug to true in config.php or via the DEBUG environment variable.

When resolving problems it can also help to use the cachebypass option, this will disable all caching in Jump.

Development

Patches, improvements and feature requests are welcomed although I want to avoid anything that requires an admin interface or user accounts.

For development you will need to install composer dependencies by running composer install from within the jumpapp directory.

Javascript is bundled using Webpack, so you will need to have installed Node.js. Then within the root project directory (the same level as webpack.config.js) you should run npm install.

Before starting development you can run npm run dev, this will watch for changes to files within the /jumpapp/assets/js/src/, /jumpapp/assets/css/src/ and /jumpapp/templates/src/ directories and bundle them on the fly. Javascript and CSS bundles created in development mode will not be minified and will contain source maps for debugging.

You can test a production build using npm run build which will bundle and minify the javascript and CSS source files without source maps, header and footer templates will be created containing the correct links to newly created javascript and CSS bundles.

Please do not commit any generated files however, only commit the patched source files.

jump's People

Contributors

adamaze avatar anton-catalyst-eu avatar daledavies avatar djjudas21 avatar fr3ddy404 avatar gitter-badger avatar leobluuee avatar michield avatar paulocr avatar quaintdev avatar sch3fr avatar vladaskidanovas 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

jump's Issues

Time keeps fluctuating

I saw a weird behavior with my setup. The time on startpage keeps changing by 12 hours and sometimes NaN. This changes greetings from Good Morning to Good Night and then Good undefined. I am using arm image by @just5ky. Both time on my system and server are properly set. Also I see half hour delay with the time when it is close to my actual time.

image

feature request: background images from unsplash timeout

hi, thanks for this great homepage!

i have set it up with unsplash api and love random background from the internet.

However, i download a lot, so sometimes the home page takes a while to load when internet traffic is busy.

So, i was wondering if you could set a timeout for unsplash, so that if it times out, jump gets a random background from the /background folder.

and kindly let us customize/config the timeout period plz.

thanks!

Time shown is incorrect

I have set my lat / long correctly however the time does not show correctly. This assumes this feature is a factor of the time shown.

In the screenshot below you’ll notice that the apps time is showing as 4 hours behind my actual time.

AC2F5470-12CD-443F-B0F7-D4AFC44E2906

(Status: unknown) when using different port than 80

Hi,
First of all I love Jump and I already started switch from Heimdall. The only issue I have is Jump won't show green status for services on ports other than 80, for example for proxmox running on port 8006 status is unknown. I would love to see all green for my services running on different ports :)

Thank you :)

Mack

feature request: allow custom URL for backgrounds

Hi. Just wanted to let you know you did a great job with jump.
I absoluteley love it.
I would like to request a bit of improvement in my opinion.

I am currently using Lorem Space (https://lorem.space/) to provide similar functionality for Unsplash, but I host my own backgrounds for different services. I simply point my URL to grab a wallpaper from the server with the desired resolution and with every new request, I get a different wallpaper.

This works great behind corporate firewalls where, unfortunatley, unsplash/pixabay and other services are blocked.

Is it possible to implement the lorem.space URL request for backgrounds?

Happy to provide more info if you need it.

No weather and incorrect time

I have set this up on unraid and no matter what i try i cannot get the time correct or the weather to show.
Screen Shot 2022-03-20 at 11 41 33 am
Screen Shot 2022-03-20 at 11 41 50 am
Screen Shot 2022-03-20 at 11 41 58 am
Screen Shot 2022-03-20 at 11 42 14 am

EDIT: Weather is corrected by correcting the key spelling, please update dockerhub and github to correct this as you have different spelling for the key fields OWMAPIKEY & OWPAPIKEY should be OWMAPIKEY on both sites.

Time is still incorrect and goes to NaN:NaN

Any advice for installing without composer?

I downloaded all the mentioned packages and uploaded them to the vendor directory:

   "require": {
        "mustache/mustache": "~2.5",
        "arthurhoaro/favicon": "~1.0",
        "nette/caching": "^3.1",
        "nette/routing": "^3.0.2",
        "phlak/config": "^7.0",
        "nette/http": "^3.1",
        "unsplash/unsplash": "^2.5"
    }

But I get an error
Fatal error: Uncaught Error: Class "Jump\Main" not found in /PATHONSERVER/jumpapp/index.php:21 Stack trace: #0 {main} thrown in /PATHONSERVER/jumpapp/index.php on line 21

What is the /vendor/autoload.php file ?

I`ve no experience with composer - sorry

API to add url remotely

This is a feature request. I was thinking something like a REST endpoint that supports GET method. Basically we just send the entire url as a GET request to server and it will add that url to the json config. This way users don't have to login to their servers every time they need to add new site. It might work something like this

  1. User visits url https://startpage.example.com/?url=http://github.com
  2. Users request is processed and a new url is added to sites.json
  3. Once the json is updated, a new shortcut github.com is added to homepage by fetching icon and title of the page.

I believe the icon part is already implemented in jump, title we might have to think about. We could also use additional query parameters to specify tags for certain url but that can be done in future versions. I myself would have picked this up but I have background in Go and have not worked with PHP.

What do you think?

Request WeatherAPI

Discussed in #63

Originally posted by Tataukee October 3, 2022
Can you add weatherapi ? The openweather has never been working for me ?

Icons not updating

So I have a weird issue.
If I add a new icon and configure the site.json the icon refuses to load on the website, but If I use any of the old one that were there in the folder it loads fine.

Favicon is needed

I usually pin my dashboard so that I do not accidentally close it. In Firefox once we have pinned the tab it is reduced to favicon as shown below. But because jump does not have favicon at the moment it shows the default icon which is not aesthetically pleasing.

A nice favicon would also fit well with rest of jump dashboard.

image

Github bookmark error

This bookmark:

{
    "name": "Github",
    "url" : "https://github.com/notifications?query=is%3Aunread"
},

Results in this error:

GET http://start.ho.me/api/icon.php?siteurl=https://github.com/notifications?query=is%3Aunread 500 (Internal Server Error)
VM33:1 Uncaught (in promise) SyntaxError: Unexpected end of JSON input

Feature Request: Custom max-width

Hi,

At the moment I'm using Jump in a docker container (via Unraid), I really like it. I use it as my homepage.
I checked the css a bit and I saw that the max-width of the page was 650px (for .content), after changing it to 1000px it looks a bit better on a higher resolution (to me at least in 1440P).
But as you probably already know, the changes inside the docker container aren't persistent.

Is it possible to make it so we can set a custom max-width ?
Thanks.

Favicons Not Downloading Through NGINX

If I omit the "icon" field in sites.json for a site that I'm hosting myself, where the URL points to a site that is reverse-proxied through NGINX, the favicon doesn't show up in Jump.

  • The favicon downloads fine for remote sites (like "http://github.com") and other local sites that are not reverse-proxied.
  • I'm hosting in Docker using a macvlan network (don't think this is relevant, but mentioning it)
  • The status of the site shows up correctly when it's online, but as "error" when it's offline. When not going through the proxy it correctly shows as offline.
  • The call to /api/icon? does show up in the docker logs and looks right to me. It returns a 200.

Request: searchbar

Nice work!

I have a request, how about having a searchbar (with optional custom search-engine address)?

Having Jump as a default newtab homepage, that would save quite a few steps.

Invisible icons

Hi!

While using Jump for the last several months I've noticed a random bug when the icons of the websites become invisible. They are present, because when I hoover the mouse over - I can see the tooltip, and clicking them also works. When this happened last time I've noticed some errors in the logs so I thought it would be at least a starting point:)

Screenshots

First, screenshots made with Safari and Firefox(notice the tooltip and the address in the lower left corner):

  1. Screenshot 2022-08-11 at 16 04 32
  2. Screenshot 2022-08-11 at 16 04 38
  3. Screenshot 2022-08-11 at 16 04 46
  4. Screenshot 2022-08-11 at 16 04 54

Details

I was able to reproduce it on 1.3.0 and 1.2.4. Can test on any older version if needed.

Unfortunately, I haven't found the exact steps to make it happen. However, when it happened I tried doing this:

  • restart the container
  • stop container, remove image, download image, start container
  • flip CACHE_BYPASS variable
  • drop favicon and search features

none of these actions helped.

Docker command

Here is the command that I used

docker run -d --restart unless-stopped \
-v "<path>/Containers/jump/sites:/sites" \
-v "<path>/Containers/jump/favicon:/favicon" \
-v "<path>/Containers/jump/search:/search" \
-v "<path>/Containers/jump/backgrounds:/backgrounds" \
-e SITENAME="Name" \
-e SHOWCLOCK="true" \
-e AMPMCLOCK="false" \
-e SHOWGREETING="true" \
-e SHOWSEARCH="true" \
-e ALTLAYOUT="false" \
-e CHECKSTATUS="false" \
-e BGBLUR="60" \
-e BGBRIGHT="50" \
-e NOINDEX="true" \
-e OWMAPIKEY="<some gibberish>" \
-e METRICTEMP="true" \
-e LATLONG="LAT, LON" \
-l traefik.enable=true \
... some traefik labels ...
--name jump daledavies/jump:v1.3.0

Steps to reproduce

  1. Run the command
  2. ???
  3. Profit!!!

Errors that I saw

Aug 12 13:17:05 Homeserver 008dbb353f56[48783]: 2022/08/12 12:17:05 [error] 25#25: *23 open() "/var/www/html/images/tags.svg" failed (2: No such file or directory), client: 172.17.0.5, server: _, request: "GET /images/tags.svg HTTP/1.1", host: "aviary.lan", referrer: "http://aviary.lan/"
Aug 12 13:17:05 Homeserver 008dbb353f56[48783]: 2022/08/12 12:17:05 [error] 26#26: *26 open() "/var/www/html/images/search.svg" failed (2: No such file or directory), client: 172.17.0.5, server: _, request: "GET /images/search.svg HTTP/1.1", host: "aviary.lan", referrer: "http://aviary.lan/"
Aug 12 13:17:05 Homeserver 008dbb353f56[48783]: 2022/08/12 12:17:05 [error] 25#25: *25 open() "/var/www/html/images/loading.svg" failed (2: No such file or directory), client: 172.17.0.5, server: _, request: "GET /images/loading.svg HTTP/1.1", host: "aviary.lan", referrer: "http://aviary.lan/"

So naturally, I logged into the container and did this

bash-5.1# ls /var/www/html/images
ls: /var/www/html/images: No such file or directory

bash-5.1# find / -name "tags.svg"
/var/www/html/assets/images/tags.svg
/usr/src/jumpapp/assets/images/tags.svg

Looks like a path has been changed but not updated somewhere in the code?

I can also provide a full log where I saw the errors if this is of any interest:) Let me know if I can help with it any further:)

Icons not loading

This is unfortunately inconsistent, but at times images aren't loaded correctly, resulting in a broken image.
image

The value corresponding to "image"-key matches the name of the image stored in the icons directory.

I've checked the source and when following the link to the icon HTTP error 500 is returned.

[Feature Request] Multiple (chooseable) Tags on Home

First of all: Great tool. Switched from Dashy to Jump, as it is beatiful, and just enough to do the job.

Is is possible to add a feature to have more than one tag showed on the front page ? Maybe let us choose wich ones are the additional tags ?

Like the picture below (i´m a verry talented paint-artist ;)

x

Time is redundant in dashboard

First of all thank you for creating jump.

I think time is not really required on dashboard because everyone can always see their system time. This is true even on phones. Instead of time something else like temperature can be shown to the user or maybe something else that is useful.

Besides I found that the time that I am seeing on dashboard is different from the time on my desktop clock. I believe it has chosen incorrect time zone as their is difference of almost 7 hours between the time.

Open links in new tabs

Is it possible to add an open in new tab function? I have attempted to use the Homer way (target: "_blank") but it doesn't work

disable IPV6 option

Typically on startup of the container the below error is seen unless there is an environment variable for disabling enabling IPV6. Looking at the documentation README and installation I did not see one. Also looked at the previous closed / opened issues as well.


 ██ ██    ██ ███    ███ ██████
 ██ ██    ██ ████  ████ ██   ██
 ██ ██    ██ ██ ████ ██ ██████

██ ██ ██ ██ ██ ██ ██ ██
█████ ██████ ██ ██ ██

https://github.com/daledavies/jump


  • Repopulating web root with application files.
  • You are using Jump v1.3.0 (1658838937)

  • Checking if backgrounds, favicon, search or sites volumes have been mounted.

    • Backgrounds directory is mapped... symlinking.
    • Favicon directory is mapped... symlinking.
    • Sites directory is mapped... symlinking.
    • Search directory is mapped... symlinking.
  • All done! Starting nginx/php services now.


[09-Aug-2022 21:19:10] NOTICE: fpm is running, pid 23
[09-Aug-2022 21:19:10] NOTICE: ready to handle connections
2022/08/09 21:19:10 [emerg] 24#24: socket() [::]:8080 failed (97: Address family not supported by protocol)
nginx: [emerg] socket() [::]:8080 failed (97: Address family not supported by protocol)

How to turn off background blur

Hello, do not judge strictly, I do not understand much, but I set jump to unraid and I can not turn off the background blur effect. Adding a variable BGBLUR with a value of 0 doesn't help either. If possible, can you tell me how it can be done?

Installed but not showing info

Hello, thanks for this new project
Install is fine through Docker, seems to work, but nothing except the background appears

 -------------------------------------------------------------
- Repopulating web root with application files.
- Check if backgrounds or sites volumes have been mounted.
   - Backgrounds directory is mapped... symlinking.
   - Sites directory is mapped... symlinking.
- All done! Starting nginx/php services now.
-------------------------------------------------------------
[06-Apr-2022 17:09:47] NOTICE: fpm is running, pid 17
[06-Apr-2022 17:09:47] NOTICE: ready to handle connections
192.168.1.82 - - [06/Apr/2022:17:10:03 +0000] "GET / HTTP/1.1" 200 1131 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36" "-" 0.091 0.090 . 

Capture d’écran 2022-04-06 à 19 22 49

Mobile compatibility?

Hello, I know thats probably a newbie question, but since i couldnt find something about it in the readme, but does this load on mobile browsers? Since i have the default setup, but the sites arent displaying, only the background and menu are.

[Feature Request] Jump URL link to Tag

Hey, had another nice idea (at least for me):

It would be great if it would be possible to include the tag in the URL to direct jump to the desired dash.

Like if i go to jump.domain.com i reach the standard "home-tag"-dashboard, but if i go to jump.domain.com/my-tag i jump directly to the desired dashboard.

Synology Install Error

Hi, I've been able to install Jump without issue on my MacBook, but when I install to my Synology NAS using the same .yml file, I receive the error below. The error only appears after trying to navigate to the startpage in the browser on port 8123. Additionally, when installing to my Synology, Docker kept erroring out saying that each folder (backgrounds, favicon, search, sites) did not exist. I manually created them, and while it seemed to install correctly after that, the below error was logged when trying to actually use the tool. Thanks in advance for any insight!

NOTICE: PHP message: PHP Warning: file_get_contents(/var/www/html/sites/sites.json): Failed to open stream: No such file or directory in /var/www/html/classes/Sites.php on line 75
172.22.0.1 - - [29/Jul/2022:18:28:47 +0000] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "-" 0.164 0.164 . -
NOTICE: PHP message: PHP Fatal error: Uncaught Jump\Exceptions\ConfigException: There was a problem loading the sites.json file in /var/www/html/classes/Sites.php:77
Stack trace:
#0 /var/www/html/classes/Sites.php(48): Jump\Sites->load_sites_from_json()
#1 /var/www/html/classes/Cache.php(141): Jump\Sites->Jump{closure}()
#2 /var/www/html/vendor/nette/caching/src/Caching/Cache.php(105): Jump\Cache->Jump{closure}()
#3 /var/www/html/classes/Cache.php(142): Nette\Caching\Cache->load()
#4 /var/www/html/classes/Sites.php(49): Jump\Cache->load()
#5 /var/www/html/classes/Pages/HomePage.php(42): Jump\Sites->__construct()
#6 /var/www/html/classes/Pages/AbstractPage.php(60): Jump\Pages\HomePage->render_header()
#7 /var/www/html/classes/Pages/AbstractPage.php(67): Jump\Pages\AbstractPage->build_page()
#8 /var/www/html/classes/Main.php(69): Jump\Pages\AbstractPage->get_output()
#9 /var/www/html/index.php(22): Jump\Main->init()
#10 {main}
thrown in /var/www/html/classes/Sites.php on line 77

Error 500 when adding Tags

Hi All

I managed to setup my Jump dashboard. Got it up and running and working 100%
I am able to add new sites, add icons and make any changes, but as soon as I add a tag the site gives me a error 500.

Example below:

"sites": [
{
"name": "My Name,
"url" : "My Url",
"description": "My Description",
"icon": "ms_form.png",
"nofollow": true,
"newtab": true
"tags": ["forms"]
}

If I save it as above then I get the Error 500, If I remove the ( "tags": ["forms"] ) then everything works correctly and the site loads.

Regards

(Status: error) for site behind Authelia

Does the site redirecting for authentication keep jump from being able to pick up that the site is up? I feel like 2XX and 3XX should be considered up, 4XX and 5XX considered down. (Or maybe have the ability to specify which status codes are considered up?)

HTTPS errors

I am loving Jump as my new start page. I added all my self hosted applications and noticed that Jump does not handle self signed certificates well. First in the status checker this line:
https://github.com/daledavies/jump/blob/main/jumpapp/classes/Status.php#L46
starts the GuzzleHttp client and needs an option to allow unverified certs. See: https://docs.guzzlephp.org/en/stable/request-options.html#verify

Additionally the get Favicon function also does not respect HTTPS self signed certs.
Line which gets the Favicon: https://github.com/daledavies/jump/blob/main/jumpapp/classes/Site.php#L72

I understand you are using a third part library for this (https://github.com/ArthurHoaro/favicon). I found this area https://github.com/ArthurHoaro/favicon/blob/master/src/Favicon/DataAccess.php#L37 which needs to be changed to allow HTTPS. (See https://www.php.net/manual/en/context.ssl.php)

Thanks!

Add description to sites

Great work with this, it's exactly what I was looking for to get a static homepage running.

I was wondering if it would be possible to add a description to the sites, perhaps on hover?

My non-technical users might not know what some of the sites are for so having a brief description would be ideal.

Request: categorization capabilities (categories, folders, tags)

Since you are taking requests :)

For me, I cannot switch to this until I have the ability to categorize things (because I have too many for one page to look nice and organized).

I would request the ability to define categories/tags and then place services in them. One service might be a member of more than one category, if possible. If you settle on the tag nomenclature, it could look like:

`

`

Just a thought. It would build the views based on tags. Maybe you need either #home to be explicit or blank would assume home page, otherwise it would display each tag as a link/folder which would then open up an aggregated list.

Here is part of my Heimdall dashboard in the "DNS" category, just to give you an idea:

image

Custom favicons

Hey!
Any chance of a variable to have our custom favicons for the main jump website? At the moment I had to fork the build to change the favicon.png and rebuild lol.

Weather error

Something is going wrong with the weather api key:
image
Error
image

ARM Support

Hello

I wanted to know if there are any plans to support arm platform? I want to run Jump over the Raspberry Pi so that I can access my dashboard on both mobile and laptop.

I previously had generated ARM images successfully but I am no longer able to do so. The error I am getting is below

 => ERROR [linux/arm64 builder 3/3] RUN composer install --no-dev   --optimize-autoloader   --no-interaction   --no-progress                                                                                   0.2s
 => CANCELED [linux/arm/v7 builder 2/3] COPY jumpapp/ /app                                                                                                                                                     0.0s
------
 > [linux/arm64 builder 3/3] RUN composer install --no-dev   --optimize-autoloader   --no-interaction   --no-progress:
------
Dockerfile:5
--------------------
   4 |     COPY jumpapp/ /app
   5 | >>> RUN composer install --no-dev \
   6 | >>>   --optimize-autoloader \
   7 | >>>   --no-interaction \
   8 | >>>   --no-progress
   9 |     
--------------------
error: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/sh -c composer install --no-dev   --optimize-autoloader   --no-interaction   --no-progress" did not complete successfully: exit code: 1

I understand that arm images are not officially supported but any help or pointers in this regard would be highly appreciated.

Thanks.

Feature Request: custom web-root

I use a reverse proxy in my DMZ to forward pages from my internal net to WWW.

If I want to put this page onto domain.tld/start and have it proxy to jump:8123/ it requests the underlying sources wrong with "/" being the webroot.
So instead of domain.tld/start/background.php it requests domain.tld/background.php

Which of course fails

Nothing showing because of "hidden" class in main div

I've deployed Jump on my Docker server using Portainer. Everything is mapped to a shared folder on my server so I can easily manage things.

When I go to the Jump dashboard, the backgrounds load, but I get no icons.

Looking at the source code shows me that the first div after the body tag has this class: content fixed hidden status

The "hidden" class has an opacity of 0, which is why I'm not seeing anything. I've tried other browsers and have made sure there are no ad blockers or other things that might interfere.

I've even checked on my phone, but am not getting different results.

I've added my own weather API key and have updated my lat/long info just as toubleshooting ideas.

When looking at the browser console, I get the following errors:

  • Failed to load resource: the server responded with a status of 400 (Bad Request)
  • JUMP ERROR: There was an issue with the OWM API... The requested URL returned error: 401

The container logs seem unremarkable...
_jump_web_1_logs.txt

I'm happy to provide more information as needed.

Thanks!

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.