From 935200d7b6efd428d271116f96a2e561cd7ce281 Mon Sep 17 00:00:00 2001 From: Fernandes Samuel <samuel.fernandes@etu.unistra.fr> Date: Thu, 3 Apr 2025 18:25:28 +0200 Subject: [PATCH] how to simplify containerization --- Utils/env_original | 18 ++++++++++++++++++ Utils/nignx_conf | 33 +++++++++++++++++++++++++++++++++ Utils/npm_auth.png | Bin 0 -> 17580 bytes envs/web | 0 todo.md | 7 +++---- 5 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 Utils/env_original create mode 100644 Utils/nignx_conf create mode 100644 Utils/npm_auth.png create mode 100644 envs/web diff --git a/Utils/env_original b/Utils/env_original new file mode 100644 index 0000000..3d8f276 --- /dev/null +++ b/Utils/env_original @@ -0,0 +1,18 @@ +API_DEV_CONTAINER_NAME=api-dev +API_PROD_CONTAINER_NAME=api-prod +DB_DEV_CONTAINER_NAME=db-dev +DB_PROD_CONTAINER_NAME=db-prod +PGADMIN_DEV_CONTAINER_NAME=pgadmin-dev +PGADMIN_PROD_CONTAINER_NAME=pgadmin-prod +API_PORT=3000 +AI_URL=http://ollama:11434/api/generate +DATABASE_USER_PORT=5432 +DATABASE_ADMIN_PORT=5050 +POSTGRES_USER=user +POSTGRES_PASSWORD=password +POSTGRES_DB=dbname +DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:${DATABASE_USER_PORT}/${POSTGRES_DB} +GLOBAL_IP=localhost +PGADMIN_DEFAULT_EMAIL=admin@nidhoggr.com +PGADMIN_DEFAULT_PASSWORD=admin_password +JWT_SECRET=KK8QFgIopYx3bQrbN+dtJH1H24CJSZ2PxMQFbg0kUtU= diff --git a/Utils/nignx_conf b/Utils/nignx_conf new file mode 100644 index 0000000..2d48c90 --- /dev/null +++ b/Utils/nignx_conf @@ -0,0 +1,33 @@ +server { + listen 443; + server_name vm-02.iutrs.unistra.fr; + ssl_certificate /etc/letsencrypt/live/vm-02.iutrs.unistra.fr/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/vm-02.iutrs.unistra.fr/privkey.pem; + include /etc/letsencrypt/options-ssl-nginx.conf; + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; + + location / { + proxy_pass http://localhost:3000/; # Si ton WEB tourne sur le port 3000 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location /api/ { + proxy_pass http://localhost:4000/; # Si ton API tourne sur le port 4000 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location /model/ { + proxy_pass http://localhost:5000/; # Si ton modèle IA tourne sur le port 5000 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + +} diff --git a/Utils/npm_auth.png b/Utils/npm_auth.png new file mode 100644 index 0000000000000000000000000000000000000000..84ef2036c81531681d5a7ceb3c8c19d4ffeff2aa GIT binary patch literal 17580 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 b-SZKvXbcToYzDtc1Vv6-Nvc@FAmD!iCpXmC literal 0 HcmV?d00001 diff --git a/envs/web b/envs/web new file mode 100644 index 0000000..e69de29 diff --git a/todo.md b/todo.md index 7f07582..442a2fb 100644 --- a/todo.md +++ b/todo.md @@ -1,18 +1,17 @@ ## Sam -- modifier docker (gyokeresk) pour qu'il loopback les ports (voir doc de W ou Blindower) -- déplacer les "init.sh" dans les compose/dockerifle directement (enlever dos2unix etc) ET mettre à jour doc de déploiement **CAR COMME CA DANS LE RAPPORT ET CAR PLUS LOGIQUE** -- ssl (propre truc) +- ssl (notre propre chiffrage, pas vérifié letsencrypt ) ## Eliott + - mettre les questions de moodle (FAQ) dans Rapport et y répondre - intégrer toute info proposée par Elliot en pull request qui aurait été oubliée à la dernière réécriture du rapport ## Non attribuée pour l'instant + - réecrire les Readme au propre (les se citons conventionnelles à mettre, etc) - regarder un peu le code et en parler dans "prise en main" du compte rendu # Prochaine étape Dans prochaine etape du projet : doit changer les valeurs de CI/CD ! (genre user et ip) et les mettre dans jogurmand - \ No newline at end of file -- GitLab