Giter Site home page Giter Site logo

michaelx / launchbot Goto Github PK

View Code? Open in Web Editor NEW
123.0 9.0 18.0 880 KB

A startpage to open collections of websites with one click. It’s like restoring tabs, but anywhere.

Home Page: https://launchbot.michaelxander.com

License: MIT License

HTML 10.89% CSS 47.56% JavaScript 41.55%
startpage startpages homepage launchbot dashboard favorite-websites javascript time-saver selfhosted

launchbot's Introduction

Launchbot

A startpage to open collections of websites with one click. It’s like restoring tabs, but anywhere.

Demo

You can use the official instance of Launchbot to try it out, or to use it indefinitely. You can customize the settings to your liking. Your data is only stored in your browser’s localStorage.

Alternatively, you can self-host it.

Prerequisites

None. You can use Launchbot from the file system with your browser, e.g. file:///Users/michael/Projects/Launchbot/dist/index.html. Just make sure you’re using the build files in the dist folder, all other files are for development only.

Development

Note: I use and recommend asdf-vm to install and manage versions of Node.js. Alternatives like NVM or nodenv can be used as long as there’s a .nvmrc etc. file.

Node.js. Currently developed against Node.js 8.11.4.

Clone the repository and change into the Launchbot folder. Install dependencies:

npm install

Used style guides (enforced with stylelint and ESLint):

Self-host Launchbot

Clone or download the repository. Copy the dist folder (or the files within) where you want it. This can be within the file system or onto a web server. Navigate to the index.html in your browser. E.g. file:///Users/michael/Projects/Launchbot/dist/index.html or https://launchbot.michaelxander.com (you can omit the index.html on servers.) Open the “Settings” to customize your collections, manage plugins, and to adjust options.

Embedded default config

Note: This requires the development environment. Also, if localStorage isn’t available, the embedded config will be used.

You can also create your own embedded default config, so that you don’t have to adjust the settings twice. This is helpful if you’re using Launchbot from multiple devices.

  1. Edit the file src/js/config.js.
  2. Create a new build: npm run build
  3. Upload the files in the folder dist.

Note: If you opened Launchbot before changing the embedded config, that config will be stored in localStorage. If you then change the embedded config and create a new build you have to reset it in the UI by clicking Settings > Restore embedded config.

Upgrading

git pull, or download the latest release and replace your copy with it. If an embedded default config is used, make sure to make a backup of it, or stage and merge it.

Keyboard shortcuts

Shortcut Action
1 to 9 Open set
s or / Search
esc Close search

Settings

Once the settings panel is open, and you made all changes, make sure to scroll down to save or reset them.

Sets

These are your collections of websites. You can add as many as you want. Enter one URL per line.

Options

Key Values Description
darkMode true or false Enable dark mode or use light theme.
searchEngine URL as String Search engine to use.
faviconSize Integer Size of website icons.
faviconService URL as String Service to use to get the website icons.
linkTarget _blank Where to open website sets.
keyboardShortcuts true or false Enable or disable keyboard shortcuts.

Plugins

Two default plugins are available. Development of new plugins should be straight forward.

Weather

Displays the weather. Example:

Weather in Berlin: Mostly Cloudy, 16°C (high 22°), 3km/h wind 0% precip., 75% cloud cover.

The weather plugin uses the Dark Sky API. Please familiarize yourself with their service before using it (API Documentation). 1,000 API calls per day are free. If localStorage is available, Launchbot caches by default the weather data for 30 minutes before making a new request.

Dark Sky has disabled cross-origin resource sharing (CORS), so we need a proxy for that. If you don’t include your Dark Sky apiKey in your embedded default config, you could use the public instance of cors-anywhere. If you deploy Launchbot with your apiKey in public, I’d host the proxy myself (cors-anywhere on GitHub).

Key Values Description
name String Plugin identifier. Can’t be changed.
enabled true or false Enable or disable the plugin.
corsProxy URL as String CORS Proxy for Dark Sky API request.
apiKey String Your Dark Sky API key.
locationAlias String Name to display for the weather location.
latitude String In decimal degrees for Dark Sky API request.
longitude String In decimal degrees for Dark Sky API request.
lang String Desired language for Dark Sky data.
units String Desired units for Dark Sky data.

Age

Displays your precise age, as well as the percentage and years left until your defined goal. Example:

Age: 30.99692, 55.72% left until 70

Motivating, right?

Key Values Description
name String Plugin identifier. Can’t be changed.
enabled true or false Enable or disable the plugin.
birthday yyyy-mm-dd as String Desired language for Dark Sky data.
goal Integer Goal in years.

Compatibility

You need to allow pop-ups from Launchbot. Your browser should prompt you.

Then, Launchbot should work with every major browser on most devices, as long as JavaScript is enabled.

Exceptions

Safari on iOS only allows one new tab per action. If there’s enough demand, I’ll try an alternative approach. You can use Launchbot with Chrome on iOS for the time being.

Themes

Dark (default)

Dark theme

Light

Light theme

Author

Michael Xander

launchbot's People

Contributors

dependabot[bot] avatar michaelx 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

launchbot's Issues

With past versions...

I was able to duplicate code in order to replace the search area with another set of siteSets renamed as siteSets2. I used that for my monthly bills. I couldn't figure that out with the new format.

lanunchbot

What do you wish for v3?

Hey fellows!

I’d like to invite you to post your feature requests for v3, which will also feature a new UI that is easier to use on mobile and tablets.

What are functions that you’d like to see in the next big version?

Feature Suggestion: Docker

Hello there! I have a feature suggestion. I would be really cool if you good have this deployable as a docker container. I have a little docker server running on my raspberry pi and I would like to have a new start page that would be accessible from all of my devices (including my phone). I am still new to docker so maybe there is already a way to turn this into a container. If there is please let me know!

Editing config.js doesn't change anything

I've run the npm install command. I've edited the config.js file and ran the npm run build command. But it doesn't reflect in what is shown from the dist folder.

Mark as HTTPS

The ability to set a single link as HTTPS in a URL set. I have one site that is https only and will not resolve otherwise.

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.