Files
wiki/Catalogue-Self-Hosted/apps/app-medusa.md
T
2026-06-09 18:40:21 +02:00

110 lines
4.0 KiB
Markdown

---
title: Medusa
created: 2026-06-08
updated: 2026-06-08
type: app
tags: [catalogue, app, e-commerce, auto-hebergement]
confidence: medium
contested: false
sources:
- https://selfh.st/apps/?search=medusa
- https://github.com/medusajs/medusa
---
# 🛍️ Medusa
> **Plateforme e-commerce headless modulaire en TypeScript/Node.js : catalogue, panier, paiements, expéditions et multi-boutiques découplés du front.**
## 📊 Métadonnées
| Champ | Valeur |
| :--- | :--- |
| **Nom** | Medusa |
| **Slug** | `medusa` |
| **Catégorie principale** | [[cat-e-commerce]] |
| **Langage** | TypeScript (37) |
| **Stars** | ⭐ 34197 |
| **Dernière MAJ** | 2026-06-05 |
| **Repo** | [github.com/medusajs/medusa](https://github.com/medusajs/medusa) |
| **Site** | [medusajs.com](https://medusajs.com) |
## 📝 Description
Medusa est une **plateforme e-commerce open source headless** écrite en TypeScript, conçue comme une alternative moderne à Shopify ou Magento. Le cœur fournit les primitives classiques d'un back-office de vente (produits, collections, panier, commandes, clients, régions, multi-devises), et toutes les fonctionnalités business (paiement, expédition, recherche, notifications) sont implémentées sous forme de **modules/plugins** enfichables.
L'architecture API-first expose une **REST + API JavaScript** consommable depuis n'importe quel front (Next.js, Remix, Gatsby, application mobile, store-front headless). Une admin web (Medusa Admin) et un starter storefront Next.js sont fournis. La stack est basée sur Node.js, PostgreSQL et Redis, et supporte nativement les **multi-stores**, **multi-régions** et **multi-devises**, ce qui la rend très adaptée aux projets e-commerce à dimension internationale.
## 🐳 Installation Docker
```yaml
services:
medusa:
image: ghcr.io/medusajs/medusa:latest
container_name: medusa
restart: unless-stopped
ports:
- "9000:9000"
volumes:
- ./data:/data
environment:
- PUID=1000
- PGID=1000
- DATABASE_URL=postgres://medusa:medusa@db:5432/medusa
- REDIS_URL=redis://redis:6379
- JWT_SECRET=changeme
- COOKIE_SECRET=changeme
- NODE_ENV=production
```
> ⚠️ Adapte image/port/volumes selon le README officiel : https://github.com/medusajs/medusa
## 🔀 Reverse Proxy (Traefik)
```yaml
services:
medusa:
image: ghcr.io/medusajs/medusa:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.medusa.rule=Host(`api.example.com`)"
- "traefik.http.routers.medusa.entrypoints=websecure"
- "traefik.http.routers.medusa.tls.certresolver=letsencrypt"
- "traefik.http.services.medusa.loadbalancer.server.port=9000"
```
## 🔧 Configuration
- Configurer `DATABASE_URL` (PostgreSQL ≥ 14) et `REDIS_URL` (cache + pub/sub)
- Définir `JWT_SECRET` et `COOKIE_SECRET` avec des valeurs aléatoires robustes
- Ajouter des modules additionnels via `medusa-config.js` : Stripe, PayPal, Resend (mail), Algolia/Meilisearch, Webhooks, etc.
## 🔀 Alternatives
**Open source** :
- Saleor (Python/Django, GraphQL, plus mature en e-commerce B2B)
- Vendure (Node.js/TypeScript, GraphQL-first, headless)
- WooCommerce (WordPress, PHP, écosystème massif de plugins)
- Sylius (Symfony, PHP, orienté DDD)
**Propriétaires** :
- Shopify (SaaS leader, propriétaire)
- BigCommerce (SaaS enterprise, API-first)
- Adobe Commerce (Magento Commerce, on-prem PHP)
## 🔒 Sécurité
- JWT côté API admin : choisir un `JWT_SECRET` long et rotaté régulièrement
- Toujours exposer Medusa derrière HTTPS (Traefik/Caddy) avec rate-limiting et WAF (BunkerWeb, CrowdSec)
- Activer les **webhooks signés** (HMAC) pour les intégrations tierces (paiements, transporteurs)
## 📚 Ressources
- [selfh.st/apps/?search=medusa](https://selfh.st/apps/?search=medusa)
- [GitHub](https://github.com/medusajs/medusa)
- [Site officiel](https://medusajs.com)
## 🔗 Pages Liées
- [[cat-e-commerce]] — Catégorie e-commerce
- [[Catalogue-Self-Hosted]] — Hub principal