https://gitlab.com/litt-arts-num/fonte-gaia/ok-api
Tip revision: cf6e9b679f75285347578720eaf021a4f2becd06 authored by theo.roulet on 14 December 2022, 15:35:45 UTC
Merge branch 'master' of gitlab.com:litt-arts-num/fonte-gaia/ok-api
Merge branch 'master' of gitlab.com:litt-arts-num/fonte-gaia/ok-api
Tip revision: cf6e9b6
readme.md
# Installation :
`git clone git@gitlab.com:litt-arts-num/fonte-gaia/ok-api.git`
`cd ok-api`
### Docker prérequis.
### Configurer docker et symfony
`cp .env.dist .env`
* et ajuster la configuration du `.env` des services docker :
# MySQL
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=dbname
MYSQL_USER=dbuser
MYSQL_PASSWORD=dbpassword
# PORTS
HTTPS_PORT=8321
HTTP_PORT=8322
ADMINER_PORT=8323
MYSQL_PORT=3399
`cp ./application/.env.dist ./application/.env`
* et ajuster la configuration du `.env` de l'application symfony :
DATABASE_URL="mysql://dbuser:dbpassword@db:3306/dbname"
MESSENGER_TRANSPORT_DSN=doctrine://default
APP_SECRET='putYourSecretHere'
APP_ENV=prod
NAKALA_API_KEY="If you harvest private datas from Nakala, you will need to put your api key here. If you only target public datas, you can leave this var empty."
<details> <summary markdown="span"><h4>Environnement de dev / de prod</h4></summary>
* Remplacer `APP_ENV=prod` par `APP_ENV=dev` lors de développements en local (réactive le web-profiler de symfony, aide au debug, vide automatiquement le cache).
* Après avoir repassé l'environnement en prod, vider le cache une fois pour prendre en compte les dernières modifications :
docker-compose exec apache bash;
bin/console cache:clear;
exit;
</details>
<h3>Déploiement en localhost / sur serveur de production</h3>
* **Si l'application est testée en localhost, son accès n'a pas besoin d'être protégé** : supprimez `/docker-files/.htaccess` et sa mention comme volume mention dans `docker-compose.yml` (toute la ligne `- ./docker-files/.htaccess:/var/www/.htaccess`).
* **Sur un serveur de production, le `.htaccess` est recommandé** : il est le seul moyen de protéger l'application par un login et un mot de passe (sa configuration est expliquée dans section suivante). Comme il n'y aucune session d'utilisateur ni aucun moyen de séparer plusieurs jeux de données manipulés, je recommande vivement d'en restreindre l'accès, même sans craindre les mauvaises intentions.
<h3> Construire le conteneur </h3>
* `sudo docker-compose build`
* `sudo docker-compose up -d`
* entrer dans le conteneur pour finir ...
* `sudo docker-compose exec apache bash`
* `make update` ( ... l'installation d'apache et des dépendances de symfony application/Makefile )
**Ignorez l'étape suivante si déployé en localhost**
* Toujours dans le conteneur, créer un premier utilisateur pour se connecter à l'application protégée par un `.htaccess` et un `.htpasswd` d'apache2. :warning: **Retenir / noter absolument le MDP, il est crypté donc illisible dans le fichier.**
* `htpasswd -c -b -B /etc/apache2/htpass/.htpasswd user password`
* Pour créer des utilisateurs supplémentaires retirer l'option `-c` (`-c` écrase le fichier .htpasswd s'il existe déjà).
* `htpasswd -b -B /etc/apache2/htpass/.htpasswd user password`
* Supprimer un utilisateur :
* `htpasswd -D /etc/apache2/htpass/.htpasswd user`
- L'application est accessible,protégée par un login et MDP, sur http://localhost:8322/
# Dépendances
* Les bibliothèques de code et packages importés sont énumérés dans `application/composer.json`
* La plupart sont nécessaires au framework symfony et ajoutées automatiquement par lui.
* **Une bibliothèque tierce y a été rajoutée pour faciliter la création des manifests IIIF : [iiif-manifest-generator_apis-backward-compatibility](https://gitlab.com/litt-arts-num/fonte-gaia/iiif-manifest-generator_apis-backward-compatibility).** Toutes ses fonctionnalités sont documentées sur son dépôt git. **Notez qu'il s'agit d'un fork de la [IIIF Manifest Generator PHP Library](https://github.com/yale-web-technologies/IIIF-Manifest-Generator) conçue par le [Yale University ITS CCT Web Technologies Team](https://github.com/yale-web-technologies).**
# Plus d'informations [sur le wiki](https://gitlab.com/litt-arts-num/fonte-gaia/ok-api/-/wikis/home)
Notamment :
* [Structure de l'application OUTDATED](https://gitlab.com/litt-arts-num/fonte-gaia/ok-api/-/wikis/structure-de-l-app)
* [Pour les développeurs](https://gitlab.com/litt-arts-num/fonte-gaia/ok-api/-/wikis/infos-developpeurs)
* [Pour aller plus loin : héberger sous un sous-domaine](https://gitlab.com/litt-arts-num/fonte-gaia/ok-api/-/wikis/sous-domaine)
