# ImagineCell (Node): como subir na Hostmídia

É o mesmo formato do Painel CamposSat: **Node + Express + SQLite**, subido pelo **gerenciador de arquivos** e reiniciado no **Setup Node.js App**.

## O que tem aqui
| Arquivo / pasta | O que é |
|---|---|
| `app.js` | O servidor (arquivo de inicialização) |
| `db.js` | O banco SQLite. Cria o arquivo `data/loja.db` sozinho na primeira vez |
| `.env.exemplo` | Modelo de configuração. Vira `.env` |
| `public/` | O site (index.html, style.css, imagens) |
| `public/painel/` | A Área do lojista |
| `public/uploads/` | Onde ficam as fotos enviadas pelo painel |
| `data/` | Onde fica o banco (protegido, ninguém acessa pelo navegador) |

---

## PARTE 1: Criar a vitrine escondida (subdomínio da CamposSat)

### 1) Criar o subdomínio
1. cPanel, menu **Domínios** (ou **Subdomínios**), botão **Criar um novo domínio**.
2. Use um nome que ninguém adivinha, por exemplo `vitrine-k7q.campossat.com.br`.
   - Evite nomes óbvios como "demo" ou "site".
3. Pode deixar a pasta raiz que o cPanel sugerir e clicar em **Enviar**.

### 2) Ativar o cadeado (HTTPS)
1. cPanel, menu **SSL/TLS Status**.
2. Marque o subdomínio novo e clique em **Run AutoSSL**.
3. Pode levar alguns minutos.

### 3) Criar o app Node
1. cPanel, menu **Setup Node.js App**, botão **Create Application**.
2. Preencha:
   - **Node.js version:** **20** ou **22**. Precisa ser 20 ou maior.
   - **Application mode:** Production.
   - **Application root:** `vitrine-imaginecell`.
     ⚠️ Essa pasta **não** pode ficar dentro de `public_html`. Ela fica fora, na pasta principal da sua conta, igual a do painel da CamposSat.
   - **Application URL:** escolha o subdomínio que você criou.
   - **Application startup file:** `app.js`
3. Clique em **Create**.

### 4) Subir os arquivos
1. **Gerenciador de arquivos**, abra a pasta `vitrine-imaginecell`.
2. Se o cPanel tiver criado algum `app.js` de exemplo lá dentro, apague.
3. Clique em **Carregar** e envie o `imaginecell-node.zip`.
4. Clique com o botão direito no zip e escolha **Extract**.
   - Se ele extrair dentro de uma subpasta `imaginecell-node`, mova tudo pra fora dela, pra ficar direto em `vitrine-imaginecell`.
5. Ative **"Mostrar arquivos ocultos"** (em Configurações, no canto superior direito) pra enxergar o `.env.exemplo`.

### 5) Configurar o `.env`
1. Copie o `.env.exemplo` e renomeie a cópia pra `.env`.
2. Edite o `.env`:
   - `ADMIN_EMAIL` e `ADMIN_SENHA`: o login do painel. A senha precisa ter 8 ou mais caracteres.
   - `SESSAO_SEGREDO`: uma frase longa e aleatória, com 32 ou mais caracteres. Pode bater no teclado.
   - `WHATSAPP`: só números, com 55 e o DDD.
   - `ESCONDER_DO_GOOGLE=sim`: esconde a vitrine do Google.

### 6) Instalar e ligar
1. Volte em **Setup Node.js App** e clique no app.
2. Clique em **Run NPM Install**. Espera terminar, leva 1 a 2 minutos.
3. Clique em **Restart**.
4. Abra `https://vitrine-k7q.campossat.com.br`. O site tem que aparecer com os produtos.
5. Abra `https://vitrine-k7q.campossat.com.br/painel` e entre com o e-mail e a senha do `.env`.
6. **Troque a senha** pelo menu **⋯**, opção **Trocar senha**.

> "Escondido" quer dizer: não aparece no Google e ninguém chega lá sem o link. Mas não é um cofre. Não coloque nada confidencial na vitrine.

---

## PARTE 2: Passar para um cliente (quando fechar)

Na conta Hostmídia **do cliente**, faça os mesmos passos da Parte 1, com estas diferenças:

1. **Domínio:** use o domínio dele (ex.: `copoceu.com.br`), registrado no CPF ou CNPJ dele.
2. **Arquivos:** suba **o zip original**, limpo. Não copie a pasta `data` nem a pasta `uploads` da vitrine, senão vão junto os produtos de teste.
3. **`.env` próprio:**
   - e-mail de acesso dele;
   - **um `SESSAO_SEGREDO` diferente** (cada site tem o seu);
   - WhatsApp dele;
   - `ESCONDER_DO_GOOGLE=nao`, pra o site aparecer no Google.
4. **Ajustes da marca:** logo, nome e textos ficam no `public/index.html`. Me peça que eu te devolvo os arquivos já trocados.
5. **Primeiro acesso:** entregue o link `/painel` e a senha provisória. Ele troca a senha no primeiro acesso.

---

## Backup (faça pelo menos uma vez por semana)
Baixe pelo gerenciador de arquivos:
- `data/loja.db`: todos os produtos;
- a pasta `public/uploads/`: todas as fotos.

Com esses dois, você restaura o site inteiro.

## Atualizar o site depois
1. **Antes de trocar qualquer arquivo, baixe uma cópia do arquivo antigo.**
2. Substitua os arquivos que eu te mandar. **Nunca** substitua a pasta `data/`, a `public/uploads/` nem o `.env`.
3. Em **Setup Node.js App**, clique em **Restart**.

## Se der problema
- **Site não abre depois do Restart:** confira se a versão do Node é 20 ou maior e rode **Run NPM Install** de novo.
- **Não consigo entrar no painel:** confira o `ADMIN_EMAIL` e o `ADMIN_SENHA` no `.env`. Eles só valem na primeira vez, quando ainda não existe usuário. Se precisar zerar o acesso, me chame.
- **"Muitas tentativas":** errou a senha 5 vezes. Espere 15 minutos.
