Skip to content

Axiome-Apps/echoppe

Repository files navigation

Échoppe

TypeScript Bun Elysia Vue Astro Drizzle PostgreSQL Tailwind CSS Docker Caddy GitHub Actions

Framework e-commerce pour artisans français — Shopify en mieux et gratuit

Documentation · API Docs · Contribuer

Démarrage rapide

Le plus simple : create-echoppe

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  # front

Backend seul (Docker)

Pour 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 :

Redis n'est plus requis (rate-limit distribué optionnel via REDIS_URL).


Développement

Prérequis

Installation

# 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 dev

Login dev : admin@echoppe.dev / admin123

Scripts

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:generate crée la migration SQL versionnée (à committer) — l'image api l'applique automatiquement au démarrage chez les selfhosters.

Structure

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

Built With

  • 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

Support

License

CeCILL v2.1 - Compatible GNU GPL

About

Framework e-commerce pour artisans français — Shopify en mieux et gratuit

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors