structure complète
This commit is contained in:
commit
e8efff39f9
11
.dockerignore
Normal file
11
.dockerignore
Normal file
@ -0,0 +1,11 @@
|
||||
.git
|
||||
.gitignore
|
||||
.env
|
||||
.env.example
|
||||
__pycache__/
|
||||
*.pyc
|
||||
.venv/
|
||||
venv/
|
||||
.idea/
|
||||
data/
|
||||
sav_knowledge/
|
||||
30
.env.example
Normal file
30
.env.example
Normal file
@ -0,0 +1,30 @@
|
||||
# Bot Telegram terrain ETM — variables d'environnement.
|
||||
# Copier en .env (jamais commite) et renseigner les valeurs.
|
||||
|
||||
# --- Telegram ---
|
||||
TELEGRAM_BOT_TOKEN=
|
||||
# IDs des groupes Telegram (negatifs pour les groupes)
|
||||
GROUPE_CHANTIER=
|
||||
GROUPE_MAGASINIER=
|
||||
# Groupe SAV : a creer sur Telegram, puis renseigner l'ID
|
||||
GROUPE_SAV=0
|
||||
PATRICK_ID=
|
||||
|
||||
# --- Nextcloud ---
|
||||
NEXTCLOUD_URL=https://cloud.etm-schurig.eu/remote.php/webdav
|
||||
NEXTCLOUD_USER=
|
||||
# Mot de passe Nextcloud ou, de preference, un mot de passe d'application
|
||||
NEXTCLOUD_PASSWORD=
|
||||
NEXTCLOUD_DECK_URL=https://cloud.etm-schurig.eu/index.php/apps/deck/api/v1
|
||||
# Nextcloud Deck — recuperer les IDs via l'API ou l'interface Deck
|
||||
DECK_BOARD_ID=0
|
||||
DECK_COL_FIN=0
|
||||
DECK_COL_SAV=0
|
||||
DECK_COL_MATERIEL=0
|
||||
|
||||
# --- Ollama (LLM) ---
|
||||
OLLAMA_ENABLED=true
|
||||
# ATTENTION : en conteneur, 'localhost' ne pointe PAS vers la VM.
|
||||
# Renseigner l'adresse reelle d'Ollama (autre conteneur, hote, ou machine distante).
|
||||
OLLAMA_URL=
|
||||
OLLAMA_MODEL=phi3
|
||||
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
.env
|
||||
data/
|
||||
sav_knowledge/
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
.venv/
|
||||
venv/
|
||||
.idea/
|
||||
18
Dockerfile
Normal file
18
Dockerfile
Normal file
@ -0,0 +1,18 @@
|
||||
# Bot Telegram terrain ETM — conteneur.
|
||||
FROM python:3.12-slim
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Si une dependance native echoue a s'installer (ex. chromadb / hnswlib),
|
||||
# decommenter la ligne suivante :
|
||||
# RUN apt-get update && apt-get install -y --no-install-recommends build-essential \
|
||||
# && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Code de l'application.
|
||||
# data/ et sav_knowledge/ sont exclus (.dockerignore) : ce sont des volumes.
|
||||
COPY . .
|
||||
|
||||
CMD ["python", "main.py"]
|
||||
44
README.md
Normal file
44
README.md
Normal file
@ -0,0 +1,44 @@
|
||||
# etm-terrain
|
||||
|
||||
Bot Telegram terrain d'ETM-Schurig, conteneurisé : rapports des
|
||||
techniciens, FAQ, SAV. Migré depuis le poste de développement.
|
||||
|
||||
C'est l'**unique** processus qui écoute Telegram (un seul `getUpdates`
|
||||
par token). Les autres composants de la VM (le scheduler) ne font
|
||||
qu'**envoyer** des notifications.
|
||||
|
||||
## Contenu du dépôt
|
||||
|
||||
Le code de l'application — `main.py`, `config.py`, `handlers/`,
|
||||
`services/`, `models/`, `scripts/`, `utils/` — vit ici, à la racine.
|
||||
|
||||
Ce squelette fournit l'emballage Docker autour :
|
||||
|
||||
- `Dockerfile` — construction de l'image
|
||||
- `.dockerignore` — ce qui n'entre pas dans l'image
|
||||
- `.env.example` — gabarit des variables d'environnement
|
||||
- `.gitignore`
|
||||
|
||||
## Données (volumes)
|
||||
|
||||
Deux dossiers sont des volumes montés — **jamais** dans l'image, **jamais**
|
||||
dans Git :
|
||||
|
||||
- `data/` — index ChromaDB, base tickets, PDF source
|
||||
- `sav_knowledge/` — index SAV
|
||||
|
||||
Les PDF source (documentation Victron) se placent dans
|
||||
`data/docs/Doc_8_Victron/` sur la VM. L'index ChromaDB se **reconstruit**
|
||||
à partir d'eux (script de réindexation) — il n'a pas à être migré.
|
||||
|
||||
## Lancement
|
||||
|
||||
Ce dépôt n'a pas de `docker-compose` propre : le bot est démarré par le
|
||||
compose chapeau du dépôt `etm-infra`. Voir `etm-infra/README.md`.
|
||||
|
||||
## À savoir
|
||||
|
||||
- **Ollama** : en conteneur, `localhost` ne pointe pas vers la VM.
|
||||
Renseigner `OLLAMA_URL` avec l'adresse réelle d'Ollama dans le `.env`.
|
||||
- Le `.env` est injecté par le compose chapeau (`env_file`) ; les
|
||||
variables sont donc disponibles même sans fichier `.env` dans l'image.
|
||||
Loading…
x
Reference in New Issue
Block a user