diff --git a/.env b/.env deleted file mode 100644 index 9c35098..0000000 --- a/.env +++ /dev/null @@ -1,2 +0,0 @@ -VITE_PORT=3001 -TEXTS_API_URL=http://localhost:3000 \ No newline at end of file diff --git a/30-api-config.sh b/30-api-config.sh new file mode 100644 index 0000000..36caa85 --- /dev/null +++ b/30-api-config.sh @@ -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" {} \; diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..932bbae --- /dev/null +++ b/Dockerfile @@ -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;"] diff --git a/backend/.env b/backend/.env deleted file mode 100644 index 2d15c51..0000000 --- a/backend/.env +++ /dev/null @@ -1,2 +0,0 @@ -PORT=3000 -TEXTS_PATH=C:\src\patois\texts \ No newline at end of file diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..dcbd52a --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,12 @@ +FROM node:20-alpine + +WORKDIR /app + +COPY package*.json ./ +RUN npm install --production + +COPY . . + +EXPOSE 3000 + +CMD ["node", "server.js"] diff --git a/deploy.yml b/deploy.yml new file mode 100644 index 0000000..a8beff0 --- /dev/null +++ b/deploy.yml @@ -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 diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..e02abfc --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1 @@ + diff --git a/src/services/textService.js b/src/services/textService.js index 23d1532..31d82bf 100644 --- a/src/services/textService.js +++ b/src/services/textService.js @@ -2,7 +2,7 @@ * 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 { constructor() { diff --git a/texts/exemple-conte/fr.txt b/texts/exemple-conte/fr.txt deleted file mode 100644 index f2aff15..0000000 --- a/texts/exemple-conte/fr.txt +++ /dev/null @@ -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. - diff --git a/texts/exemple-conte/metadata.txt b/texts/exemple-conte/metadata.txt deleted file mode 100644 index 1b12f8b..0000000 --- a/texts/exemple-conte/metadata.txt +++ /dev/null @@ -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 - diff --git a/texts/exemple-conte/pt.txt b/texts/exemple-conte/pt.txt deleted file mode 100644 index c87ea49..0000000 --- a/texts/exemple-conte/pt.txt +++ /dev/null @@ -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. - diff --git a/texts/la-vatse-a-metcha/audio.mp3 b/texts/la-vatse-a-metcha/audio.mp3 deleted file mode 100644 index 86bf2fb..0000000 Binary files a/texts/la-vatse-a-metcha/audio.mp3 and /dev/null differ diff --git a/texts/la-vatse-a-metcha/fr.txt b/texts/la-vatse-a-metcha/fr.txt deleted file mode 100644 index 06356d6..0000000 --- a/texts/la-vatse-a-metcha/fr.txt +++ /dev/null @@ -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 : « Qu’en penses-tu si on rassemblait nos épargnes et que l’on 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 jusqu’aux châtaines, des reines jusqu’aux 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 l’amè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 j’aurai 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 n’auras aucun gain; tandis que moi j’irai chercher un seau pour traire la vache et vendre mon bon lait ». \ No newline at end of file diff --git a/texts/la-vatse-a-metcha/metadata.txt b/texts/la-vatse-a-metcha/metadata.txt deleted file mode 100644 index af81624..0000000 --- a/texts/la-vatse-a-metcha/metadata.txt +++ /dev/null @@ -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 - diff --git a/texts/la-vatse-a-metcha/pt.txt b/texts/la-vatse-a-metcha/pt.txt deleted file mode 100644 index 27f2156..0000000 --- a/texts/la-vatse-a-metcha/pt.txt +++ /dev/null @@ -1,7 +0,0 @@ -Y ave én queu do frae, Piérino é Morise, qu’itté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 é n’atsétissan eunna vatse ? ». Morise asette é lo dzor apré i parton a la féa dou veladzo vezén. -Én tsemenèn Piérino, qu’i 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, t’o 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é ». \ No newline at end of file diff --git a/truenas-deploy.yml b/truenas-deploy.yml new file mode 100644 index 0000000..85a48ba --- /dev/null +++ b/truenas-deploy.yml @@ -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 diff --git a/vite.config.js b/vite.config.js index 7f78eda..bbb1623 100644 --- a/vite.config.js +++ b/vite.config.js @@ -7,7 +7,7 @@ export default defineConfig(({ mode }) => { return { plugins: [vue()], server: { - port: parseInt(env.VITE_PORT) || 3001 + port: parseInt(env.VITE_PORT) || 8080, } } })