Installation de Grocy

Bonjour a tous,
Je suis intéressé par le plugin Grocy, mais pour l’instant je butte sur son installation. Je voudrai le mettre sur mon Rpi Jeedom.
En SSH, j’ai suivi ces instructions:

cd /var/www/html
wget https://releases.grocy.info/v?2.6.1 -O grocy.zip
unzip grocy.zip -d grocy
chown -R www-data:www-data /var/www/html/grocy/

Je n’ai pas eu d’erreur, tout a semblé bien fonctionner. Mais quand je rentre l’URL dans l’appli pour créer un token, j’obtiens une erreur 403 Forbidden : You don’t have permission to access /grocy/public/index.php on this server.
L’accès a mon Jeedom est redirigé en https, quelle que soit l’adresse entrée… J’ai supprimé ça momentanément, mais même résultat. Une idée du problème?

1 « J'aime »

Salut @Arnox, dans la doc GitHub - grocy/grocy: ERP beyond your fridge - Grocy is a web-based self-hosted groceries & household management solution for your home il est indiqué ceci:

copy config-dist.php to data/config.php

l’as tu fait ?
et tu installes sur la machine que celle ou se trouve jeedom ?
Tente ailleurs si tu peux.

Salut

J’aimerais bien tester Grocy mais la documentation pour l’installation est franchement pas pour l’utilisateur lambda.
Dommage.

Antoine

1 « J'aime »

Voici un petit résumé pour une installation de grocy.

En version docker ici : https://github.com/grocy/grocy-docker
En version install : https://github.com/grocy/grocy#how-to-install

En détail la configuration ressemble à ça :

Récupérer la source :

cd /var/www/html
wget https://releases.grocy.info/v?2.6.1 -O grocy.zip
unzip grocy.zip -d grocy
chown -R www-data: /var/www/html/grocy/
cp  config-dist.php  data/config.php

Editer le fichier de config de grocy

  • changer la langue
  • la monnaie
  • l’url de base …

nano data/config.php

...
# The base url of your installation,
# should be just "/" when running directly under the root of a (sub)domain
# or for example "https://example.com/grocy" when using a subdirectory
Setting('BASE_URL', '/');
...

Configurer le serveur web (ex: apache)

nano /etc/apache2/sites-available/grocy.conf

<VirtualHost *:80>
        DocumentRoot /var/www/grocy/public
        ErrorLog ${APACHE_LOG_DIR}/error-grocy.log
        CustomLog ${APACHE_LOG_DIR}/access-grocy.log combined
</VirtualHost>

Activer la config apache

sudo a2ensite grocy.conf
sudo systemctl reload apache2

Si tu vas bien http://IP_de_grocy devrait fonctionner.

Edit 25/05/20: suppression des infos grocy.domain.tld qui porte a confusion

3 « J'aime »

Toujours pareil pour moi, que ce soit avec grocy.mondomaine.fr (site inaccessible) ou mondomaine.fr/grocy (forbidden), et meme en desactivant le https…
Je suis sur le meme serveur que mon Jeedom, peut-etre une interference Apache entre les 2 sites?
et sinon, y’aurait pas une coquille dans la config Apache? Le chemin complet de mon document root a un étage de plus. (j’ai fais la modif mais ca n’a rien changé)

<VirtualHost *:80>
        ServerName grocy.domain.tld
        DocumentRoot /var/www/html/grocy/public
        ErrorLog ${APACHE_LOG_DIR}/error-grocy.log
        CustomLog ${APACHE_LOG_DIR}/access-grocy.log combined
</VirtualHost>

Oh désolé j’ai pas précisé mais le nom grocy.domain.tld c’était un exemple. A adapter à votre config.

Question bête désoler mais je vois qui faut installer un logiciel sur pc
Mais apres faut il que le PC sois allumer 24/24

J’avais bien compris, pas de souci… mais même remplacé par mon nom de domaine, pas mieux…

oui comme ta jeedom :wink:

Ok donc je passe mon chemin car mon pc h24 c pas économique lol merci pour la réponse

Bonjour @Arnox, en fait j’ai le même problème que toi en installant Grocy sur une VM à base de Debian 10. Pour le moment mon Grocy tourne sur Docker Synology, et fonctionne parfaitement bien. Mais je voudrais l’installer sur une VM sur ma machine Porxmox.

Voici ce que j’ai fait pour tenter de l’installer :

