diff --git a/README.md b/README.md index 3648d086..0ee8dc27 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,56 @@ -# MagicMirror V2 +# MagicMirror² + +[![Dependency Status](https://david-dm.org/MichMich/MagicMirror/v2-beta.svg)](https://david-dm.org/MichMich/MagicMirror/v2-beta) + +[![devDependency Status](https://david-dm.org/MichMich/MagicMirror/v2-beta/dev-status.svg)](https://david-dm.org/MichMich/MagicMirror/v2-beta#info=devDependencies) + This version of the Magic Mirror software focusses on a modular plugin system. Besides that, the Magic Mirror software now also uses [Electron](http://electron.atom.io/), so no more webserver or browser installs necessary. -#WARNING: THIS VERSION IS IN A VERY EARLY STAGE. IT IS NOT COMPLETED YET. PLEASE USE THE MASTER BRANCH. +**WARNING!** This version is in a *very* early stage. It is **not** completed yet. **Please** use the master branch. -##Usage -1. Download the latest node version: -`wget https://nodejs.org/dist/latest/node-v5.10.0-linux-armv6l.tar.gz` for Pi 1 -`wget https://nodejs.org/dist/latest/node-v5.10.0-linux-armv7l.tar.gz` for Pi 2 -2. Unpack file `tar -xvf filename` -3. Install `cd foldername && sudo cp -R * /usr/local/` +## Usage + +#### Automatic Installer + +1. Clone the repository: `git clone -b v2-beta https://github.com/MichMich/MagicMirror` +2. Enter the new directory: `cd MagicMirror` +3. Give the installer permission to run: `sudo chmod +x install.sh` +4. Start the installer: `sudo ./install.sh` + + +#### Manual Installation + +1. Download the latest Node.js version: + - `wget https://nodejs.org/dist/latest/node-v5.10.0-linux-armv6l.tar.gz` for Raspberry Pi + - `wget https://nodejs.org/dist/latest/node-v5.10.0-linux-armv7l.tar.gz` for Raspberry Pi 2 + - `wget https://nodejs.org/dist/latest/node-v5.10.0-linux-arm64.tar.gz` for Raspberry Pi 3 +2. Unpack the archive file: `tar -xvf filename.tar.gz` +3. Install Node.js: `cd foldername && sudo cp -R * /usr/local/` 4. Set loglevel `npm config set loglevel info` -5. `npm install && npm start` (You may have to restart your terminal before this works) +5. Clone the repository and check out the beta branch: `git clone -b v2-beta https://github.com/MichMich/MagicMirror` +6. Enter the repository: `cd MagicMirror` +7. `npm install && npm start` (You may have to restart your terminal before this works!) -**Important:** `npm start` does NOT work via SSH you have to execute it in a terminal session running in a window-manager. +**Important:** `npm start` does **not** work via SSH! You will have to execute it in a terminal session running in a window manager. + +## Configuration -##Configuration 1. Duplicate `config/config.js.sample` to `config/config.js`. 2. Modify your required settings. -##Todo -Things that still have to be implemented or changed. +## Todo List -####Main -- Allow show/hide animations to animate the height. This way the other modules won't jump around. +Here is a list of various things that still have to be implemented or changed. -####Alert -- Vertical centering of alerts -- Rewrite the alert module in vanilla JavaScript +- [ ] Allow show/hide animations to animate the height. This way, the other modules won't jump around. +- [ ] Allow vertical centering of alerts. +- [ ] Rewrite the [alert](modules/default/alert) module in vanilla JavaScript. +- [ ] Write all the documentation. -####Documentation -- Write all the documentation. :) +## Modules -##Modules +The following modules are installed by default. -### Default modules: - [**Clock**](modules/default/clock) - [**Calendar**](modules/default/calendar) - [**Current Weather**](modules/default/currentweather) @@ -43,7 +60,7 @@ Things that still have to be implemented or changed. - [**Hello World**](modules/default/helloworld) - [**Alert**](modules/default/alert) -### 3rd Party Modules: +The following modules are created by their respective authors. - **[MMM-FRITZ-Box-Callmonitor by PaViRo](https://github.com/paviro/MMM-FRITZ-Box-Callmonitor)**
FRITZ!Box Callmonitor (Display an alert when someone is calling ...) @@ -51,15 +68,15 @@ Things that still have to be implemented or changed. - **[MMM-Wunderlist by PaViRo](https://github.com/paviro/MMM-Wunderlist)**
Displays your Wunderlist todos on your mirror ... -##Contributing +## Contributing + Contributions of all kinds are welcome, not only in the form of code but also with regards bug reports and documentation. -But please keep the following in mind: +Please keep the following in mind: -- **Bug reports**: Make sure you're running the latest version. If the issue still persist: please open a clearly documented issue with a clear title. -- **Minor bug fixes**: Please send a pull request with a clear explanation of the issue or a link to the isssue it solves. -- **Major bug fixes**: please discuss your approach in an github issue before you start to alter a big part of the code. -- **New features**: please please discuss in an github issue before you start to alter a big part of the code. Without discussion upfront, pull request will not be accepted / merged. +- **Bug Reports**: Make sure you're running the latest version. If the issue(s) still persist: please open a clearly documented issue with a clear title. +- **Minor Bug Fixes**: Please send a pull request with a clear explanation of the issue or a link to the isssue it solves. +- **Major Bug Fixes**: please discuss your approach in an GitHub issue before you start to alter a big part of the code. +- **New Features**: please please discuss in a GitHub issue before you start to alter a big part of the code. Without discussion upfront, the pull request will not be accepted / merged. Thanks for your help in making Magic Mirror better! - diff --git a/install.sh b/install.sh new file mode 100644 index 00000000..00473f92 --- /dev/null +++ b/install.sh @@ -0,0 +1,69 @@ +# $$\ $$\ $$\ $$\ $$\ $$\ $$$$$$\ +# $$$\ $$$ | \__| $$$\ $$$ |\__| $$ __$$\ +# $$$$\ $$$$ | $$$$$$\ $$$$$$\ $$\ $$$$$$$\ $$$$\ $$$$ |$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ \__/ $$ | +# $$\$$\$$ $$ | \____$$\ $$ __$$\ $$ |$$ _____|$$\$$\$$ $$ |$$ |$$ __$$\ $$ __$$\ $$ __$$\ $$ __$$\ $$$$$$ | +# $$ \$$$ $$ | $$$$$$$ |$$ / $$ |$$ |$$ / $$ \$$$ $$ |$$ |$$ | \__|$$ | \__|$$ / $$ |$$ | \__|$$ ____/ +# $$ |\$ /$$ |$$ __$$ |$$ | $$ |$$ |$$ | $$ |\$ /$$ |$$ |$$ | $$ | $$ | $$ |$$ | $$ | +# $$ | \_/ $$ |\$$$$$$$ |\$$$$$$$ |$$ |\$$$$$$$\ $$ | \_/ $$ |$$ |$$ | $$ | \$$$$$$ |$$ | $$$$$$$$\ +# \__| \__| \_______| \____$$ |\__| \_______|\__| \__|\__|\__| \__| \______/ \__| \________| +# $$\ $$ | +# \$$$$$$ | +# \______/ +# +# This is an installer script for MagicMirror2. It works well enough +# that it can detect if you have Node installed, run a binary script +# and then download and run MagicMirror2. +sudo apt-get install curl wget build-essential unzip +ARM=$(uname -m) # Determine which Pi is running. +NODE_LATEST="v5.10.0" # Set the latest version here. +6L_HASH="019a257faa5eebf6304686dfeffdbcb4c22f0547aa366f6e563aad39ab1b1ab1" # Set the armv6l hash here. +7L_HASH="3f7524d3db60175c2323bb2a0a13ad1ca7d47d4ede6f42834b6b8425be70e0a2" # Set the armv7l hash here. +8_HASH="df88803bda234b32240906b620315c8f6d6200332047a88cb0ec83009cf25dd5" # Set the arm64 hash here. +DOWNLOAD_URL="https://nodejs.org/dist/latest/node-$NODE_LATEST-linux-$ARM.tar.gz" # Construct the download URL. +wget $DOWNLOAD_URL # Download the file given. +if [ $ARM = "armv6l" ]; then + if [ -f "node-$NODE_LATEST-linux-armv6l.tar.gz"]; then + COMMAND256="sha256sum node-$NODE_LATEST-linux-armv6l.tar.gz" + if [ $($COMMAND256) = "019a257faa5eebf6304686dfeffdbcb4c22f0547aa366f6e563aad39ab1b1ab1" ]; then + echo "Node.js was downloaded and verified successfully." + else + echo "Node.js was downloaded, but verification failed. Make sure sha256sum works." + exit 1 + fi + fi +elif [ $ARM = "armv7l" ]; then + if [ -f "node-$NODE_LATEST-linux-armv7l.tar.gz" ]; then + COMMAND256="sha256sum node-$NODE_LATEST-linux-armv7l.tar.gz" + if [ $($COMMAND256) = "3f7524d3db60175c2323bb2a0a13ad1ca7d47d4ede6f42834b6b8425be70e0a2" ]; then + echo "Node.js was downloaded and verified successfully." + else + echo "Node.js was downloaded, but verification failed. Make sure sha256sum works." + exit 1 + fi + fi +elif [ $ARM = "arm64" ]; then + if [ -f "node-$NODE_LATEST-linux-arm64.tar.gz" ]; then + COMMAND256="sha256sum node-$NODE_LATEST-linux-arm64.tar.gz" + if [ $($COMMAND256) = "df88803bda234b32240906b620315c8f6d6200332047a88cb0ec83009cf25dd5" ]; then + echo "Node.js was downloaded and verified successfully." + else + echo "Node.js was downloaded, but verification failed. Make sure sha256sum works." + exit 1 + fi + fi +fi +tar xvf node-$NODE_LATEST-linux-$ARM.tar.gz +cd node* +sudo cp -R * /usr/local +cd .. +rm -rf node* +# Run Node checks to make sure Node works properly. +curl -sL https://deb.nodesource.com/test | bash - +npm config set loglevel info +if [ ! -f package.json ]; then + wget https://github.com/nhubbard/MagicMirror/archive/v2-beta.zip + unzip v2-beta.zip + cd MagicMirror-2-beta +fi +npm install +echo "We're ready! Run `npm start` from the MagicMirror-2-beta directory (not over SSH) and enjoy MagicMirror2!"