Aller au contenu

Installation

Deux façons de lancer le projet : directement sur votre poste (recommandé pour développer) ou avec Docker Compose (pile complète avec PostgreSQL et Redis).

  • uv : il installe aussi Python 3.13 (version fixée dans .python-version).
  • Node.js 20 ou plus, uniquement pour compiler les styles Tailwind.
  • PostgreSQL est facultatif : sans DATABASE_URL, une base SQLite db.sqlite3 est créée à la racine.
Fenêtre de terminal
git clone https://github.com/Aziguy/reaco_updated.git comegusto && cd comegusto
uv sync # dépendances Python dans .venv
npm install && npm run build
cp .env.example .env # DEBUG=true pour le développement
uv run python manage.py migrate
uv run python manage.py seed_demo
uv run python manage.py setup_assistant
uv run python manage.py setup_billing
uv run python manage.py sync_prices
uv run python manage.py createsuperuser
uv run python manage.py runserver
  • L’application répond sur http://localhost:8000, l’administration sur /admin/ (chemin réglable avec ADMIN_URL) et la documentation de l’API sur /api/docs/.
  • seed_demo charge 102 ingrédients et 50 recettes avec leurs photos. La commande est idempotente.
  • setup_assistant et setup_billing créent les routes de l’assistant et les formules Gratuit, Plus et Famille.
  • sync_prices interroge Open Prices pour chaque ingrédient. Elle prend quelques minutes ; sync_prices tomate oeuf limite la synchronisation à quelques ingrédients.
  • Les emails sont affichés dans la console (EMAIL_URL=consolemail://).
Fenêtre de terminal
npm run dev # recompile static/css/app.css à chaque modification

static/css/app.css est généré et ignoré par git. Pensez à le recompiler après avoir ajouté des classes Tailwind dans un template.

Fenêtre de terminal
uv run pre-commit install # une fois
uv run ruff check . && uv run ruff format --check .
uv run pytest

Voir Tests et qualité.

Fenêtre de terminal
cp .env.example .env
docker compose up -d --build
docker compose exec web python manage.py seed_demo
docker compose exec web python manage.py sync_prices
docker compose exec web python manage.py createsuperuser

docker-compose.yml lance quatre services :

Service Rôle
db PostgreSQL 17 (volume pgdata)
redis Cache partagé
web Gunicorn sur le port 8000, migrations appliquées au démarrage
scheduler Boucle quotidienne : rappels de péremption puis synchronisation des prix

Les médias sont stockés dans le volume media, partagé entre web et scheduler. Pour la production, voir Serveur VPS.