# Como Publicar no Google Cloud

Existem dois caminhos. Recomendo o **Caminho A** para o seu caso (2 a 5 usuários,
sistema pequeno) — é mais parecido com o que você já conhece do XAMPP.

---

## Caminho A — Compute Engine (RECOMENDADO)

É uma VM (servidor virtual) onde você instala Apache + PHP + MySQL, igual ao
XAMPP, mas na nuvem do Google. Custo aproximado: US$ 6–10/mês (instância e2-small).

### Passo a passo
1. Acesse https://console.cloud.google.com e crie um projeto (ex: `igreja-sistema`)
2. Ative o faturamento (precisa de cartão de crédito; novos usuários recebem
   US$ 300 em créditos gratuitos)
3. Vá em **Compute Engine > Instâncias de VM > Criar Instância**
   - Tipo de máquina: `e2-small`
   - Imagem do sistema operacional: Ubuntu 22.04 LTS
   - Marque "Permitir tráfego HTTP/HTTPS"
4. Conecte via SSH (botão "SSH" aparece direto no navegador, ao lado da VM)
5. Execute estes comandos para instalar o ambiente (LAMP):
   ```bash
   sudo apt update
   sudo apt install -y apache2 php php-mysql mysql-server libapache2-mod-php
   sudo systemctl start apache2
   sudo systemctl start mysql
   ```
6. Configure o MySQL e importe o `database.sql`:
   ```bash
   sudo mysql_secure_installation
   sudo mysql -u root -p < database.sql
   ```
7. Envie os arquivos do sistema para `/var/www/html/` (pode usar o botão
   "Fazer upload de arquivo" do próprio SSH do navegador, ou `scp`)
8. Acesse o **IP externo da VM** (aparece na lista de instâncias) no navegador:
   `http://SEU_IP_EXTERNO/usuarios/login.php`
9. (Opcional, recomendado) Configure um domínio próprio e SSL gratuito com
   Certbot:
   ```bash
   sudo apt install certbot python3-certbot-apache
   sudo certbot --apache
   ```

O arquivo `config/conexao.php` já está pronto: como não existem as variáveis
de ambiente do App Engine, ele usa automaticamente `localhost` / `root`,
exatamente como no XAMPP.

---

## Caminho B — App Engine + Cloud SQL (mais avançado)

Ambiente "serverless": você não administra o servidor, o Google escala
automaticamente. Mais técnico — precisa do `gcloud CLI` instalado no seu
computador.

### Passo a passo
1. Instale o **Google Cloud CLI**: https://cloud.google.com/sdk/docs/install
2. Faça login: `gcloud init`
3. Crie a instância do Cloud SQL para MySQL:
   ```bash
   gcloud sql instances create igreja-sql \
       --database-version=MYSQL_8_0 \
       --tier=db-f1-micro \
       --region=us-central1
   ```
4. Crie o banco e o usuário:
   ```bash
   gcloud sql databases create igreja_db --instance=igreja-sql
   gcloud sql users create igreja_user --instance=igreja-sql --password=SUASENHA
   ```
5. Importe o `database.sql` (envie o arquivo para um bucket do Cloud Storage
   primeiro, depois):
   ```bash
   gcloud sql import sql igreja-sql gs://SEU_BUCKET/database.sql --database=igreja_db
   ```
6. Edite o `app.yaml` (já incluso no projeto) e troque:
   - `SEU_PROJETO:SUA_REGIAO:SUA_INSTANCIA` pelo nome de conexão real
     (mostrado no painel do Cloud SQL, campo "Nome da conexão")
   - `DB_PASS` pela senha que você definiu no passo 4
7. Faça o deploy, na pasta raiz do projeto:
   ```bash
   gcloud app deploy
   ```
8. Acesse a URL gerada (algo como `https://igreja-sistema.uc.r.appspot.com`)

O `config/conexao.php` detecta automaticamente que está no App Engine (pela
variável `INSTANCE_UNIX_SOCKET` do `app.yaml`) e troca a forma de conexão sem
precisar editar nada à mão.

---

## Qual escolher?

- **Pouca experiência técnica / quer algo previsível** → Caminho A (Compute Engine)
- **Já usa linha de comando, quer escalar automaticamente sem se preocupar
  com servidor** → Caminho B (App Engine)

Em ambos os casos, **não esqueça**:
- Trocar a senha do usuário `admin` (via `generate_hash.php`) antes de divulgar o link
- Ativar HTTPS (Certbot no Caminho A; automático no Caminho B)
- Fazer backup periódico do banco (`mysqldump` ou exportação pelo Cloud SQL)
