# flip-flip-flip le code source de l’app [https://flip-flip-flip.fr/](https://flip-flip-flip.fr/) ## installation locale de développement cloner ce dépôt git, créer un fichier `.env` contenant : ``` FFF_PORT=3000 FFF_JWT_SECRET="a random string" ``` puis exécuter les commandes : ``` npm install npm run start:dev ``` ## déploiement en utilisant l’image docker publiée, exemple de `docker-compose.yml` : ```yaml services: fff: container_name: fff image: "codeberg.org/tma_ztf/flip-flip-flip:latest" volumes: - /path/to/fff/data:/fff/data environment: FFF_JWT_SECRET: "a random string" restart: unless-stopped ``` cela crée un serveur http écoutant le port 80, il faut aussi avoir un serveur web jouant le rôle de reverse proxy pour gérer le https (par exemple nginx ou caddy) pas de numéros de versions tant que ce ne sera pas nécessaire. ## principes de développement l’idée de ce code est de pouvoir le laisser pendant de longues périodes de temps sans besoin de maintenance, puis pouvoir le reprendre pour le modifier sans avoir à passer par une phase de mise à niveau. j’essaye donc de limiter le recours aux dépendances et aux outils de build. côté back-end : aucun build nécessaire grâce au support natif de typescript par node. côté front-end : j’utilise [lit](https://lit.dev/) pour écrire facilement des composants web natifs, cela ne nécessite pas de build mais je n’ai pas pu me résoudre à abandonner typescript, il y a donc tout de même besoin de lancer `tsc` pour générer les sources front mais je n’utilise pas les décorateurs pour garder cette couche la plus basique possible. toutes les ressources sont servies localement : polices d’écriture, images, ou librairies tierces.