Application I Ching en architecture microservices:
iching_front(Dash): UX, tirage, affichage du resultatiching_back(FastAPI + DuckDB): generation des lignes et resolution des hexagrammesiching_interpreter(FastAPI + OpenAI): interpretation IA
- Docker ou Podman avec plugin Compose
- reseau Docker externe
edge_netpartage avec le conteneurcloudflared
Creation du reseau (une seule fois):
docker network create edge_netCopiez le fichier d'exemple:
cp .env.example .envPuis renseignez au minimum OPENAI_API_KEY dans .env.
docker compose up --buildOu avec Podman:
podman compose up --build- debug local frontend:
http://localhost:18050(modifiable avecPORT_FRONT) - acces public via Cloudflare Tunnel sur ton sous-domaine
Les services iching_back et iching_interpreter ne sont pas exposes sur l'hote. Ils communiquent uniquement via le reseau interne Compose.
PORT_FRONT(defaut18050): port host pour debug local du frontendOPENAI_API_KEY: cle API OpenAI (obligatoire pour/interpret)OPENAI_MODEL(defautgpt-4o-mini)
iching_frontappelle:http://iching_back:8080http://iching_interpreter:8080
iching_backetiching_interpretersont enexpose: 8080uniquement (interne)iching_frontest attache a:iching_net(interne app)edge_net(partage avec cloudflared)
Route le sous-domaine IChing vers le nom de service Docker:
ingress:
- hostname: iching.example.com
service: http://iching_front:8050
- service: http_status:404Le conteneur cloudflared doit etre connecte au reseau edge_net.
Puis faites un parcours UI complet:
- saisir une question
- lancer le tirage et completer 6 lignes
- verifier l'affichage hexagramme
- cliquer sur interpretation
frontend/front.pybackend/main.pyservices/interpreter/app.pydocker-compose.yml