Get current fioul price from Bretagne Multi Énergie and store it. Also with an
incredible web interface to list price history.

# Requirements

This project is written in Python and uses the following libraries:

* requests: to retrieve current price using a GraphQL query;
* peewee: a simple ORM, to store and query the data in a SQL database;
* bottle: a micro web framework.

Those libraries are all packaged in Debian and can be installed with:

```
apt install python3-request python3-peewee python3-bottle
```

Optional: a MySQL server (although switching to another database should be
easy). Otherwise, a SQLite backend can be used.


# Installation

We suppose the repository is cloned under `/opt/fioul`.

Create a `fioul.ini` config file, and fill in MySQL credentials. You can use
`fioul.ini.example` as a starting point. MySQL database can be created with the
following commands:

```sql
create database fiouldb;
create user 'fioul'@'localhost' identified by 'fioul_is_beautifioul';
grant all privileges on fiouldb.* TO 'fioul'@'localhost';
```

Tables can be created by running `./fioul.py initdb`


To update the database day at 9:30am, the following line can be installed as a
cronjob:

```
30 09 * * * /opt/fioul/fioul.py update
```

To launch the server automatically, you can install and use the systemd
service file :

```
adduser --system --group --no-create-home fioul
ln -s /opt/fioul/fioul.service /etc/systemd/system/fioul.service
systemctl enable fioul.service
systemctl start fioul.service
```

The server listens to port 9980 on localhost by default, unless
otherwise specified in the config file. Setting up a reverse proxy and
ssl is left as an exercise to the reader.
