33800 Docs

← Retour

Tâche : QwikPress - Implémentation Supabase + Redis

Date : 25/12/2025 Status : TERMINÉ


Résumé

Implémentation de l'architecture hybride fichiers/Supabase+Redis pour QwikPress.

Fichiers créés

Structure supabase/ (15 fichiers)

supabase/
├── README.md
├── migrations/
│   ├── 00001_init_schema.sql
│   ├── 00002_create_sites.sql
│   ├── 00003_create_pages.sql
│   ├── 00004_create_modules.sql
│   ├── 00005_create_medias.sql
│   ├── 00006_create_functions.sql
│   └── 00007_create_policies.sql
├── seeds/
│   └── 01_default_site.sql
├── storage/
│   └── buckets.sql
└── scripts/
    ├── setup.sh
    ├── migrate.sh
    ├── seed.sh
    ├── reset.sh
    ├── generate-types.sh
    └── migrate-from-files.ts

Structure src/services/data/ (6 fichiers)

src/services/data/
├── index.ts                    # Export centralisé
├── data-service.interface.ts   # Interface IDataService
├── data-service.factory.ts     # Factory avec switch ENV
├── file-data.service.ts        # Implémentation fichiers
├── supabase-data.service.ts    # Implémentation Supabase
└── redis-cache.service.ts      # Service cache Redis

Autres fichiers

Usage

Mode fichiers (par défaut)

# Aucune config nécessaire, fonctionne comme avant
DATA_MODE=file npm start

Mode Supabase

# 1. Configurer les variables
export SUPABASE_URL=https://...
export SUPABASE_SERVICE_ROLE_KEY=...
export REDIS_HOST=prod-redis.local
export DATABASE_URL=postgresql://...

# 2. Appliquer les migrations
cd supabase && ./scripts/setup.sh --with-seeds

# 3. Lancer en mode Supabase
DATA_MODE=supabase npm start

Migration fichiers → Supabase

bun supabase/scripts/migrate-from-files.ts ./data mon-site-slug

Schéma PostgreSQL

Table Description
qwikpress.sites Sites (multi-sites)
qwikpress.pages Pages avec meta + content JSONB
qwikpress.shared_modules Modules partagés
qwikpress.medias Référence fichiers Storage

Cache Redis

Clé TTL Contenu
qwikpress:site:{slug} 5min Config site
qwikpress:site:{slug}:page:{slug} 1min Page complète
qwikpress:site:{slug}:nav 5min Navigation

Prochaines étapes (optionnelles)