diff --git a/README.md b/README.md index c32c3e8..86f3d83 100644 --- a/README.md +++ b/README.md @@ -1,100 +1,6 @@ # Environnement logiciel pour les travaux pratiques -## Proxy - -Le **proxy** joue le rôle de **point d’entrée unique** vers l’ensemble des services du système. Plutôt que d’exposer chaque application ou microservice sur un port ou une adresse distincte, toutes les requêtes passent par le proxy, qui se charge de les rediriger vers la bonne destination selon le nom de domaine, le chemin ou d’autres critères. - -Ce modèle centralisé simplifie la configuration réseau, facilite la sécurisation des échanges (par exemple avec un certificat TLS unique), et permet d’ajouter des fonctionnalités transversales comme la journalisation, la mise en cache, ou la limitation de débit. - -Ainsi, le proxy agit comme une **porte d’accès intelligente** qui distribue le trafic de manière transparente vers une multitude de services internes, tout en présentant une interface cohérente et unifiée aux utilisateurs externes. - -Créer un réseau spécifique pour le serveur proxy - -```shell -docker network create proxy_net -``` - -```shell -docker run --detach --name caddy-docker-proxy --restart=always \ - --network proxy_net -p "80:80" -p ""443:443/tcp"" -p "443:443/udp" \ - -e "CADDY_INGRESS_NETWORKS=proxy_net" \ - -v caddy_config:/config \ - -v caddy_data:/data \ - -v /var/run/docker.sock:/var/run/docker.sock:ro \ - -v "$(pwd)/www:/srv/www:ro" \ - --label "caddy=localhost" \ - --label "caddy.root=* /srv/www" \ - --label "caddy.file_server=" \ - --label "caddy.tls=internal" \ - lucaslorentz/caddy-docker-proxy:2.10 -``` - -Pour l'invite de commande Windows remplacer `\` par `^` et `$(pwd)/` par `%cd%\` - -### WhoAmI - -Ce mini serveur Go affiche des informations sur la requête http. Utile pour tester le bon fonctionnement du proxy. - -```shell -docker run --detach --name whoami \ - --network proxy_net \ - --label "caddy=whoami.localhost" \ - --label "caddy.reverse_proxy={{upstreams 80}}" \ - --label "caddy.tls=internal" \ - traefik/whoami -``` - -## Toxiproxy - -Toxiproxy est un outil open source développé par Shopify qui agit comme un proxy TCP permettant de simuler diverses conditions réseau, telles que la latence, la perte de paquets ou les coupures de connexion, afin de tester la résilience des applications. - -Il est conçu pour les environnements de développement, d'intégration continue et de test, offrant une API dynamique pour injecter des perturbations réseau (appelées toxics) de manière contrôlée ou aléatoire. - -Grâce à Toxiproxy, les développeurs peuvent identifier les points de défaillance potentiels de leurs systèmes distribués et améliorer la tolérance aux pannes en simulant des scénarios de dégradation réseau réalistes. - -```shell -docker run --detach --name toxiproxy \ - --network proxy_net \ - --label "caddy_0=toxiproxy.localhost" \ - --label "caddy_0.reverse_proxy={{upstreams 8474}}" \ - --label "caddy_0.tls=internal" \ - --label "caddy_1=whoami.toxic.localhost" \ - --label "caddy_1.reverse_proxy={{upstreams 9001}}" \ - --label "caddy_1.tls=internal" \ - ghcr.io/shopify/toxiproxy -``` - -VOIR la configuration - -## Mock Web API - -**Smocker** est un outil de **mockage d’API REST** conçu pour faciliter le développement, les tests et l’intégration d’applications qui communiquent avec des services externes. Il permet de simuler facilement le comportement d’une API en définissant des **mocks** (réponses fictives) à partir de requêtes HTTP attendues. - -Grâce à une interface web et une API de configuration, Smocker autorise la création dynamique de scénarios complexes : gestion d’états, réponses conditionnelles, délais simulés ou erreurs contrôlées. - -Cet outil est particulièrement utile dans les environnements de test ou de développement où le service réel n’est pas encore disponible, instable, ou payant. En remplaçant temporairement les dépendances externes par des versions simulées, Smocker améliore la **rapidité**, la **prévisibilité** et la **fiabilité** des tests d’intégration et des pipelines CI/CD. - -```shell -docker run --detach --name smocker \ - --network proxy_net \ - --label "caddy_0=smocker.localhost" \ - --label "caddy_0.reverse_proxy={{upstreams 8080}}" \ - --label "caddy_0.tls=internal" \ - --label "caddy_1=smocker.admin.localhost" \ - --label "caddy_1.reverse_proxy={{upstreams 8081}}" \ - --label "caddy_1.tls=internal" \ - thiht/smocker:0.18.5 -``` - -## Mail - -```shell -docker run --detach --name mailpit \ - --network proxy_net \ - -e "TZ=Europe/Paris" \ - -p "1025:1025" \ - --label "caddy=mailpit.localhost" \ - --label "caddy.reverse_proxy={{upstreams 8025}}" \ - --label "caddy.tls=internal" \ - axllent/mailpit:v1.25 -``` +- [Reverse Proxy](reverse_proxy.md) +- [Web API Mock](smocker.md) +- [Mail](mail.md) +- [MariaDB](mariadb.md) diff --git a/geii3_2025.md b/geii3_2025.md new file mode 100644 index 0000000..cc5a64d --- /dev/null +++ b/geii3_2025.md @@ -0,0 +1,32 @@ + +## Raspberry 1 + +- belhocine +- marchionni +- sarr +- aubry +- kilali + +## Raspberry 2 + +- diop +- valentin +- sidi-kada +- fleurance +- klai + +## Raspberry 3 + +- hamid +- kone +- wentzel +- benamio +- fomekong + +## Raspberry 4 + +- thiam +- ottinger +- mouthon +- domingo +- tchouta diff --git a/mail.md b/mail.md new file mode 100644 index 0000000..43fedae --- /dev/null +++ b/mail.md @@ -0,0 +1,22 @@ +# Mail + +## Mailpit + +Mailpit est un outil open source conçu pour **intercepter** et **visualiser** les e-mails envoyés par une application pendant le développement ou les tests. + +Il agit comme un serveur SMTP local (vers lequel l’application envoie les messages) et fournit une interface web pour consulter ces e-mails sans qu’ils soient réellement envoyés à Internet. + +Le port d'écoute SMTP est le 1025 (25 normalement) et l'interface d'administation écoute sur le port 8025. + +```shell +docker run --detach --name mailpit \ + --network proxy_net \ + -e "TZ=Europe/Paris" \ + -p "1025:1025" \ + --label "caddy=mailpit.localhost" \ + --label "caddy.reverse_proxy={{upstreams 8025}}" \ + --label "caddy.tls=internal" \ + axllent/mailpit:v1.25 +``` + +Dans cet exemple l'interface d'administration est placée derrière le [reverse proxy](reverse_proxy.md). diff --git a/note.md b/note.md new file mode 100644 index 0000000..fe5915e --- /dev/null +++ b/note.md @@ -0,0 +1,39 @@ + + +Installation Raspberry + +```shell +sudo apt update && sudo apt upgrade -y +sudo reboot +``` +Installation + +```shell +sudo apt install postgresql +``` + +```shell +sudo nano /etc/postgresql/17/main/pg_hba.conf +``` + +``` +host all all 0.0.0.0/0 scram-sha-256 +``` + +```shell +sudo nano /etc/postgresql/17/main/postgresql.conf +``` + +``` +listen_addresses = '*' +``` + +```shell +sudo systemctl restart postgresql +sudo -u postgres psql +``` + +```sql +CREATE USER belhocine WITH password 'geii2025'; +CREATE DATABASE belhocine OWNER belhocine; +``` diff --git a/reverse_proxy.md b/reverse_proxy.md new file mode 100644 index 0000000..02ad068 --- /dev/null +++ b/reverse_proxy.md @@ -0,0 +1,67 @@ +# Reverse Proxy + +Le **reverse proxy** joue le rôle de **point d’entrée unique** vers l’ensemble des services du système. Plutôt que d’exposer chaque application ou microservice sur un port ou une adresse distincte, toutes les requêtes passent par le proxy, qui se charge de les rediriger vers la bonne destination selon le nom de domaine, le chemin ou d’autres critères. + +Ce modèle centralisé simplifie la configuration réseau, facilite la sécurisation des échanges (par exemple avec un certificat TLS unique), et permet d’ajouter des fonctionnalités transversales comme la journalisation, la mise en cache, ou la limitation de débit. + +Ainsi, le proxy agit comme une **porte d’accès intelligente** qui distribue le trafic de manière transparente vers une multitude de services internes, tout en présentant une interface cohérente et unifiée aux utilisateurs externes. + +Créer un réseau spécifique pour le serveur proxy + +```shell +docker network create proxy_net +``` + +## Caddy Docker Proxy + +```shell +docker run --detach --name caddy-docker-proxy --restart=always \ + --network proxy_net -p "80:80" -p ""443:443/tcp"" -p "443:443/udp" \ + -e "CADDY_INGRESS_NETWORKS=proxy_net" \ + -v caddy_config:/config \ + -v caddy_data:/data \ + -v /var/run/docker.sock:/var/run/docker.sock:ro \ + -v "$(pwd)/www:/srv/www:ro" \ + --label "caddy=localhost" \ + --label "caddy.root=* /srv/www" \ + --label "caddy.file_server=" \ + --label "caddy.tls=internal" \ + lucaslorentz/caddy-docker-proxy:2.10 +``` + +Pour l'invite de commande Windows remplacer `\` par `^` et `$(pwd)/` par `%cd%\` + +## WhoAmI + +Ce mini serveur Go affiche des informations sur la requête http. Utile pour tester le bon fonctionnement du proxy. + +```shell +docker run --detach --name whoami \ + --network proxy_net \ + --label "caddy=whoami.localhost" \ + --label "caddy.reverse_proxy={{upstreams 80}}" \ + --label "caddy.tls=internal" \ + traefik/whoami +``` + +## Toxiproxy + +Toxiproxy est un outil open source développé par Shopify qui agit comme un proxy TCP permettant de simuler diverses conditions réseau, telles que la latence, la perte de paquets ou les coupures de connexion, afin de tester la résilience des applications. + +Il est conçu pour les environnements de développement, d'intégration continue et de test, offrant une API dynamique pour injecter des perturbations réseau (appelées toxics) de manière contrôlée ou aléatoire. + +Grâce à Toxiproxy, les développeurs peuvent identifier les points de défaillance potentiels de leurs systèmes distribués et améliorer la tolérance aux pannes en simulant des scénarios de dégradation réseau réalistes. + +```shell +docker run --detach --name toxiproxy \ + --network proxy_net \ + --label "caddy_0=toxiproxy.localhost" \ + --label "caddy_0.reverse_proxy={{upstreams 8474}}" \ + --label "caddy_0.tls=internal" \ + --label "caddy_1=whoami.toxic.localhost" \ + --label "caddy_1.reverse_proxy={{upstreams 9001}}" \ + --label "caddy_1.tls=internal" \ + ghcr.io/shopify/toxiproxy +``` + +VOIR la configuration diff --git a/smocker.md b/smocker.md new file mode 100644 index 0000000..cec01d3 --- /dev/null +++ b/smocker.md @@ -0,0 +1,19 @@ +## Web API Mock + +**Smocker** est un outil de **mockage d’API REST** conçu pour faciliter le développement, les tests et l’intégration d’applications qui communiquent avec des services externes. Il permet de simuler facilement le comportement d’une API en définissant des **mocks** (réponses fictives) à partir de requêtes HTTP attendues. + +Grâce à une interface web et une API de configuration, Smocker autorise la création dynamique de scénarios complexes : gestion d’états, réponses conditionnelles, délais simulés ou erreurs contrôlées. + +Cet outil est particulièrement utile dans les environnements de test ou de développement où le service réel n’est pas encore disponible, instable, ou payant. En remplaçant temporairement les dépendances externes par des versions simulées, Smocker améliore la **rapidité**, la **prévisibilité** et la **fiabilité** des tests d’intégration et des pipelines CI/CD. + +```shell +docker run --detach --name smocker \ + --network proxy_net \ + --label "caddy_0=smocker.localhost" \ + --label "caddy_0.reverse_proxy={{upstreams 8080}}" \ + --label "caddy_0.tls=internal" \ + --label "caddy_1=smocker.admin.localhost" \ + --label "caddy_1.reverse_proxy={{upstreams 8081}}" \ + --label "caddy_1.tls=internal" \ + thiht/smocker:0.18.5 +```