JB Compta v1.1 - multi-activité
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# Déploiement (Portainer) & maintenance
|
||||
|
||||
## Principe
|
||||
|
||||
- Le conteneur ne contient que **l'application** (Gunicorn). Il est **sans état**.
|
||||
- La **base PostgreSQL est externe** (la tienne). Aucune donnée n'est stockée dans le conteneur.
|
||||
- Au démarrage, l'`entrypoint` applique les migrations, crée le compte admin (si variables
|
||||
fournies), charge éventuellement les données d'exemple, puis lance Gunicorn.
|
||||
|
||||
## Préparer PostgreSQL
|
||||
|
||||
Sur ton serveur PostgreSQL existant :
|
||||
|
||||
```sql
|
||||
CREATE DATABASE compta;
|
||||
CREATE USER jb WITH PASSWORD 'ton_mot_de_passe';
|
||||
GRANT ALL PRIVILEGES ON DATABASE compta TO jb;
|
||||
-- PostgreSQL 15+ : donner aussi les droits sur le schéma public
|
||||
\c compta
|
||||
GRANT ALL ON SCHEMA public TO jb;
|
||||
```
|
||||
|
||||
Vérifie que le serveur accepte les connexions depuis l'hôte Docker
|
||||
(`listen_addresses` dans `postgresql.conf` et une ligne dans `pg_hba.conf`).
|
||||
|
||||
## Important : le contexte de build
|
||||
|
||||
`COPY . .` dans le Dockerfile copie le **contexte de build** (les fichiers fournis à Docker).
|
||||
L'**éditeur web** de Portainer ne fournit **que le docker-compose** comme contexte : tes dossiers
|
||||
`config/` et `compta/` sont absents, et le build échoue avec `No module named 'config'`.
|
||||
Il faut donc fournir le projet complet par l'une des deux méthodes ci-dessous.
|
||||
|
||||
### Option A — dépôt Git (recommandé)
|
||||
|
||||
1. Pousse le dossier du projet dans un dépôt Git (GitHub privé, ou Gitea auto-hébergé).
|
||||
2. Portainer → **Stacks → Add stack → Repository**.
|
||||
3. Renseigne l'URL du dépôt, la branche, et `docker-compose.yml` comme *Compose path*.
|
||||
4. **Environment variables** : ajoute les valeurs (cf. `.env.example`).
|
||||
5. **Deploy the stack**. Portainer clone le dépôt → contexte complet → `build: .` fonctionne.
|
||||
|
||||
Mise à jour : `git push`, puis dans Portainer **Pull and redeploy**.
|
||||
|
||||
### Option B — image pré-construite sur l'hôte (sans Git)
|
||||
|
||||
1. Copie le projet sur l'hôte Docker (WinSCP/scp), ex. `/opt/jb-compta`.
|
||||
2. En SSH : `cd /opt/jb-compta && docker build -t jb-compta:latest .`
|
||||
3. Dans `docker-compose.yml`, commente `build: .` et décommente `image: jb-compta:latest`.
|
||||
4. Portainer → **Stacks → Add stack → Web editor**, colle le compose, renseigne les variables, déploie.
|
||||
|
||||
Mise à jour : re-copier les fichiers, `docker build` à nouveau, puis redéployer la stack.
|
||||
|
||||
### Premier démarrage
|
||||
|
||||
Mets `SEED_DEMO=1` pour charger les barèmes 2026 et un jeu d'exemple,
|
||||
puis repasse à `0` et redéploie.
|
||||
|
||||
## Accès
|
||||
|
||||
- Admin / saisie : `http://IP:8001/admin/`
|
||||
- Tableau de bord : `http://IP:8001/dashboard/`
|
||||
|
||||
Change le port `8001` dans le compose si besoin.
|
||||
|
||||
## Mettre à jour l'application
|
||||
|
||||
1. Mets à jour le code (Git pull ou nouvelle image).
|
||||
2. Dans Portainer : **Stacks → jb-compta → Update / Re-pull and redeploy**.
|
||||
3. Les migrations éventuelles s'appliquent automatiquement au redémarrage.
|
||||
|
||||
## Sauvegarde
|
||||
|
||||
Sauvegarde **uniquement la base PostgreSQL** (le conteneur n'a rien à sauvegarder) :
|
||||
|
||||
```bash
|
||||
pg_dump -h IP_DB -U jb compta > sauvegarde_compta_$(date +%F).sql
|
||||
```
|
||||
|
||||
## Sécurité
|
||||
|
||||
- Génère un vrai `DJANGO_SECRET_KEY` (longue chaîne aléatoire).
|
||||
- `DJANGO_DEBUG=0` en production.
|
||||
- Renseigne `DJANGO_ALLOWED_HOSTS` et `DJANGO_CSRF_TRUSTED_ORIGINS` avec ton IP/domaine.
|
||||
- Place l'app derrière un reverse proxy HTTPS (Nginx Proxy Manager, Traefik…) si tu l'exposes.
|
||||
Reference in New Issue
Block a user