Jump is yet another self-hosted startpage for your server designed to be simple, stylish, fast and secure.

Overview

Jump

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

Jump is yet another self-hosted startpage for your server designed to be simple, stylish, fast and secure.

screenshot

Features

  • Fast, easy to deploy, secure
  • Custom sites and icons
  • Fetch favicons for sites without custom icons
  • Custom background images
  • Open Weather Map integration

Installation

Docker

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" and "sites" directories to local directories on your machine...

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

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

  • SITENAME - Custom site name.
  • NOINDEX: 'true' - Include a robots noindex meta tag in site header
  • CACHEBYPASS: 'true' - Bypass all caches, useful for testing changes.
  • 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").

Volume Mapping

You can map the "backgrounds" and "sites" directories as shown in the Docker Compose example above. Your host 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.

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

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 OWPAPIKEY 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

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

[
    {
        "name": "Bitwarden",
        "url" : "https://bitwarden.example.com",
        "nofollow": true,
        "icon": "bitwarden.png"
    },
    {
        "name": "Gitea",
        "url" : "https://git.example.com"
    },
    {
        "name": "Nextcloud",
        "url" : "https://cloud.example.com",
        "nofollow": true
    },
    {
        "name": "Paperless",
        "url" : "https://paperless.example.com",
        "nofollow": true,
        "icon": "paperless.jpg"
    }
]
  • name and url are mandatory.
  • nofollow and icon are optional.

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.

nofollow

Use the nofollow option to include rel="nofollow" on specific site links.

Background Images

To use your own background images just copy them to the /backgrounds/ directory, Jump will pick up on them automatically.

Development

Patches, improvements and feature requests are welcomed although I want to avoid anything that requires a database, 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 /assets/js/src/directory and bundle them on the fly. The javascript bundle (index.bundle.js) 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, this will bundle and minify the javascript source files without source maps.

Please do not commit javascript bundles, only commit the patched source files.

Comments
  • Time keeps fluctuating

    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

    bug verified 
    opened by quaintdev 16
  • Feature Request: custom web-root

    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

    enhancement 
    opened by gotschi 15
  • Custom favicons

    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.

    enhancement 
    opened by auridas330 13
  • Time is redundant in dashboard

    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.

    bug enhancement verified 
    opened by quaintdev 12
  • Icons not loading

    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.

    can't recreate 
    opened by theonekili 10
  • No weather and incorrect time

    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

    bug can't recreate 
    opened by SavageAUS 10
  • ARM Support

    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.

    enhancement question 
    opened by quaintdev 10
  • Mobile compatibility?

    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.

    invalid 
    opened by shruuub 7
  • Marquee Effect

    Marquee Effect

    opened by darrenleesmith 5
  • Installed but not showing info

    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 documentation enhancement 
    opened by KevoM 5
  • Time shown is incorrect

    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

    bug duplicate verified 
    opened by robinprice 5
  • (Status: error) for site behind Authelia

    (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?)

    opened by cinderblockgames 0
  • Mac/Vivaldi: jump is using 25% CPU time, fans are running noisy

    Mac/Vivaldi: jump is using 25% CPU time, fans are running noisy

    When switching to the Jump tab on Mac OS with Vivaldi,

    CPU load start to reach 20% and more and fans start to be quite noisy. Switching to another tab will reduce CPU and fan noise.

    verified 
    opened by JarlMorgennebel 1
  • How to turn off background blur

    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?

    bug 
    opened by K0jak 3
  • Request WeatherAPI

    Request WeatherAPI

    Discussed in https://github.com/daledavies/jump/discussions/63

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

    can't recreate 
    opened by daledavies 14
  • Invisible icons

    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:)

    good first issue triage 
    opened by Toucani 19
  • disable IPV6 option

    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)

    bug testing passed 
    opened by ServerGeek82 14
