Files
sql/README.md
2025-10-14 21:11:54 +02:00

94 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### Construire l'image
```shell
docker build -t iut/pgsql:2025-12 -f postgresql.Dockerfile .
```
## Données
### Conventions de nommage
Le nom des tables est au singulier et en minuscule
### Schéma
table |colonnes
--- |---
adherent | id, nom, prenom, genre, naissance, codepostal
famille | code, famille, code_parent, arborescence (ltree), gauche, droite
article | code, article, famille_code, factpoids, prix
ticket | id, date_ticket, adherent_id, mode_rglt
ligne | id, ticket_id, article_code, prix_unitaire, quantite
### Export
```shell
psql -h 127.0.0.1 -d sql -U sql -c "\copy (select * from ligne order by id) to './ligne.csv' with csv header"
psql -h 127.0.0.1 -d sql -U sql -c "\copy (select id, source, target, cost, reverse_cost, ST_AsText(geom) from route order by id) to './route.csv' with csv header"
```
### Jeux de données
- https://www.kaggle.com/datasets/alexandrelemercier/food-detailed-nutritional-content
## Proxy inverse
Un proxy inverse (ou reverse proxy) est un service intermédiaire placé entre les utilisateurs et les applications web internes. Il reçoit les requêtes HTTP/HTTPS et les redirige automatiquement vers le bon service backend, souvent sur un autre port ou un autre conteneur.
Il permet notamment :
- davoir un seul point dentrée pour plusieurs services ;
- de simplifier les URLs (par exemple pgadmin.localhost au lieu de localhost:5050) ;
- de gérer les certificats TLS/HTTPS automatiquement ;
- dassurer la découverte automatique et le load balancing entre conteneurs.
Les solutions pour réaliser un reverse proxy sont généralement [Traefik](https://traefik.io/traefik), [Nginx Proxy Manager](https://nginxproxymanager.com/) et [Caddy](https://caddyserver.com/).
**Caddy** se démarque par sa grande simplicité : il se configure presque entièrement à partir de labels Docker et gère automatiquement la création de certificat HTTPS, ce qui le rend idéal pour les environnements de développement ou les projets personnels.
**Traefik**, de son côté, est plus complet et mieux adapté aux environnements de production complexes : il offre une gestion fine du routage, et sintègre parfaitement avec des orchestrateurs comme Docker Swarm ou Kubernetes.
**Nginx Proxy Manager** propose une approche visuelle grâce à son interface web dadministration. Il est apprécié des utilisateurs qui préfèrent tout configurer par le navigateur, mais il reste moins automatisé que Caddy et moins flexible que Traefik pour les infrastructures dynamiques.
```yaml
caddy:
image: lucaslorentz/caddy-docker-proxy:2.10
restart: "no"
ports:
- "80:80"
- "443:443/tcp"
- "443:443/udp"
- "2019:2019"
networks:
- caddy_net
environment:
CADDY_INGRESS_NETWORKS: ${COMPOSE_PROJECT_NAME}_caddy_net
CADDY_ADMIN: "0.0.0.0:2019"
volumes:
- ./data:/usr/share/caddy
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
caddy_admin: "on"
```
### Administration
pgAdmin est un outil dadministration et de gestion pour PostgreSQL.
Cest léquivalent dun « phpMyAdmin » pour MySQL, mais conçu pour PostgreSQL.
### PostGraphile
```shell
docker build -t iut/postgraphile:2025-12 -f postgraphile.Dockerfile .
```
### Podman
```shell
sudo ausearch -c "caddy" --raw | audit2allow -M my-caddy
sudo semodule -i my-caddy.pp
```