🇫🇷 CountryGuesser est un jeu dans lequel vous devez retrouver le pays sur le globe en fonction d'un drapeau affiché aléatoirement. Vous disposez de 3 indices utilisables. Le jeu se joue tout seul ou à plusieurs.
🇬🇧 CountryGuesser is a game in which you have to find the country on the globe according to a randomly displayed flag. You have 3 usable clues. The game can be played alone or with others.
Frontend :
- React TypeScript
- Mapbox
- Material UI
Backend :
- PHP
- Workerman for WebSocket
- RESTCountries : Get country data
- Mapbox GeoCode API : Get country according to given coordinates
Ce repo est prêt pour une exécution en production avec:
- Frontend immuable: build React au
docker build(multi-stage) puis servi par Nginx - Reverse-proxy interne: le navigateur appelle
/api/*et/ws(Nginx proxy vers les containersapietwebsocket) - Ports exposés: par défaut, seul le frontend est publié sur l’hôte (
3000 -> 80)
cp .env.example .env
docker compose up -d --buildEnsuite ouvre http://localhost:3000.
- Mets un préfixe et un tag dans
.env:
IMAGE_PREFIX=ghcr.io/<user_or_org>/countryguesser(oudocker.io/<user>)IMAGE_TAG=1.0.0
- Login au registry:
docker login ghcr.io- Build + push:
docker compose build
docker compose pushSur le serveur (avec le même docker-compose.yml + un .env qui pointe vers les images):
docker login ghcr.io
docker compose pull
docker compose up -dSi tu développes sur un Mac ARM (Apple Silicon) mais que tu veux déployer sur une machine Intel, il faut pousser des images linux/amd64 (idéalement en multi-arch amd64+arm64).
Le repo fournit un docker-bake.hcl pour faire ça proprement avec Buildx.
export IMAGE_PREFIX=7doritos
export IMAGE_TAG=1.0.0
export DOCKER_PLATFORMS=linux/amd64
docker buildx create --use --name countryguesser || true
docker buildx bake --pushexport IMAGE_PREFIX=7doritos
export IMAGE_TAG=1.0.0
export DOCKER_PLATFORMS=linux/amd64,linux/arm64
docker buildx create --use --name countryguesser || true
docker buildx bake --push- Jordan BAUMARD
- Pierre LEOCADIE
- Charles HURST


