No Description

SiM 81defc5862 #3 remove Francs informations on invoices 2 years ago
apps 77b20a417d #5 change adhesion pdf infos from sol to coop du tilleul 2 years ago
config f66f0f9790 DB change quantity field from int to float TG-47 2 years ago
data f66f0f9790 DB change quantity field from int to float TG-47 2 years ago
docker 9ec0575330 remove default html folder 3 years ago
lib 81defc5862 #3 remove Francs informations on invoices 2 years ago
plugins 3c7b48585a change ux quantity field from int to float type and use native input number to adjust quantity TG-50 2 years ago
test 6976b6c43d fix outdated tests 3 years ago
web 56be1fcda6 products authorizing decimals in quantity : add checks and info display TG-52 2 years ago
.gitignore d74616285e add logs and uploads folders to .gitignore 3 years ago
ISSUE_TEMPLATE.md 456d43352f add issue template 2 years ago
README.md 78c49bbba0 change issues url 2 years ago
docker-compose.yml c47d4d200d change default docker apache port to avoid conflicts 3 years ago
symfony 04dc40eb19 first commit 4 years ago

README.md

Katao

Plateforme du réseau de distribution porté par la Coop du Tilleul

Sommaire

Rapporter un bug

https://agora.tera.coop/gogs/tera.coop/katao-coop-tilleul/issues

Informations préalables

Cette application utilise Symfony 1.1.9 ! Il faut donc un environnement avec php5.

Installation (avec Docker)

Récupération des sources et build

Tout d'abord, clôner ce dépôt :

$ git clone https://agora.tera.coop/gogs/tera.coop/katao-coop-tilleul.git
$ cd katao-coop-tilleul

On construit les différentes images pour Docker :

$ docker-compose build

Puis on lance le bouzin :

$ docker-compose up

On peut vérifier que tout tourne correctement (tout doit être à "up") :

$ docker-compose ps

Gestion des droits d'accès

La gestions des droits d'accès avec Docker et les volumes n'est pas simple, voici une solution :

  1. Créer les répertoires cache et uploads :
$ mkdir cache web/uploads
  1. On donne tous les droits sur les répertoires dans lesquels l'appli peut écrire :
$ sudo chmod -R 777 cache log logs web/uploads

Déclaration de notre domaine local

On modifie le fichier /etc/hosts pour faire pointer katao.local et admin.katao.local sur notre container nouvellement créé :

$ echo "$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -f name=apache-php -q)) katao.local" | sudo tee --append /etc/hosts
$ echo "$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -f name=apache-php -q)) admin.katao.local" | sudo tee --append /etc/hosts

Import d'un dump de la base de données

Remplacer [DUMP] par le nom de votre dump :

$ docker exec -i $(docker ps -f name=db_1 -q) mysql -ukatao -pkatao katao < [DUMP].sql

Accéder au site

Normalement, vous devriez avoir un site fonctionnel en tapant katao.local dans votre navigateur web.

Consulter les logs

Vous pouvez accéder aux logs symfony et nginx via les fichiers suivants :

  • logs/nginx
  • logs/symfony

Accès bash aux containers

Pour diverses raisons, on peut avoir besoin d'avoir un accès bash sur nos containers (lancer des commandes symfony ou explorer la bdd).

$ docker exec -it $(docker ps -f name=apache-php -q) bash

ou pour la bdd :

$ docker exec -it $(docker ps -f name=db_1 -q) bash

Quelques explications

Nous créeons 2 containers (voir le fichier docker-compose.yml)

  • db : C'est le container Mysql
  • apache-php : C'est le container qui contient lees sources de l'application (via un volume qui est monté à l'intérieur)

Le container apache-php est spécifique (contrairement à db qui utilise directement l'image mariadb), et est défini dans le fichier docker/apache-php/Dockerfile.

Pour éviter des problèmes lors du lancement d'apache, on passe par l'exécution d'un script start-apache.sh.

Tests

Pour lancer les tests, taper :

$ php symfony test:all

Mise en production

Base de données

  • Créer un utilisateur katao pour la base de données
  • Modifier la section prod du fichier suivant pour mettre à jour les informations de connexion à la BDD :
    • config/databases.yml

Configuration prod

Changer la configuration de dev en prod dans les fichiers suivants :

  • web/admin.php
  • web/api.php
  • web/index.php

Nom de domaine

Modifier la section prod du fichier config/app.yml (attention à http / https)