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²
+
+[](https://david-dm.org/MichMich/MagicMirror/v2-beta)
+
+[](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!"