# Deploiement o2switch - ZiraBet

## Contenu du zip

Ce paquet contient l'application Next.js, les assets publics, le build `.next` sans cache local, Prisma et les migrations.

Il ne contient pas :

- `.env`
- `node_modules`
- `.git`
- caches locaux
- fichiers uploades par les utilisateurs

## Configuration o2switch

1. Dans cPanel, ouvrir `Setup Node.js App`.
2. Creer une application Node.js.
3. Choisir Node.js `22` ou `20`.
4. Mettre `Application mode` sur `production`.
5. Mettre `Application root` sur le dossier ou vous dezippez ce paquet, par exemple `zirabet-app`.
6. Mettre `Application URL` sur le domaine ou sous-domaine voulu.
7. Mettre `Application startup file` sur `server.js`.
8. Ajouter les variables d'environnement de production dans `Add Variable`.

## Variables minimales

Creer une vraie configuration de production. Ne pas copier les valeurs de developpement.

```env
NODE_ENV=production
APP_ENV=production
APP_URL=https://votre-domaine.tld
APP_NAME=ZiraBet
DATABASE_URL=postgresql://USER:PASSWORD@HOST:5432/DB?schema=public
REDIS_URL=redis://HOST:6379
JWT_ACCESS_SECRET=64-caracteres-minimum-aleatoires
JWT_REFRESH_SECRET=64-autres-caracteres-minimum-aleatoires
COOKIE_DOMAIN=votre-domaine.tld
DEFAULT_CURRENCY=EUR
SUPPORTED_CURRENCIES=EUR,USDT
ALLOWED_COUNTRIES=
BLOCKED_COUNTRIES=

ODDS_PROVIDER=votre-provider
ODDS_PROVIDER_BASE_URL=https://api-provider.example
ODDS_PROVIDER_API_KEY=secret
ODDS_PROVIDER_WEBHOOK_SECRET=secret-long

PAYMENT_PROVIDER=votre-provider
PAYMENT_PROVIDER_BASE_URL=https://api-payment.example
PAYMENT_PROVIDER_API_KEY=secret
PAYMENT_WEBHOOK_SECRET=secret-long

CRYPTO_CUSTODY_PROVIDER=votre-custody-provider
CRYPTO_WALLET_MNEMONIC=mnemonic-production-securisee
CRYPTO_ETHEREUM_RPC_URL=https://rpc.example
CRYPTO_BITCOIN_INDEXER_URL=https://indexer.example
CRYPTO_WEBHOOK_SECRET=secret-long

KYC_PROVIDER=votre-provider
KYC_PROVIDER_BASE_URL=https://api-kyc.example
KYC_PROVIDER_API_KEY=secret
KYC_WEBHOOK_SECRET=secret-long
```

## Commandes SSH

Depuis cPanel, copier la commande `source ... && cd ...` fournie par o2switch pour entrer dans l'environnement Node.js, puis :

```bash
npm ci --omit=dev
npm run db:generate
npm run db:deploy
npm run preflight
```

Si le build `.next` n'est pas conserve lors de l'envoi, relancer :

```bash
npm run build
```

Ensuite, cliquer sur `Restart` dans `Setup Node.js App`.

## Workers et taches planifiees

L'application web demarre avec `server.js`. Les synchronisations doivent etre lancees separement via cron o2switch :

```bash
npm run worker:providers
npm run worker:vip-rewards
```

Ces workers ne remplacent pas un vrai systeme de queue supervise. En production casino/sportsbook, preferer un worker supervise ou un serveur dedie si le trafic augmente.
