flatisfy/doc/2.docker.md
Phyks (Lucas Verney) f55b6a940b Update Dockerfile to use an entrypoint
Mimmick what Kresus is doing so that generated file are not owned by
root. Fix for #106.
2017-12-30 19:57:14 +01:00

52 lines
1.6 KiB
Markdown

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 -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 -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.