1 Installation
tarzzan edited this page 2026-05-20 02:11:15 +00:00

🚀 Installation

Guide de démarrage rapide pour installer et lancer RetroToon Studio en local.


Prérequis

Outil Version minimum Vérification
Node.js 22.x node --version
pnpm 9.x pnpm --version
MySQL 8.0+ (ou TiDB) mysql --version
Git 2.x git --version

Installation Rapide

1. Cloner le dépôt

git clone https://git.cosmolan.fr/tarzzan/retrotoon-studio.git
cd retrotoon-studio

2. Installer les dépendances

pnpm install

3. Configurer l'environnement

Créez un fichier .env à la racine :

# Base de données
DATABASE_URL=mysql://user:password@localhost:3306/retrotoon_studio

# Authentification
JWT_SECRET=votre-secret-jwt-256-bits
VITE_APP_ID=votre-app-id-manus
OAUTH_SERVER_URL=https://api.manus.im
VITE_OAUTH_PORTAL_URL=https://manus.im/app-auth

# IA (optionnel)
GEMINI_API_KEY=votre-cle-gemini

# Stockage (fourni par Manus)
BUILT_IN_FORGE_API_URL=https://forge.manus.im
BUILT_IN_FORGE_API_KEY=votre-cle-forge
VITE_FRONTEND_FORGE_API_KEY=votre-cle-frontend
VITE_FRONTEND_FORGE_API_URL=https://forge.manus.im

4. Initialiser la base de données

# Générer les migrations
pnpm drizzle-kit generate

# Appliquer les migrations (via votre client MySQL)
mysql -u user -p retrotoon_studio < drizzle/migrations/0001_initial.sql

5. Lancer le serveur de développement

pnpm dev

Le serveur démarre sur http://localhost:3000.


Structure des Commandes

Commande Description
pnpm dev Lance le serveur de développement (hot reload)
pnpm build Build de production (client + serveur)
pnpm test Exécute les tests unitaires (Vitest)
pnpm drizzle-kit generate Génère les migrations SQL
pnpm drizzle-kit studio Interface visuelle pour la DB

Configuration Avancée

Base de données

RetroToon Studio supporte :

SGBD Support Notes
MySQL 8+ Recommandé pour la production
TiDB Compatible MySQL, distribué
MariaDB ⚠️ Non testé officiellement
PostgreSQL Non supporté (Drizzle MySQL)

Services IA (Optionnel)

Pour une utilisation complète du pipeline IA, configurez les services externes :

# FFmpeg Service (extraction HD, export)
FFMPEG_SERVICE_URL=http://localhost:8080

# SAM 2 Service (segmentation)
SAM2_SERVICE_URL=http://localhost:8081

# ControlNet Service (style transfer)
CONTROLNET_SERVICE_URL=http://localhost:8082

💡 Sans ces services, RetroToon Studio fonctionne en mode simulé (données factices pour le développement).

GPU Requirements (Services IA)

Service GPU minimum VRAM Notes
SAM 2 NVIDIA RTX 3060 8 GB ViT-H encoder
Stable Diffusion XL NVIDIA RTX 3080 10 GB Inpainting
ControlNet NVIDIA RTX 3080 10 GB Conditionnement

Déploiement

Via Manus (Recommandé)

RetroToon Studio est déployé automatiquement via la plateforme Manus :

  1. Créez un checkpoint dans l'interface Manus
  2. Cliquez sur Publish dans le panneau de gestion
  3. Le déploiement est automatique (Cloud Run, SSL, CDN)

Via Docker (Self-hosted)

FROM node:22-alpine

WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile

COPY . .
RUN pnpm build

ENV NODE_ENV=production
EXPOSE 3000
CMD ["node", "dist/server/index.js"]
docker build -t retrotoon-studio .
docker run -p 3000:3000 --env-file .env retrotoon-studio

Via Docker Compose (avec MySQL)

version: '3.8'

services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: mysql://retrotoon:password@db:3306/retrotoon_studio
      JWT_SECRET: ${JWT_SECRET}
    depends_on:
      - db

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: retrotoon_studio
      MYSQL_USER: retrotoon
      MYSQL_PASSWORD: password
    volumes:
      - mysql_data:/var/lib/mysql
    ports:
      - "3306:3306"

volumes:
  mysql_data:

Dépannage

Problèmes Courants

Problème Cause Solution
ECONNREFUSED :3306 MySQL non démarré sudo systemctl start mysql
JWT_SECRET undefined .env non chargé Vérifier le fichier .env
OAuth callback error Mauvais APP_ID Vérifier VITE_APP_ID
Upload 502 Timeout S3 Réessayer, vérifier connexion
Frames vides Extraction interrompue Relancer l'import
tRPC undefined Procédure retourne undefined Vérifier db.ts (null vs undefined)

Logs

# Logs serveur
tail -f .manus-logs/devserver.log

# Logs console navigateur
tail -f .manus-logs/browserConsole.log

# Requêtes réseau
tail -f .manus-logs/networkRequests.log

Tests

# Tous les tests
pnpm test

# Un test spécifique
pnpm test -- --filter "gemini"

# Avec couverture
pnpm test -- --coverage

📞 Support

Canal Lien
Issues git.cosmolan.fr/tarzzan/retrotoon-studio/issues
Wiki git.cosmolan.fr/tarzzan/retrotoon-studio/wiki
Email william.meri@gmail.com