# 🐚 La Banque des Coquillages — Hailey, Violette & Andreas Application familiale **Physique + Digitale** (Site Web + API + Skill Alexa Echo Show) pour gĂ©rer les coquillages de **Hailey**, **Violette** et **Andreas**, leurs activitĂ©s communes du mois, leur tirelire en euros (max 5 € / mois = 10 coquillages) et leur livret d'Ă©pargne bloquĂ©e avec intĂ©rĂȘts mensuels. --- ## 📁 Structure du Projet ```text arrweek/ ├── back/ # API REST Node.js 22 + Express + SQLite (node:sqlite) + Webhook Alexa │ └── Dockerfile # Image Docker backend de production (Node 22 Alpine) ├── front/ # Application Web React + Vite + Tailwind CSS │ ├── Dockerfile # Image Docker frontend multi-stage (Node 22 + Nginx Alpine) │ └── nginx.conf # Configuration Nginx avec reverse proxy (/api/ & /uploads/) ├── skill/ # Skill Alexa officiel │ ├── interactionModels/ # ModĂšle d'interaction vocal (fr-FR.json) │ └── lambda/ # Handler ASK SDK avec Ă©crans APL 1.8 tactiles pour Echo Show ├── docker-compose.yml # DĂ©ploiement Docker complet (backend + frontend + volumes) └── package.json # Monorepo npm workspaces ``` --- ## 🐳 DĂ©ploiement Docker & Nginx Proxy Manager (NPM) ### 1. DĂ©marrer avec Docker Compose Sur votre serveur Docker : ```bash # Cloner le dĂ©pĂŽt depuis votre git perso git clone https://git.home.arrondeau.fr//.git cd # CrĂ©er les dossiers de persistance mkdir -p data uploads # Lancer la stack en arriĂšre-plan docker compose up -d --build ``` Services dĂ©marrĂ©s : - **`coquillages-frontend`** : port `5180` (sert l'application React et relaie automatiquement `/api/` et `/uploads/` vers le backend). - **`coquillages-backend`** : port `4050` (API Node.js + base SQLite persistĂ©e dans `./data` et images dans `./uploads`). --- ### 🌐 2. Configuration dans Nginx Proxy Manager (NPM) Dans l'interface web de votre **Nginx Proxy Manager** : #### Option A (RecommandĂ©e — Domaine unique tout-en-un) : CrĂ©ez un nouveau **Proxy Host** : 1. **Domain Names** : `coquillages.home.arrondeau.fr` (ou votre sous-domaine choisi) 2. **Scheme** : `http` 3. **Forward Hostname / IP** : `IP_DE_VOTRE_SERVEUR_DOCKER` (ou le nom du conteneur si NPM est sur le mĂȘme rĂ©seau Docker : `coquillages-frontend`) 4. **Forward Port** : `5180` (ou `80` en interne) 5. **Options recommandĂ©es** : - [x] **Block Common Exploits** - [x] **Websockets Support** 6. **Onglet SSL** : - SĂ©lectionnez ou gĂ©nĂ©rez un certificat SSL Let's Encrypt - [x] **Force SSL** - [x] **HTTP/2 Support** - [x] **HSTS Enabled** > 🎉 **RĂ©sultat :** > - **Application Web** : `https://coquillages.home.arrondeau.fr` > - **API REST** : `https://coquillages.home.arrondeau.fr/api/...` > - **Endpoint Alexa Webhook permanent** : `https://coquillages.home.arrondeau.fr/api/alexa/webhook` *(plus besoin de tunnel SSH ou localhost.run !)* --- ## đŸŽ™ïž 3. Configuration de l'Endpoint dans la Console Alexa Developer Une fois exposĂ© via NPM avec votre certificat HTTPS : 1. Allez sur la [Console Alexa Developer](https://developer.amazon.com/alexa/console/ask). 2. Ouvrez votre Skill **La Banque des Coquillages**. 3. Dans **Endpoint** : - SĂ©lectionnez **HTTPS**. - **Default Region** : `https://coquillages.home.arrondeau.fr/api/alexa/webhook` - SĂ©lectionnez l'option de certificat SSL : *« My development endpoint has a Certificate from a trusted certificate authority »* (Let's Encrypt). - Cliquez sur **Save Endpoints**. 4. Dans **Interaction Model > JSON Editor** : - Collez le contenu de [`skill/interactionModels/custom/fr-FR.json`](./skill/interactionModels/custom/fr-FR.json). - Cliquez sur **Save Model** puis **Build Model**. --- ## 📩 4. Initialisation & Push sur votre Git perso (`git.home.arrondeau.fr`) Pour initialiser ce dĂ©pĂŽt local et le pousser sur votre instance Git personnelle : ```bash # 1. Initialiser le dĂ©pĂŽt git localement git init # 2. Ajouter tous les fichiers (le .gitignore protĂšge les node_modules et sqlite) git add . # 3. Premier commit git commit -m "feat: Banque des Coquillages v1.0 avec Docker et support NPM" # 4. DĂ©finir la branche principale git branch -M main # 5. Lier votre serveur Git perso git remote add origin https://git.home.arrondeau.fr//.git # 6. Pousser le code git push -u origin main ``` --- ## đŸ’» DĂ©veloppement Local (sans Docker) ```bash # Lancer Backend + Frontend simultanĂ©ment npm run start:all # Ou sĂ©parĂ©ment : npm run dev:back # Backend sur http://localhost:4050 npm run dev:front # Frontend Vite sur http://localhost:5180 ```