Contenerisation

This commit is contained in:
ElPoyo
2025-09-29 15:53:29 +02:00
parent 45f76cc5c8
commit 5d0993bda3
17 changed files with 122 additions and 58 deletions

2
.env
View File

@@ -1,2 +0,0 @@
VITE_PORT=3001
TEXTS_API_URL=http://localhost:3000

6
30-api-config.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
API_URL=${VITE_TEXTS_API_URL:-http://localhost:3000/api}
echo "Configuration du frontend avec l'API URL: $API_URL"
# Remplace l'URL de l'API dans les fichiers JS
find /usr/share/nginx/html -name "*.js" -type f -exec sed -i "s|VITE_TEXTS_API_URL_PLACEHOLDER|$API_URL|g" {} \;

32
Dockerfile Normal file
View File

@@ -0,0 +1,32 @@
# Étape de build
FROM node:20-alpine as build
WORKDIR /app
# Copie des fichiers de dépendances
COPY package*.json ./
# Installation des dépendances
RUN npm install
# Copie des fichiers source
COPY . .
# Build de l'application (sans définir d'URL spécifique)
RUN npm run build
# Étape de production avec Nginx
FROM nginx:alpine
# Copie des fichiers buildés depuis l'étape précédente
COPY --from=build /app/dist /usr/share/nginx/html
# Copie du script de configuration de l'API
COPY 30-api-config.sh /docker-entrypoint.d/30-api-config.sh
RUN chmod +x /docker-entrypoint.d/30-api-config.sh
# Exposition explicite du port utilisé par Nginx
EXPOSE 80
# Démarrage de Nginx
CMD ["nginx", "-g", "daemon off;"]

View File

@@ -1,2 +0,0 @@
PORT=3000
TEXTS_PATH=C:\src\patois\texts

12
backend/Dockerfile Normal file
View File

@@ -0,0 +1,12 @@
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

33
deploy.yml Normal file
View File

@@ -0,0 +1,33 @@
version: '3'
services:
api:
image: elpoyo/patois-api:latest
restart: always
ports:
- "${API_PORT:-3000}:3000"
environment:
- PORT=3000
- TEXTS_PATH=/app/texts
- NODE_ENV=production
volumes:
- ${TEXTS_PATH:-./texts}:/app/texts
frontend:
image: elpoyo/patois-frontend:latest
restart: always
ports:
- "${FRONTEND_PORT:-8080}:80"
environment:
- VITE_TEXTS_API_URL=${API_URL}
depends_on:
- api
# Configuration via variables d'environnement :
# API_PORT=3000 # Port externe de l'API
# FRONTEND_PORT=8080 # Port externe du frontend
# API_URL=http://ip:port/api # URL complète de l'API pour le frontend
# TEXTS_PATH=/chemin/vers/textes # Chemin vers le dossier des textes
#
# Exemple d'utilisation :
# API_PORT=52000 FRONTEND_PORT=52001 API_URL=http://192.168.1.34:52000/api TEXTS_PATH=/mnt/configs/patois docker-compose up -d

1
docker-entrypoint.sh Normal file
View File

@@ -0,0 +1 @@


View File

@@ -2,7 +2,7 @@
* Service pour communiquer avec l'API backend des textes * Service pour communiquer avec l'API backend des textes
*/ */
const API_BASE_URL = import.meta.env.TEXTS_API_URL const API_BASE_URL = 'VITE_TEXTS_API_URL_PLACEHOLDER'
export class TextService { export class TextService {
constructor() { constructor() {

View File

@@ -1,11 +0,0 @@
Le Renard et le Corbeau
Il était une fois un corbeau qui avait trouvé un morceau de fromage.
Il se percha sur une branche d'arbre pour le manger tranquillement.
Un renard rusé passa par là et sentit l'odeur du fromage.
Il leva les yeux et vit le corbeau avec son trésor.
Le renard commença à flatter le corbeau sur sa beauté.
Il lui dit que sa voix devait être aussi belle que son plumage.
Le corbeau, flatté, ouvrit le bec pour chanter.
Le fromage tomba directement dans la gueule du renard.
Le renard s'enfuit en remerciant le corbeau pour ce repas.

View File

@@ -1,8 +0,0 @@
titre_fr=Le Renard et le Corbeau
titre_pt=Le Renat et le Corbeau
auteur=Jean de La Fontaine (adaptation)
traducteur=Exemple de traduction
categorie=Conte
difficulte=Facile
date_creation=2025-09-26

View File

@@ -1,11 +0,0 @@
Le Renat et le Corbeau
Y avait una fés un corbeau qu'avait trovâ un morciau de fromâjo.
Se perchit sur una brancha d'âbro por le mangiér tranquillament.
Un renat rusâ passit per lâ et sentit l'odour du fromâjo.
Levit los uelhs et vit le corbeau avouéc son trésôr.
Le renat comencit a flatar le corbeau sur sa biôtât.
Li dit que sa vouéx deviat étre aussi bèla que son plumâjo.
Le corbeau, flatâ, durbrit le bec por chantar.
Le fromâjo tombît directament dens la goula du renat.
Le renat s'enfugit en remerciant le corbeau por cél repas.

Binary file not shown.

View File

@@ -1,7 +0,0 @@
Il était une fois deux frères, Pierino et Maurice, qui habitaient le même village, dans deux maisons proches l'une de l'autre. Un jour Pierino propose : « Quen penses-tu si on rassemblait nos épargnes et que lon achetait une vache ? ». Maurice accepte et le lendemain ils se mettent en route pour aller à la foire du village voisin.
En marchant Pierino, qui se croyait bien plus malin que Maurice, pense : « Je te mettrais au pas ».
A la foire, après avoir bien examiné toutes les vaches, des pie noirs à la tête blanche jusquaux châtaines, des reines jusquaux vaches à lait, des vaches aux cornes bouclées, jusquà celles aux cornes retournées vers le haut, des vaches aux épaules abaissées jusquà celles à léchine courbée, ils en choisissent une, Lenetta, une pie-rouge bien grasse et la payent avec l'argent qu'ils avaient mis en commun.
Quand la foire est finie, les deux frères retournent à la maison : « On lamènera dans mon étable, elle est plus grande et sèche », dit Pierino. Mais ils commencent tout de suite à discuter pour savoir dans quelle étable mettre la vache.
Après sêtre bien disputé tout le long du chemin : « Voilà la solution, on va attacher la vache au milieu d'un pré situé entre nos maisons ».
Après cela, les deux frères décident aussi de se partager la vache. Pierino, le plus intelligent, veut le devant de la bête : « Je ne me salirai pas les mains et jaurai moins de travail ».
Donc il reste le derrière pour Maurice. « Tu croyais être le plus rusé - pense Maurice - tu as voulu la partie de la tête, maintenant il faut que tu ailles chercher du foin et de l'eau pour lui donner à manger et à boire…alors que tu nauras aucun gain; tandis que moi jirai chercher un seau pour traire la vache et vendre mon bon lait ».

View File

@@ -1,8 +0,0 @@
titre_fr=La vache partagée
titre_pt=La vatse a métchà
auteur=Rita Decime
traducteur= N/A
categorie=Conte
difficulte=Difficile
date_creation=1984

View File

@@ -1,7 +0,0 @@
Y ave én queu do frae, Piérino é Morise, quittévon ou mémo veladzo, dedeun do métcho én protcho dé l'otro. Én dzor Piérino propeuze : « Qué te nen di si no betissan énsembio lé seu é natsétissan eunna vatse ? ». Morise asette é lo dzor apré i parton a la féa dou veladzo vezén.
Én tsemenèn Piérino, qui ché crèyéve bièn peu fén qué Morise, pense : « Té fézo poué vére mè éa ! ».
A la féa, apré avé bièn avété totte lé vatse, di boutchanoye i tsatagnaye, di réne di corne i réne dou lasé, di vatse di corne boquie a selle di corne rébécoye, di vatse épaloye, i vatse couerbe, i nen cherdon eunna, Lenetta, na biantse é rodze bièn grâsa é la payon avoué lé seu qué y avon betó énsembio.
A la fén dé la féa, lé do frae tornon i métcho : « No la portèn poué a léteu dé mè, y é peu lardzo é peu sec qué lo tén », i di Piérino ; ma i coménson to sebeu a ché ruzà pé désidà ioù ivernà la vatse.
Apré avé bièn désquetó to lo lon dou tsemén : « Vouèlà la solechón, gropèn poué la vatse ou verzé éntrémé di do métcho ».
Dé sen, lé do frae désidon fénque dé ché partadzé én do la vatse. Piérino, lo peu savèn, i vou lo moro : « Paé, mémpouertso po poué lé man é né poué mouèn dé travai ».
A Morise, adón, i reste lo déré : « Te crèyéve détre lo peu fén, to voulù la téta, éa i té fo alà tsertsé dé fen é déve pé lle bayé rodzé é bée é... sensa gnen lle gagné ! Mè, i contréo, veu poué mé tsertsé én sezelén pé biètsé la vatse é dze pouì poué vendre dé bon lasé ».

36
truenas-deploy.yml Normal file
View File

@@ -0,0 +1,36 @@
version: '3'
services:
api:
image: elpoyo/patois-api:latest
restart: always
ports:
- '52002:3000'
environment:
- PORT=3000
- TEXTS_PATH=/app/texts
- NODE_ENV=production
volumes:
- /mnt/configs/patois:/app/texts
frontend:
image: elpoyo/patois-frontend:latest
restart: always
ports:
- '52001:80'
environment:
- VITE_TEXTS_API_URL=http://192.168.1.34:52002/api
depends_on:
- api
# Configuration pour TrueNAS SCALE
#
# API accessible sur : http://192.168.1.34:52002/api
# Frontend accessible sur : http://192.168.1.34:52001
#
# Dossier des textes : /mnt/configs/patois (doit exister sur TrueNAS)
#
# Pour déployer :
# 1. Créer le répertoire /mnt/configs/patois sur TrueNAS
# 2. Copier ce fichier sur TrueNAS
# 3. Déployer avec : docker-compose -f truenas-deploy.yml up -d

View File

@@ -7,7 +7,7 @@ export default defineConfig(({ mode }) => {
return { return {
plugins: [vue()], plugins: [vue()],
server: { server: {
port: parseInt(env.VITE_PORT) || 3001 port: parseInt(env.VITE_PORT) || 8080,
} }
} }
}) })