Releases(v1.3.0)
  • v1.3.0(Jul 26, 2022)

    Added

    • Real-time status monitoring for each site. Jump can now ping your sites and report on their availability (e.g. online, offline, error).

    Fixed

    • Close session early to avoid session lock blocking API calls.
    • Updated composer packages, addresses several security alerts for older version of Guzzle.
    • Updated NPM packages, addresses vulnerabilities in Terser and EJS.
    • Fix incorrect reference to CSS file in error page.
    • Various minor code improvements.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.4(Jul 19, 2022)

    Added

    • Issue #41: Add support for a custom favicon.
    • Add new default favicon.

    Fixed

    • Refactor API implementation.
    • Various other code improvements.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.3(Jul 7, 2022)

    Added

    • Android Chrome header colour now matches background colour when using unsplash.
    • Extra deny rules for added to nginx.conf for composer and vendor directories.
    • Version number now displayed in docker logs.

    Fixed

    • Issue #35: Fixed issue with assets not loading correctly when hosted in sub-directory
    Source code(tar.gz)
    Source code(zip)
  • v1.2.2(Jun 30, 2022)

    [1.2.2] - 2022-06-30

    Added

    • Issue #35: Add optional WWWURL config param
    • Issue #37: Add ALTBGPROVIDER config option
    • Issue #38: Add optional description to sites

    Fixed

    • Issue #36: Improve use of cache to avoid waiting for lock timeout

    Full Changelog: https://github.com/daledavies/jump/compare/v1.2.1...v1.2.2

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Jun 7, 2022)

  • v1.2.0(Jun 6, 2022)

    Added

    • Search: Search for sites added to Jump and also open a query in configurable list of search engines.
    • Unsplash integration: Use random background images from Unsplash collections instead of local images.

    Fixed

    • Tighten spacing between sites list.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.4(May 10, 2022)

    Added

    • New alternative layout for sites list, works better for sites with longer names (resolves issue #26).
    • Improved security and privacy: Local Google fonts, session handling for API, CSRF checks.

    Fixed

    • Issue #27: Daylight Savings Not Showing (when OWM API is not used).
    • Improved API error reporting (Issue #25).
    • Generate unique hashes for JS/CSS filenames via webpack so updated assets are downloaded quickly after upgrading.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.3(Mar 23, 2022)

    Added

    • Issue #20: Added option within sites.json to open links in a new tab.

    Fixed

    • Typo in readme, corrected "OWPAPIKEY" to "OWMAPIKEY" in Open Weather Map section.

    Full Changelog: https://github.com/daledavies/jump/compare/v1.1.2...v1.1.3

    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Mar 19, 2022)

    Added

    • Show alternative 12 hour clock format using the "ampmclock" option.

    Fixed

    • Fix issue #15: Properly encode and escape URLs with query params.
    • Fix issue #16. UTC timezone shift was being multiplied by 1000 every 10 seconds.
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Mar 17, 2022)

  • v1.1.0(Mar 16, 2022)

    Added

    • Sites can be categorised using tags in sites.json.
    • Friendly greeting can be disabled using the "showgreeting" config option.
    • Background brightness and blur can be customised using the "bgbright" and "bgblur" config options.

    Fixed

    • Initial page load is no longer stalled while favicons are retrieved and cached.
    • Calls to OpenWeather API are proxied via server so API key is not exposed to client.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.3(Feb 21, 2022)

    Added

    • New weather description and temperature display in bottom right of page.
    • Option to show/hide clock (SHOWCLOCK).
    • Option to switch between metric and imperial temperature (METRICTEMP).
    • Global defaults in dites.json for nofollow and icon.
    • Jump now has a favicon!

    Fixed

    • Clock will now show correct time where local time zone is not the same as UTC.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Feb 15, 2022)

  • v1.0.1(Feb 12, 2022)

  • v1.0.0-release(Feb 10, 2022)

Owner
Dale Davies
Dale Davies
Yet another Value Object Library (YAVOL)

Yet Another DDD Library Value object This library is a foundation in order to implement the Value Object pattern. It helps you to introduce some DDD s

YADDDL 3 Nov 17, 2022
📷 Yet another photo management app for Nextcloud

Memories ?? Yet another photo management app for Nextcloud How is this different? ?? Photo and Video Timeline: Sorts photos by date taken, parsed from

Varun Patil 322 Jan 8, 2023
What do developers do on holidays? Right! Yet another sudoku.

