---
layout: page
title: "Getting Started"
description: "Step by step guide to get started with Home Assistant."
date: 2014-12-18 22:57
sidebar: false
comments: false
sharing: true
footer: true
---
Installing and running Home Assistant is easy. Make sure you have [Python 3.4](https://www.python.org/downloads/) and [git](http://git-scm.com/downloads) installed and execute the following code in a console:
```bash
git clone --recursive https://github.com/balloob/home-assistant.git
cd home-assistant
python3 -m pip install -r requirements.txt
python3 -m homeassistant --open-ui
```
Running these commands will:
1. Download Home Assistant
2. Navigate to downloaded files
3. Install the dependencies
4. Launch Home Assistant and serve web interface on [http://localhost:8123](http://localhost:8123)
If you run into any issues, please see the [troubleshooting page]({{site_root}}/getting-started/troubleshooting.html).
You can run Home Assistant in demo mode by appending --demo-mode
to line 4.
If you want to update to the latest version in the future, run: scripts/update
.
If you're using Docker, you can use
```bash
docker run -d --name="home-assistant" -v /path/to/homeassistant/config:/config -v /etc/localtime:/etc/localtime:ro --net=host balloob/home-assistant
```
## Configuring Home Assistant
The configuration for Home Assistant lives by default in the `config` folder. The file `home-assistant.conf` is the main file that contains which components will be loaded and what their configuration is. An example configuration file is located at [`config/home-assistant.conf.example`](https://github.com/balloob/home-assistant/blob/master/config/home-assistant.conf.example).
When launched for the first time, Home Assistant will write a default configuration enabling the web interface and device discovery. It can take up to a minute for your devices to be discovered and show up in the interface.
You will have to restart Home Assistant for changes in home-assistant.conf
to take effect.
### Password protecting the web interface
The first thing you want to add is a password for the web interface. Use your favourite text editor to open the file `/config/home-assistant.conf`. Look for the line that says `[http]` and add the line `api_password=YOUR_PASSWORD` below. Your configuration should now look like this:
```
[http]
api_password=YOUR_PASSWORD
[discovery]
```
You can append ?api_password=YOUR_PASSWORD
to any url to log in automatically.
### Adding devices and services
Home Assistant will be able to automatically discover and configure any Google Chromecasts, Belkin WeMo switches and Philips Hue bridges in your network if you have [the discovery component]({{site_root}}/components/discovery.html) enabled (which is by default).
Not all devices can be discovered, so if you hae any of the following devices or services, please see their respective pages for installation instructions:
* [Nest thermostat]({{site_root}}/components/thermostat.html)
* [Wink hub]({{site_root}}/components/wink.html)
* [PushBullet]({{site_root}}/components/notify.html)
* [Device tracking]({{site_root}}/components/device_tracker.html)
* [Sun]({{site_root}}/components/sun.html)
* [Add support for your own device or service]({{site_root}}/developers/add_new_platform.html)
### Setting up Home Automation
When all your devices are set up it's time to put the cherry on the pie: automation. There are many ways to automate your home with Home Assistant so we have divided it into a couple of topics:
* [Automatic light control based on the sun and if people are home]({{site_root}}/components/device_sun_light_trigger.html) (built-in component)
* [Intruder alerts]({{site_root}}/components/simple_alarm.html) (built-in component)
* [Setup your own automation rules]({{site_root}}/components/automation.html) (using configuration file)
* [Create your own automation component]({{site_root}}/developers/creating_components.html) (writing Python code)