diff --git a/01 Getting Started.md b/01 Getting Started.md index 19c8ed1..618cc77 100644 --- a/01 Getting Started.md +++ b/01 Getting Started.md @@ -4,10 +4,10 @@ In this worksheet you will be shown how to setup and configure a raspberry pi as a central 'hub' for your home automation system. By the end of this you will have: 1. The operating system (Debian Stretch Lite) installed on the hub. -2. The I2C interface configured for use (and a small display attached). -3. A working MQTT broker installed (but not fully secured!). -4. The latest versions of Python and Pip. -5. A NodeJS runtime environment for running scripts. We will then use this to publish a simple API. +2. The wireless interface configured to connect to the Internet. +3. The ability to connect securely over SSH from a remote computer without entering a password. +4. Changed the host name of the computer +5. Changed the password on the default user account. ## 1 Installing the Operating System diff --git a/Managing Services.md b/Managing Services.md new file mode 100644 index 0000000..4eba7d2 --- /dev/null +++ b/Managing Services.md @@ -0,0 +1,63 @@ + +# Managing Services + +A lot of the software you will be installing, such as [MySQL](https://www.mysql.com) will need to run as background services. This tutorial will guide you through how to install and manage background services. + +## 1 System D + +https://www.linuxjournal.com/content/initializing-and-managing-services-linux-past-present-and-future + +### 1.1 Installing Neo4J + +In this section you will be shown how to install and run a Neo4J instance using SystemV. + +## 2 Docker + +You can use the [Docker Playground](https://labs.play-with-docker.com) to learn how to work with Docker. + +## 3 Homebrew (MacOS Only) + +Until now all the tools and techniques covered work on the Raspberry Pi or indeed any computer running a [Debian](https://www.debian.org) based [Linux](https://www.linux.org) distribution (such as [Ubuntu](https://ubuntu.com) or [Raspberian](https://www.raspbian.org)). If you are using a [Mac](https://www.apple.com/uk/mac) (and [MacOS](https://www.apple.com/uk/macos)) for your development work you should make use of the [Homebrew](https://brew.sh) package manager which provides commands to install, uninstall, update and run a wide range of software packages. + +### 3.1 Installation + +The installation instructions can be found on the main [website](https://brew.sh), in summary you need to run the following in the terminal app which uses the [Ruby](https://www.ruby-lang.org/en/) language: + +```shell +/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +``` + +### 3.2 Installing Packages + +Once Homebrew has been installed you can use it in the terminal to install a wide range of software, for example to install MySQL: + +1. Search for the software on the [Homebrew website](https://formulae.brew.sh/formula/mysql). This tells you the correct software name, in this case it is `mysql`. +2. Now we can install the software using `brew install mysql`. + +### 3.3 Starting and Stopping Services + +Many of the software packages run as background services and we need to be able to start, stop and restart these. The easiest way is to install the [Homebrew Services](https://github.com/Homebrew/homebrew-services) using `brew tap homebrew/services` command. The `tap` subcommand allows you to access other repositories that are not included in Homebrew's master repository. + +Once the services are installed you can list the installed services and see if they are running using the following command: + +```shell +$ brew services list + Name Status User Plist + mosquitto stopped + mysql stopped + neo4j stopped +``` + +Now we can start and stop the services: + +```shell +$ brew services start mysql + ==> Successfully started `mysql` (label: homebrew.mxcl.mysql) +$ brew services restart mysql + Stopping `mysql`... (might take a while) + ==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql) + ==> Successfully started `mysql` (label: homebrew.mxcl.mysql) +$ brew services stop mysql + Stopping `mysql`... (might take a while) + ==> Successfully stopped `mysql` (label: homebrew.mxcl.mysql) +```