Le docker-compose.yml tire désormais git.opytex.org/lafrite/plesna-gerance:latest et persiste les données dans un volume nommé (plesna-data) plutôt qu'un bind-mount. make docker fait pull+up ; make docker-build reste disponible pour tester l'image en local.
121 lines
3.7 KiB
Markdown
121 lines
3.7 KiB
Markdown
# Plesna Gerance
|
|
|
|
Extracteur de comptes rendus de gerance Oralia/ICS.
|
|
|
|
## Prerequis
|
|
|
|
- Python >= 3.10
|
|
- [uv](https://docs.astral.sh/uv/)
|
|
- Node.js >= 22
|
|
|
|
> L'extraction de PDF utilise `pdfplumber` (Python pur) : aucun binaire
|
|
> systeme requis (plus besoin de `poppler-utils`/`pdftotext`).
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
uv sync
|
|
cd frontend && npm install
|
|
```
|
|
|
|
## Developpement
|
|
|
|
Lancer backend et frontend dans deux terminaux separés :
|
|
|
|
```bash
|
|
make dev_back # Backend sur http://localhost:8000 (auto-reload)
|
|
make dev_front # Frontend sur http://localhost:5173 (hot-reload)
|
|
```
|
|
|
|
Ou les deux en parallele :
|
|
|
|
```bash
|
|
make dev
|
|
```
|
|
|
|
Ouvrir **http://localhost:5173** — le proxy Vite redirige `/api` vers le backend.
|
|
|
|
## Production (Docker)
|
|
|
|
Un **conteneur unique** : l'image embarque le frontend Vue builde, servi par
|
|
le backend FastAPI (API + interface web sur le meme port). Pas de nginx.
|
|
|
|
L'image est **publiee par la CI Gitea** (`.gitea/workflows/docker-publish.yml`)
|
|
sur `git.opytex.org/lafrite/plesna-gerance`. Le `docker-compose.yml` la **tire**
|
|
directement (pas de build local) :
|
|
|
|
```bash
|
|
make docker # podman-compose pull && podman-compose up -d
|
|
# ou : docker compose pull && docker compose up -d
|
|
```
|
|
|
|
Accessible sur **http://localhost:8080**.
|
|
|
|
Les donnees (base SQLite + documents) sont declarees via `PLESNA_DATA_DIR`
|
|
(voir `docker-compose.yml`) et persistees dans un volume nomme dedie
|
|
(`plesna-data`), donc conservees entre les redemarrages et recreations du
|
|
conteneur.
|
|
|
|
> Build local de l'image (test avant publication) : `make docker-build`
|
|
> (`podman build -f backend.Dockerfile -t plesna-gerance:local .`).
|
|
|
|
## Application de bureau (Windows, sans ligne de commande)
|
|
|
|
L'application peut etre empaquetee en **executable Windows autonome** : un seul
|
|
fichier que l'utilisateur final installe et lance via une icone, sans Python,
|
|
sans Node, sans terminal. L'extraction etant en Python pur, aucun binaire
|
|
externe n'est requis.
|
|
|
|
### Tester le mode bureau (depuis les sources)
|
|
|
|
Sous **Windows** (pywebview utilise WebView2, deja present) :
|
|
|
|
```bash
|
|
uv sync --group desktop
|
|
cd frontend && npm run build && cd ..
|
|
uv run plesna-gerance desktop # ouvre une fenetre native
|
|
```
|
|
|
|
Sous **Linux**, pywebview a besoin d'un moteur de rendu. Le groupe
|
|
`desktop-linux` fournit un backend Qt entierement pip-installable :
|
|
|
|
```bash
|
|
uv sync --group desktop-linux
|
|
cd frontend && npm run build && cd ..
|
|
uv run plesna-gerance desktop # necessite un environnement graphique ($DISPLAY)
|
|
```
|
|
|
|
> Ce backend Qt ne sert qu'a **tester** le mode fenetre sous Linux : il n'est
|
|
> pas embarque dans le build Windows.
|
|
|
|
### Produire l'executable + l'installeur
|
|
|
|
Deux options (le build doit se faire **sur Windows**, PyInstaller ne croise pas
|
|
les plateformes) :
|
|
|
|
1. **Sur une machine Windows** — installer uv, Node.js et (optionnel) Inno
|
|
Setup 6, puis :
|
|
|
|
```powershell
|
|
powershell -ExecutionPolicy Bypass -File packaging\build_windows.ps1
|
|
```
|
|
|
|
Produit `dist\PlesnaGerance.exe` et, si Inno Setup est present,
|
|
`dist\PlesnaGerance-Setup.exe`.
|
|
|
|
2. **Sans machine Windows** — via GitHub Actions : le workflow
|
|
`.github/workflows/build-windows.yml` compile sur un runner Windows.
|
|
Le declencher (onglet *Actions* ou en poussant un tag `v*`) puis telecharger
|
|
l'artefact `PlesnaGerance-windows`.
|
|
|
|
### Cote utilisateur final
|
|
|
|
Lancer `PlesnaGerance-Setup.exe`, suivre l'assistant (installation par
|
|
utilisateur, sans droits administrateur), puis cliquer sur l'icone **Plesna
|
|
Gerance**. Les donnees (base et documents) sont stockees dans
|
|
`%APPDATA%\PlesnaGerance` et conservees entre les mises a jour.
|
|
|
|
> **Assistant IA (optionnel)** : la page IA necessite [Ollama](https://ollama.com)
|
|
> installe separement. Sans Ollama, l'application fonctionne normalement et la
|
|
> page IA indique simplement que le service est indisponible.
|