Installing Flatisfy using Docker
================================

A basic `Dockerfile` is available for rapid testing. It is still really hacky
and should not be used in production.


1\. First, build the docker image:

```
cd docker
docker build -t phyks/flatisfy .
```

2\. Then, create some folder to store your Flatisfy data in a permanent way (it
   will be mount as a Docker volume in next steps), and initialize an empty
   config:

```
mkdir flatisfy
cd flatisfy
FLATISFY_VOLUME=$(pwd)
docker run --rm -it -e LOCAL_USER_ID=`id -u` -v $FLATISFY_VOLUME:/flatisfy phyks/flatisfy sh -c "cd /home/user/app && python -m flatisfy init-config > /flatisfy/config.json"
```


3\. Then, edit the generated `$FLATISFY_VOLUME/config.json` file according to your needs. See
   [0.getting_started.md](0.getting_started.md) for more infos on the
   configuration file format. You will have to define your constraints (at
   least postal codes, house type and type of post), set `data_directory` to
   `/flatisfy` and set `host` to `0.0.0.0` to make the web UI accessible from
   outside the Docker container. The rest is up to you.


4\. Finally, run the docker image to fetch flats and serve the web UI:

```
docker run -it -e LOCAL_USER_ID=`id -u` -v $FLATISFY_VOLUME:/flatisfy -p 8080:8080 phyks/flatisfy
```

Your Flatisfy instance is now available at `localhost:8080`!


To fetch new housing posts, you should manually call

```
docker run --rm -it -e LOCAL_USER_ID=`id -u` -v $FLATISFY_VOLUME:/flatisfy phyks/flatisfy /home/user/fetch.sh
```

This can be done easily in a crontask on your host system, to run it typically
every night.