#!/bin/bash

cd /var/www/html
rm index.html
wget -q https://github.com/berrnd/grocy/releases/download/v2.7.1/grocy_2.7.1.zip
unzip grocy_2.7.1.zip
rm grocy_2.7.1.zip
chown www-data: /var/www/html -R

cp /var/www/html/config-dist.php /var/www/html/data/config.php

touch /etc/apache2/sites-available/grocy.conf
> /etc/apache2/sites-available/grocy.conf

echo -e "<VirtualHost *:80>" >> /etc/apache2/sites-available/grocy.conf
echo -e "  DocumentRoot /var/www/html/public" >> /etc/apache2/sites-available/grocy.conf
echo -e "  ErrorLog \${APACHE_LOG_DIR}/error.log" >> /etc/apache2/sites-available/grocy.conf
echo -e "  CustomLog \${APACHE_LOG_DIR}/access.log vhost_combined" >> /etc/apache2/sites-available/grocy.conf
echo -e "</VirtualHost>" >> /etc/apache2/sites-available/grocy.conf

apt-get update && upgrade
apt-get install php-sqlite3

a2dissite 000-default.conf
a2ensite grocy.conf
systemctl reload apache2

Petite précision, avec ce script, Grocy est dézipé directement dans le répertoire « html » et ne crée pas de sous répertoire « Grocy » :
image

Malgré cette procédure, ça n’a pas fonctionné. En fait tel quel, il n’y a pas de BASE_URL d’indiqué et j’ai le message suivant en tapant directement l’IP de ma VM dans le navigateur :
image
On peut constater qu’il se passe bien quelque chose car le navigateur a ajouté tout seul « stockovierview » après l’adresse IP. Comme j’ai le message d’erreur « The requested URL was not found on this server. », j’ai donc mis le nom de serveur « grocy.domain.tld » (on peut mettre ce que l’on veut) dans le fichier config.php de Grocy :

nano /var/www/html/data/config.php
# The base url of your installation,
# should be just "/" when running directly under the root of a (sub)domain
# or for example "https://example.com/grocy" when using a subdirectory
Setting('BASE_URL', 'grocy.domain.tld/');

Ensuite j’ai modifié le fichier « /etc/apache2/sites-available/grocy.conf » créé par le script dans apache2 pour rajouter sur la deuxième ligne « ServerName grocy.domain.tld » (grocy.domain.tld étant ce que j’ai renseigné précédemment) :

nano /etc/apache2/sites-available/grocy.conf
<VirtualHost *:80>
  ServerName grocy.domain.tld
  DocumentRoot /var/www/html/public
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
</VirtualHost>

Et malgré ces modifications, j’obtiens le résultat suivant :

Donc pas mieux, voir pire.

Si un expert pouvait nous indiquer où est le problème, ce serait très sympa.
Merci d’avance.

tape ton ip et pas grocy.domain.tld sauf si tu as mis ca dans ta conf

et sur la base url laisse /

Setting('BASE_URL', '/');

Bien justement en laissant de base et en tapant mon ip j’ai ça comme décrit dans mon message ci-dessus :
image

Dans ton cas pas besoin du ServerName

<VirtualHost *:80>
  DocumentRoot /var/www/html/public
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
</VirtualHost>

et relance le service apache

C’est bien ce que je pensais mais comme j’avais l’erreur ci-dessus après avoir relancé le service apache, j’ai aussi essayé avec le ServerName.
Ça bloque quelque part mais je ne sais pas où.

Tu as quoi dans les logs apaches ?
Tu peux poster ton fichier config de grocy ?

Je ne sais pas comment récupérer les logs apache, par contre ci-joint le fichier config de grocy.

Par contre dans ce fichier il y a la ligne « Setting(‹ BASE_PATH ›, ‹  ›); », et comme grocy n’est pas dans le répertoire « grocy » mais directement dans /var/www/html, c’est peut-être là le problème ?
config.php.txt (7,7 Ko)

Hello à tous,

est-ce possible d’avoir grocy sous un autre serveur et de l’intégrer à jeedom?

si oui uniquement par API?

Oui, tout à fait. Le mien est actuellement sous forme de Docker sur mon Nas Synology, et communique bien avec ma Jeedom Smart qui est à part, tout ca par API.

Merci pour la réponde @cedriclocqueneux ! L’intégration par API peut elle être simplifiée par un outil ou alors tout se passe sur grocy?