yasu This is a project that happened to obsess the contributors on a greek island in the summer of 2022: figure out how to generate and solve sudoku b

null 2 Sep 18, 2022
Your self-hosted bookmark archive. Free and open source.

Your self-hosted bookmark archive. Free and open source. Contents About LinkAce Support Setup Contribution About LinkAce LinkAce is a self-hosted arch

Kevin Woblick 1.7k Jan 2, 2023
A very simple way to handle self-hosted WordPress plugin updates

Simple WP Plugin Update handling A very simple way to handle self-hosted WordPress plugin updates This uses the "update_plugins_{$hostname}" filter in

Peter Viszt 5 Jun 13, 2023
Your private self hosted composer repository with user management

Devliver Your private self-hosted composer repository. Requirements Docker MariaDB/MySQL the running docker container has access to private git reposi

Nikita Loges 53 Dec 30, 2022
Your personal Self-hosted or offline YoutTube Kids!

New Tube You have a problem with youtube kids and need online youtube? This is yours. NewTube! Simply clone the project and put your mp4 video & cover

Javad Adib 7 Dec 28, 2022
A self-hosted alternative to putting your code snippets on Gist.

WP-Gistpen Contributors: JamesDiGioia Donate link: http://jamesdigioia.com/ Tags: gist, code snippets, codepen Requires at least: 5.2 Requires PHP: 5.

Intraxia 71 Nov 15, 2022
Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion.

Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion. HTTP API, HTTPs support, webhook handler, scheduled builds, Slack and HipChat integration.

Łukasz Lach 112 Nov 24, 2022
FreshRSS is a self-hosted RSS feed aggregator like Leed or Kriss Feed.

Read this document on github.com/FreshRSS/FreshRSS/ to get the correct links and pictures. Version française FreshRSS FreshRSS is a self-hosted RSS fe

FreshRSS 5.3k Jan 4, 2023
CodeFever Community Edition (A Self-hosted Git Services)

CodeFever Community Edition (A Self-hosted Git Services)

PGYER 2.3k Jan 7, 2023
Yclas Self Hosted is a powerful script that can transform any domain into a fully customizable classifieds site within a few seconds.

Yclas 4.4.0. Description Yclas self-hosted is a powerful script that can transform any domain into a fully customizable classifieds site within a few

Yclas 299 May 29, 2022
Self-hosted game library.

A self-hosted game browser. About Cartridge is a convenient browser for your game collection with easy file downloads and automatically imported metad

null 111 Dec 25, 2022
A fast, reliable, and secure NPM/Yarn bridge for Composer

Foxy is a Composer plugin to automate the validation, installation, updating and removing of PHP libraries asset dependencies (javaScript, stylesheets

Fxp 160 Dec 2, 2022
Orangescrum is a simple yet powerful free and open source project management software that helps team to organize their tasks, projects and deliver more.

Free, open source Project Management software Introduction Orangescrum is the simple yet powerful free and open source project management software tha

Orangescrum 110 Dec 30, 2022
Secure the data of your sites by encrypting them. They will be decrypted only in your applications

PHP Crypter Secure the data of your sites by encrypting them. They will be decrypted only in your applications How to use ? You just have to include t

Claude Fassinou 7 Nov 26, 2022
Simple yet powerful, PSR-compliant, Symfony-driven PHP Blog engine.

brodaty-blog ✒️ Simple Blog Engine based on pure Markdown files. ?? Works without database, caches HTML templates from Markdown files. ?? Fast and ext

Sebastian 3 Nov 15, 2022
Another initiative where patient in need of Blood and recovered patients willing to donate Blood can come together under one platform and connect with each other.

This is yet another initiative where patient in need of Blood and recovered patients willing to donate Blood can come together under one platform and connect with each other.

Rohit Tiwari 1 May 5, 2022
A Tinder-like experience for Plex Watchlist: swipe and match with another person and find the movie you're gonna watch tonight.

Plex Finder This app's goal is to help choose a film to watch when neither you nor your SO/friend/roommate/whatever is any good at choosing anything.

Guillaume Hartemann-Piollet 3 Aug 13, 2022