Installer æneria

Tout d’abord pour utiliser æneria,

  • Vous devez avoir accès
    • soit à un compteur Linky (et donc à un compte Enedis raccroché à ce compteur)

    • soit à un compteur Gazpar (et donc à un compte GRDF raccroché à ce compteur)

Installation via YunoHost

YunoHost est un projet ayant pour but de promouvoir l’autohébergement. Son but est de faciliter l’administration d’un serveur : en savoir plus

https://yunohost.org/images/ynh_logo_black_300dpi.png

Des nombreuses applications sont déjà packagées pour être utilisées avec et c’est le cas de æneria.

https://install-app.yunohost.org/install-with-yunohost.png

Installation à la main

æneria est une application basée sur le framework Symfony. Elle s’installe sur un serveur web disposant d’un PHP récent et d’un serveur de base de données PostgreSQL.

Prérequis

  • PHP 8.2 et supérieur

  • PostgreSQL (9.6 et supérieur)

Installation

Retrouvez les différentes versions d’æneria sur son dépos Gitlab sur la page des Releases.

Les différentes versions accompagnées de leurs dépendances Composer et des assets compilés sont disponibles sur le dépot d’æneria

1. Récupérer les sources

Téléchargez et décompressez le dernière version au format tar.gz :

wget http://statics.aeneria.com/aeneria-app-latest.tar.gz
tar -xvzf aeneria-app-latest.tar.gz
rm aeneria-app-latest.tar.gz
cd aeneria-app

2. Créer et renseigner la base de données

Créez une base de données.

Copiez le fichier .env.dist puis adaptez-le :

cp .env.dist .env
# fichier .env

...

###> doctrine/doctrine-bundle ###
# Format    described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For PostgreSQL database use: "pgsql://[database_user]:[database_password]@127.0.0.1:5432/[database_name]
# For MySQL database use: "mysql://[database_user]:[database_password]@127.0.0.1:3306/[database_name]
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=[VOTRE CONFIG ICI]
###< doctrine/doctrine-bundle ###

...

3. Générer la base de données

Lancez le commande d’installation d’aeneria :

php8.2 bin/console aeneria:install

4. Configurer Enedis Data-connect et GRDF ADICT

Note

Avant d’aller plus loin, lisez la page sur notre proxy communautaire pour savoir dans quel mode vous souhaitez utiliser æneria.

Mode 1 - Connexion directe à Enedis et GRDF

Soit vous créez un compte Enedis et vous renseignez vos informations de connexion de cette manière dans le fichier .env :

# fichier .env

...

# æneria proxy URL
AENERIA_PROXY_URL=https://proxy.aeneria.com
# should the app use æneria proxy (1 for yes, 0 for no)
AENERIA_PROXY_FOR_ENEDIS=0
AENERIA_PROXY_FOR_GRDF=0

## If you use your own API keys, fill the fields below

# Enedis Data Hub
ENEDIS_CLIENT_ID=[votreClientIdEnedis]
ENEDIS_CLIENT_SECRET=[votreClientSecretEnedis]
ENEDIS_REDIRECT_URI=[votreRedirectUriEnedis]
ENEDIS_ENDPOINT_AUTH=https://mon-compte-particulier.enedis.fr
ENEDIS_ENDPOINT_TOKEN=https://gw.prd.api.enedis.fr
ENEDIS_ENDPOINT_DATA=https://gw.prd.api.enedis.fr

# Grdf adict
GRDF_CLIENT_ID=[votreClientIdGrdf]
GRDF_CLIENT_SECRET=[votreClientSecretGrdf]
GRDF_REDIRECT_URI=[votreRedirectUriGrdf]
GRDF_ENDPOINT_AUTH=https://sofit-sso-oidc.grdf.fr
GRDF_ENDPOINT_DATA=https://api.grdf.fr

...

Note

Pour obtenir vos propres identifiants de connexion Enedis Data Connect, rendez-vous sur le Data Hub d’Enedis

Note

Pour obtenir vos propres identifiants de connexion Grdf Adict, rendez-vous sur le portail Grdf Adict

Mode 2 - Connexion à Enedis et GRDF via le proxy æneria

Soit vous utilisez proxy.aeneria.com en utilisant cette configuration

# fichier .env

...

# æneria proxy URL
AENERIA_PROXY_URL=https://proxy.aeneria.com
# should the app use æneria proxy (1 for yes, 0 for no)
AENERIA_PROXY_FOR_ENEDIS=1
AENERIA_PROXY_FOR_GRDF=1

# les variables en dessous _doivent_ rester

# Enedis Data Hub
ENEDIS_CLIENT_ID=%%ENEDIS_CLIENT_ID%%
ENEDIS_CLIENT_SECRET=%%ENEDIS_CLIENT_SECRET%%
ENEDIS_REDIRECT_URI=%%ENEDIS_REDIRECT_URI%%
ENEDIS_ENDPOINT_AUTH=https://mon-compte-particulier.enedis.fr
ENEDIS_ENDPOINT_TOKEN=https://gw.prd.api.enedis.fr
ENEDIS_ENDPOINT_DATA=https://gw.prd.api.enedis.fr

# Grdf adict
GRDF_CLIENT_ID=%%GRDF_CLIENT_ID%%
GRDF_CLIENT_SECRET=%%GRDF_CLIENT_SECRET%%
GRDF_REDIRECT_URI=%%GRDF_REDIRECT_URI%%
GRDF_ENDPOINT_AUTH=https://sofit-sso-oidc.grdf.fr
GRDF_ENDPOINT_DATA=https://api.grdf.fr

...

5. Créer un administrateur

Ajoutez une premier utilisateur et donnez-lui les droits administrateur :

php8.2 bin/console aeneria:user:add [admin_email] [password]
php8.2 bin/console aeneria:user:grant [admin_email]

7. Mettre en place le CRON

Mettez en place le CRON en exécutant la commande suivante :

echo "*/10  *  *  *  * [user] php8.2 /[app_folder]/bin/console aeneria:fetch-data" > /etc/cron.d/aeneria-fetch
echo "*/10  *  *  *  * [user] php8.2 /[app_folder]/bin/console aeneria:pending-action:process-expired" > /etc/cron.d/aeneria-pending-action
# où [user] est l'utilisateur linux qui lancera le cron

8. Configurer le serveur web

Enfin, configurez NGINX ou Apache comme pour une application Symfony 5 classique