Framework e-commerce pour artisans français — Shopify en mieux et gratuit
Documentation · API Docs · Contribuer
Scaffolde un projet complet — front Astro + orchestration Docker du backend :
npm create echoppe@latest
cd ma-boutique
docker compose up -d # backend : API + Admin + PostgreSQL
pnpm install && pnpm dev # frontPour ne déployer que le backend (API + Admin), un compose.yaml minimal :
services:
db:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_USER: echoppe
POSTGRES_PASSWORD: echoppe
POSTGRES_DB: echoppe
volumes:
- echoppe-data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U echoppe -d echoppe']
interval: 5s
timeout: 5s
retries: 5
api:
image: axiomeapp/echoppe-api:latest
restart: unless-stopped
environment:
DATABASE_URL: postgresql://echoppe:echoppe@db:5432/echoppe
ADMIN_URL: http://localhost:3211
# === À MODIFIER ===
ADMIN_EMAIL: admin@example.com # Votre email
ADMIN_PASSWORD: votre-mot-de-passe # Votre mot de passe
ENCRYPTION_KEY: votre-cle-ici # Générer avec: openssl rand -base64 32
ports:
- '7532:7532'
volumes:
- echoppe-uploads:/app/uploads
depends_on:
db:
condition: service_healthy
admin:
image: axiomeapp/echoppe-admin:latest
restart: unless-stopped
ports:
- '3211:80'
depends_on:
- api
volumes:
echoppe-data:
echoppe-uploads:L'API crée et migre le schéma au démarrage (plus de conteneur d'init séparé).
Renseignez ADMIN_EMAIL, ADMIN_PASSWORD, ENCRYPTION_KEY, puis docker compose up -d.
URLs :
- Admin : http://localhost:3211
- API : http://localhost:7532
- API Docs : http://localhost:7532/docs (OpenAPI/Scalar)
Redis n'est plus requis (rate-limit distribué optionnel via
REDIS_URL).
# 1. Cloner et installer
git clone https://github.com/Axiome-Apps/echoppe.git
cd echoppe
bun install
# 2. Lancer PostgreSQL + Redis
docker compose up -d
# 3. Initialiser la DB
bun run db:push --force
bun run db:seed
# 4. Lancer le dev
bun run devLogin dev : admin@echoppe.dev / admin123
| Commande | Description |
|---|---|
bun run dev |
Lance API + Dashboard + exemple Astro |
bun run db:push |
Push schema vers DB (itération dev) |
bun run db:generate |
Génère une migration SQL après un changement de schema/ |
bun run db:seed |
Seed données de base |
bun run db:studio |
Interface Drizzle Studio |
Migrations : en dev on itère avec
db:push. Quand un changement de schéma est prêt,bun run db:generatecrée la migration SQL versionnée (à committer) — l'imageapil'applique automatiquement au démarrage chez les selfhosters.
echoppe/
├── apps/
│ ├── api/ # Backend Elysia (image Docker, migre au boot)
│ ├── admin/ # Dashboard Vue (image Docker)
│ └── store/ # Exemple de boutique Astro (non distribué en image)
├── packages/
│ ├── core/ # DB + Schema + migrations (drizzle/)
│ ├── shared/ # Types partagés
│ ├── client/ # SDK @echoppe/client (npm)
│ └── create-echoppe/ # CLI de scaffolding (npm)
└── docs/ # Documentation VitePress
- Bun - Runtime JavaScript ultra-rapide
- Elysia - Framework web TypeScript avec OpenAPI
- Drizzle ORM - ORM TypeScript type-safe
- Vue 3 - Framework frontend pour le dashboard
- Astro - Framework pour la boutique (exemple + scaffolding)
- Tailwind CSS - Framework CSS utility-first
- PostgreSQL - Base de données relationnelle
- Bug Reports : GitHub Issues
- Discussions : GitHub Discussions
CeCILL v2.1 - Compatible GNU GPL