All checks were successful
BCards Deployment Pipeline / Run Tests (push) Successful in 4s
BCards Deployment Pipeline / PR Validation (push) Has been skipped
BCards Deployment Pipeline / Build and Push Image (push) Successful in 15m22s
BCards Deployment Pipeline / Deploy to Production (ARM - OCI) (push) Successful in 1m54s
BCards Deployment Pipeline / Deploy to Test (x86 - Local) (push) Has been skipped
BCards Deployment Pipeline / Cleanup Old Resources (push) Has been skipped
BCards Deployment Pipeline / Deployment Summary (push) Successful in 0s
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
178 lines
5.0 KiB
Markdown
178 lines
5.0 KiB
Markdown
# 🔧 **CONFIGURAÇÃO DE VARIÁVEIS NO GITEA**
|
|
|
|
## 📋 **VISÃO GERAL**
|
|
|
|
Agora o deploy é **100% automatizado**! O YAML cria o `appsettings.Production.json` dinamicamente usando variáveis do Gitea.
|
|
|
|
---
|
|
|
|
## ⚙️ **COMO CONFIGURAR NO GITEA**
|
|
|
|
### **1. Acessar Configurações**
|
|
```bash
|
|
1. Vá para: https://seu-gitea.com/seu-usuario/vcart.me.novo
|
|
2. Clique em: Settings (Configurações)
|
|
3. Na sidebar: Secrets and variables → Actions
|
|
```
|
|
|
|
### **2. Criar SECRETS (dados sensíveis)**
|
|
Clique em **"New repository secret"** para cada um:
|
|
|
|
```bash
|
|
# STRIPE (obrigatório)
|
|
STRIPE_SECRET_KEY = sk_test_51RjUmIBMIadsOxJVeqsMFxnZ8ePR7d8IbnaF4sAwBVJv9rrfODPEQ2C9fF3beoABpITdfzEk0ZDzGTTQfvKv63xI00PeZoABGO
|
|
|
|
STRIPE_WEBHOOK_SECRET = whsec_SEU_WEBHOOK_SECRET_AQUI
|
|
|
|
# OAUTH (obrigatório)
|
|
GOOGLE_CLIENT_SECRET = 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
|
|
MICROSOFT_CLIENT_SECRET = T0.8Q~an.51iW1H0DVjL2i1bmSK_qTgVQOuEmapK
|
|
|
|
# SENDGRID (obrigatório)
|
|
SENDGRID_API_KEY = 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
|
|
```
|
|
|
|
### **3. Criar VARIABLES (dados não-sensíveis)**
|
|
Clique em **"New repository variable"** para cada um:
|
|
|
|
```bash
|
|
# STRIPE
|
|
STRIPE_PUBLISHABLE_KEY = pk_test_51RjUmIBMIadsOxJVP4bWc54pHEOSf5km1hpOkOBSoGVoKxI46N4KSWtevpXCSq68OjFazBuXmPJGBwZ1KDN5MNJy003lj1YmAS
|
|
STRIPE_ENVIRONMENT = test
|
|
|
|
# OAUTH
|
|
GOOGLE_CLIENT_ID = 472850008574-nmeepbdt4hunsk5c8krpbdmd3olc4jv6.apps.googleusercontent.com
|
|
MICROSOFT_CLIENT_ID = b411606a-e574-4f59-b7cd-10dd941b9fa3
|
|
|
|
# SENDGRID
|
|
SENDGRID_FROM_EMAIL = ricardo.carneiro@jobmaker.com.br
|
|
SENDGRID_FROM_NAME = Ricardo Carneiro
|
|
|
|
# MODERAÇÃO
|
|
MODERATOR_EMAIL = ricardo.carneiro@jobmaker.com.br
|
|
MODERATOR_EMAIL_1 = rrcgoncalves@gmail.com
|
|
MODERATOR_EMAIL_2 = rirocarneiro@gmail.com
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 **PASSO-A-PASSO COMPLETO**
|
|
|
|
### **FASE 1: TESTE ONLINE (ATUAL)**
|
|
|
|
#### **1.1 Configure Webhook no Stripe**
|
|
1. **Stripe Dashboard** → **Developers** → **Webhooks**
|
|
2. **Add endpoint**: `https://bcards.site/api/stripe/webhook`
|
|
3. **Select events**:
|
|
- `customer.subscription.created`
|
|
- `customer.subscription.updated`
|
|
- `customer.subscription.deleted`
|
|
- `invoice.payment_succeeded`
|
|
- `invoice.payment_failed`
|
|
4. **Copiar**: Signing secret (`whsec_...`)
|
|
|
|
#### **1.2 Desativar Modo Restrito no Stripe**
|
|
1. **Stripe Dashboard** → **Settings** → **Account settings**
|
|
2. **Business settings** → **"Restricted mode"** → **DESATIVAR** ✅
|
|
|
|
#### **1.3 Configurar Variáveis no Gitea**
|
|
Use os valores atuais (modo teste):
|
|
|
|
```bash
|
|
# Para TESTE ONLINE
|
|
STRIPE_ENVIRONMENT = test
|
|
STRIPE_PUBLISHABLE_KEY = pk_test_... (sua chave atual)
|
|
STRIPE_SECRET_KEY = sk_test_... (sua chave atual)
|
|
STRIPE_WEBHOOK_SECRET = whsec_... (do webhook configurado)
|
|
```
|
|
|
|
#### **1.4 Commit e Deploy**
|
|
```bash
|
|
git add .
|
|
git commit -m "feat: deploy automatizado com configuração dinâmica via Gitea
|
|
|
|
- YAML cria appsettings.Production.json automaticamente
|
|
- Configuração via variáveis/secrets do Gitea
|
|
- Mount do arquivo no container Docker
|
|
- Suporte para teste online e produção
|
|
|
|
🔧 Generated with [Claude Code](https://claude.ai/code)
|
|
|
|
Co-Authored-By: Claude <noreply@anthropic.com>"
|
|
|
|
git push origin main
|
|
```
|
|
|
|
---
|
|
|
|
### **FASE 2: MIGRAÇÃO PARA LIVE (QUANDO PRONTO)**
|
|
|
|
#### **2.1 Obter Chaves Live**
|
|
```bash
|
|
1. Stripe Dashboard → Toggle "Test mode" OFF
|
|
2. Developers → API Keys
|
|
3. Copiar: pk_live_... e sk_live_...
|
|
```
|
|
|
|
#### **2.2 Configurar Webhook Live**
|
|
```bash
|
|
1. Stripe Dashboard (Live) → Webhooks
|
|
2. Add endpoint: https://bcards.site/api/stripe/webhook
|
|
3. Copiar: whsec_live_...
|
|
```
|
|
|
|
#### **2.3 Criar Produtos Live**
|
|
```bash
|
|
# No Stripe Dashboard (Live mode):
|
|
Products → Create products para cada plano
|
|
Copiar todos os price_live_xxx IDs
|
|
```
|
|
|
|
#### **2.4 Atualizar Variáveis no Gitea**
|
|
```bash
|
|
# Mudar apenas estas variáveis:
|
|
STRIPE_ENVIRONMENT = live
|
|
STRIPE_PUBLISHABLE_KEY = pk_live_... (nova)
|
|
STRIPE_SECRET_KEY = sk_live_... (nova)
|
|
STRIPE_WEBHOOK_SECRET = whsec_live_... (nova)
|
|
```
|
|
|
|
#### **2.5 Atualizar Price IDs**
|
|
Editar `appsettings.json` com os novos price IDs live e fazer commit.
|
|
|
|
---
|
|
|
|
## ✅ **VANTAGENS DESTA ABORDAGEM**
|
|
|
|
### **🔒 Segurança:**
|
|
- ✅ Secrets nunca vão para o git
|
|
- ✅ Variables ficam na interface do Gitea
|
|
- ✅ Deploy totalmente automatizado
|
|
|
|
### **🚀 Produtividade:**
|
|
- ✅ Mudança de ambiente: apenas update de variáveis
|
|
- ✅ Sem arquivos manuais nos servidores
|
|
- ✅ Rollback fácil
|
|
- ✅ Configuração versionada via interface
|
|
|
|
### **🔧 Manutenibilidade:**
|
|
- ✅ Uma única fonte de verdade
|
|
- ✅ Fácil adicionar novos ambientes
|
|
- ✅ Logs claros no deploy
|
|
- ✅ Validação automática
|
|
|
|
---
|
|
|
|
## 📊 **FLUXO FINAL**
|
|
|
|
```mermaid
|
|
graph TD
|
|
A[git push main] --> B[Gitea Actions]
|
|
B --> C[Create appsettings.Production.json]
|
|
C --> D[Build Docker Image]
|
|
D --> E[Upload Config to Servers]
|
|
E --> F[Deploy with Volume Mount]
|
|
F --> G[✅ Site Online]
|
|
```
|
|
|
|
**Resultado**: Configuração 100% automatizada, segura e versionada! 🎉 |