# Marketplace Ktalogu - Deploy na VPS

## Objetivo

Subir o novo `apps/marketplace` em um dominio proprio, separado de `ktalogu.com.br`, mas usando a mesma base e o mesmo ecossistema da Ktalogu.

## Portas

- `apps/public` -> `3001`
- `apps/admin` -> `3002`
- `apps/owner` -> `3003`
- `apps/marketplace` -> `3004`

## Variaveis do Marketplace

Crie o arquivo:

- `apps/marketplace/.env.local`

Com base em:

- `apps/marketplace/.env.example`

Preencha no minimo:

```env
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=

NEXT_PUBLIC_MARKETPLACE_BASE_URL=https://seu-marketplace.com.br
MARKETPLACE_HOSTS=seu-marketplace.com.br,www.seu-marketplace.com.br

KATALOGU_PUBLIC_APP_URL=https://ktalogu.com.br
KATALOGU_ADMIN_APP_URL=https://admin.ktalogu.com.br
KATALOGU_OWNER_APP_URL=https://owner.ktalogu.com.br
```

## Primeiro preparo na VPS

Dentro de `/var/www/ktalogu`:

```bash
npm install
npm run build
pm2 startOrReload ecosystem.config.cjs --update-env
pm2 save
pm2 status
```

Valide localmente na VPS:

```bash
curl http://127.0.0.1:3004/api/health
```

## Apache

Use o arquivo:

- `apache-marketplace.conf.example`

Copie para algo como:

- `/etc/apache2/sites-available/marketplace.conf`

Depois habilite:

```bash
sudo a2enmod proxy proxy_http proxy_wstunnel headers rewrite ssl
sudo a2ensite marketplace.conf
sudo systemctl reload apache2
```

## SSL

Depois que o DNS estiver apontando para a VPS:

```bash
sudo certbot --apache -d seu-marketplace.com.br -d www.seu-marketplace.com.br
```

## CI/CD

O workflow de deploy ja foi ajustado para:

- preservar `apps/marketplace/.env.local`
- buildar o novo app pelo script raiz
- validar o healthcheck em `3004/api/health`
- reiniciar o processo `ktalogu-marketplace` no PM2

## Observacoes

- O marketplace foi pensado para usar o mesmo Supabase da Ktalogu.
- O app ja possui rota `/api/stores` para listar lojistas.
- O app ja possui helper para apontar cada loja para o dominio personalizado ou para o catalogo publico da Ktalogu.
