From 17c2f8e219205186d6bab49855c4fd3acfae5666 Mon Sep 17 00:00:00 2001 From: Admin Date: Sun, 16 Nov 2025 21:49:21 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20Instala=C3=A7=C3=A3o=20completa?= =?UTF-8?q?=20do=20Gitea=20com=20todos=20os=20scripts=20e=20documenta?= =?UTF-8?q?=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 12 ++ ACESSO_RAPIDO.txt | 129 ++++++++++++++++ FIREWALL_INFO.txt | 79 ++++++++++ GUIA_CURSOR.md | 330 ++++++++++++++++++++++++++++++++++++++++ INSTALACAO_COMPLETA.txt | 167 ++++++++++++++++++++ PRIMEIRO_REPOSITORIO.md | 161 ++++++++++++++++++++ QUICK_START.txt | 80 ++++++++++ README.md | 306 +++++++++++++++++++++++++++++++++++++ README_PROJETO.md | 114 ++++++++++++++ check-system.sh | 153 +++++++++++++++++++ configure-ssl.sh | 46 ++++++ docker-compose.yml | 47 ++++++ manage-gitea.sh | 57 +++++++ monitor-porta-443.sh | 68 +++++++++ test-https.sh | 51 +++++++ 15 files changed, 1800 insertions(+) create mode 100644 .gitignore create mode 100644 ACESSO_RAPIDO.txt create mode 100644 FIREWALL_INFO.txt create mode 100644 GUIA_CURSOR.md create mode 100644 INSTALACAO_COMPLETA.txt create mode 100644 PRIMEIRO_REPOSITORIO.md create mode 100644 QUICK_START.txt create mode 100644 README.md create mode 100644 README_PROJETO.md create mode 100755 check-system.sh create mode 100755 configure-ssl.sh create mode 100755 docker-compose.yml create mode 100755 manage-gitea.sh create mode 100755 monitor-porta-443.sh create mode 100755 test-https.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7f2683d --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Dados sensíveis +data/ +postgres/ +*.log +*.key +*.pem + +# Arquivos temporários +*.tmp +*.bak +*~ + diff --git a/ACESSO_RAPIDO.txt b/ACESSO_RAPIDO.txt new file mode 100644 index 0000000..ec44ca8 --- /dev/null +++ b/ACESSO_RAPIDO.txt @@ -0,0 +1,129 @@ +╔════════════════════════════════════════════════════════════════════╗ +║ ║ +║ 🎉 GITEA INSTALADO COM SUCESSO! 🎉 ║ +║ ║ +║ Seu repositório Git privado está pronto! ║ +║ ║ +╚════════════════════════════════════════════════════════════════════╝ + + +📍 ACESSO +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + 🌐 URL: http://meurepositorio.com + 🔒 HTTPS: https://meurepositorio.com (após configurar SSL) + 📁 Localização: /root/gitea/ + + +⚡ COMANDOS RÁPIDOS +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + # Verificar status do sistema + /root/gitea/check-system.sh + + # Ver status dos containers + /root/gitea/manage-gitea.sh status + + # Ver logs em tempo real + /root/gitea/manage-gitea.sh logs + + # Reiniciar sistema + /root/gitea/manage-gitea.sh restart + + # Fazer backup + /root/gitea/manage-gitea.sh backup + + +🔐 CONFIGURAR SSL (HTTPS) - IMPORTANTE! +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + ⚠️ ANTES: Configure o DNS para apontar para este servidor! + + Depois execute: + cd /root/gitea + ./configure-ssl.sh + + +📚 DOCUMENTAÇÃO +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + 📖 Documentação completa: /root/gitea/README.md + 🚀 Guia rápido: /root/gitea/QUICK_START.txt + 📋 Resumo instalação: /root/gitea/INSTALACAO_COMPLETA.txt + ⚙️ Verificar sistema: /root/gitea/check-system.sh + + +🔧 SCRIPTS DISPONÍVEIS +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + /root/gitea/manage-gitea.sh - Gerenciar Gitea + /root/gitea/configure-ssl.sh - Configurar HTTPS/SSL + /root/gitea/check-system.sh - Verificar status do sistema + + +💾 INFORMAÇÕES DO SISTEMA +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + Container Gitea: gitea (gitea/gitea:latest) + Container Database: gitea-db-1 (postgres:14) + Reverse Proxy: Nginx + + Portas: + - HTTP: 80 + - HTTPS: 443 (após SSL) + - Git SSH: 222 + + +🔄 PRÓXIMOS PASSOS +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + 1. ✓ Gitea instalado e rodando + 2. ✓ Nginx configurado + 3. ⚠️ Configurar DNS (aponte para o IP deste servidor) + 4. ⚠️ Configurar SSL/HTTPS (execute ./configure-ssl.sh) + 5. ⚠️ Acessar e configurar o Gitea pela primeira vez + 6. ⚠️ Criar sua conta de administrador + + +🎯 PRIMEIRO ACESSO +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + 1. Acesse: http://meurepositorio.com + + 2. Complete o formulário de instalação: + - Database Type: PostgreSQL ✓ (já configurado) + - Host: db:5432 ✓ + - Username: gitea ✓ + - Password: gitea ✓ + - Database Name: gitea ✓ + + 3. Configure o site: + - Server Domain: meurepositorio.com + - SSH Server Port: 222 + - HTTP Port: 3000 + - Base URL: http://meurepositorio.com (ou https:// após SSL) + + 4. Crie sua conta de administrador: + - Username: (seu usuário) + - Password: (senha forte) + - Email: (seu email) + + 5. Clique em "Install Gitea" + + +📞 SUPORTE +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + + Documentação oficial: https://docs.gitea.io + Comunidade: https://discourse.gitea.io + GitHub: https://github.com/go-gitea/gitea + + +╔════════════════════════════════════════════════════════════════════╗ +║ ║ +║ ✨ Seu repositório Git privado está pronto para uso! ✨ ║ +║ ║ +║ Para ver o guia rápido: cat /root/gitea/QUICK_START.txt ║ +║ ║ +╚════════════════════════════════════════════════════════════════════╝ + diff --git a/FIREWALL_INFO.txt b/FIREWALL_INFO.txt new file mode 100644 index 0000000..9542fce --- /dev/null +++ b/FIREWALL_INFO.txt @@ -0,0 +1,79 @@ +╔══════════════════════════════════════════════════════════════════╗ +║ IMPORTANTE: PORTA 443 (HTTPS) BLOQUEADA ║ +╚══════════════════════════════════════════════════════════════════╝ + +O certificado SSL está instalado e funcionando corretamente no servidor, +MAS a porta 443 está sendo bloqueada externamente. + +SITUAÇÃO ATUAL: +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +✓ Porta 80 (HTTP): ACESSÍVEL +✗ Porta 443 (HTTPS): BLOQUEADA (firewall externo) +✓ Nginx: FUNCIONANDO +✓ SSL: INSTALADO + +COMO RESOLVER: +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +1. PROVEDOR CLOUD/VPS (AWS, Azure, DigitalOcean, Contabo, etc.) + ──────────────────────────────────────────────────────────────── + - Acesse o painel de controle do provedor + - Vá em "Security Groups" ou "Firewall Rules" + - Adicione regra permitindo tráfego de entrada na porta 443/TCP + - Origem: 0.0.0.0/0 (qualquer lugar) ou IPs específicos + +2. ROTEADOR/FIREWALL LOCAL + ──────────────────────────────────────────────────────────────── + - Acesse a interface administrativa do roteador + - Vá em "Port Forwarding" ou "NAT" + - Configure: + * Porta externa: 443 + * Porta interna: 443 + * IP interno: 172.16.60.149 + * Protocolo: TCP + +3. FIREWALL CORPORATIVO + ──────────────────────────────────────────────────────────────── + - Entre em contato com o administrador de rede + - Solicite liberação da porta 443 TCP de entrada + +TESTAR APÓS LIBERAR: +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +# Testar porta 443 aberta +telnet meurepositorio.com 443 + +# Ou usar netcat +nc -zv meurepositorio.com 443 + +# Ou no navegador +https://meurepositorio.com + +SE NÃO PUDER LIBERAR A PORTA 443: +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +Você pode usar o Gitea temporariamente via HTTP: +http://meurepositorio.com + +Porém isso NÃO é seguro para produção (senhas e dados trafegam sem +criptografia). + +INFORMAÇÕES TÉCNICAS: +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ + +IP Público: 187.102.179.100 +IP Local: 172.16.60.149 +Servidor atrás de NAT: SIM + +Nginx está escutando em: + 0.0.0.0:80 ✓ + 0.0.0.0:443 ✓ (mas bloqueado externamente) + +Certificado SSL: + /etc/letsencrypt/live/meurepositorio.com/fullchain.pem + Válido até: Feb 14 15:32:53 2026 GMT + +═══════════════════════════════════════════════════════════════════ + + diff --git a/GUIA_CURSOR.md b/GUIA_CURSOR.md new file mode 100644 index 0000000..9e6e803 --- /dev/null +++ b/GUIA_CURSOR.md @@ -0,0 +1,330 @@ +# 🎯 Como Usar seu Gitea com o Cursor + +Seu repositório Gitea funciona **exatamente como GitHub** com o Cursor! + +--- + +## 📋 Pré-requisitos + +1. ✅ Gitea configurado (você já tem!) +2. ✅ Conta de usuário criada no Gitea +3. ✅ Cursor instalado no seu computador + +--- + +## 🚀 Método 1: Clone via HTTPS (Mais Fácil) + +### Passo 1: Criar repositório no Gitea + +1. Acesse: `https://meurepositorio.com` +2. Faça login +3. Clique no **"+"** (canto superior direito) +4. Selecione **"New Repository"** +5. Preencha: + - Nome: `meu-projeto` + - Descrição: (opcional) + - Privado ou Público +6. Clique em **"Create Repository"** + +### Passo 2: Clonar no Cursor + +**No Cursor:** + +1. Pressione `Ctrl+Shift+P` (ou `Cmd+Shift+P` no Mac) +2. Digite: `Git: Clone` +3. Cole a URL: `https://meurepositorio.com/seuusuario/meu-projeto.git` +4. Escolha a pasta onde clonar +5. Digite seu **usuário** e **senha** do Gitea + +Pronto! Seu repositório está clonado e pronto para usar no Cursor! 🎉 + +### Comandos Git no Cursor + +Depois de clonar, você pode usar Git normalmente: + +- **Commit**: `Ctrl+Shift+G` → Digite mensagem → Clique no ✓ +- **Push**: Clique nos `...` → `Push` +- **Pull**: Clique nos `...` → `Pull` +- **Criar Branch**: Canto inferior esquerdo → Clique no nome da branch + +--- + +## 🔐 Método 2: Clone via SSH (Recomendado para Uso Frequente) + +Mais seguro e não precisa digitar senha toda vez! + +### Passo 1: Gerar chave SSH (se ainda não tem) + +**No seu computador:** + +```bash +# Linux/Mac/Windows (Git Bash) +ssh-keygen -t ed25519 -C "seu-email@example.com" + +# Pressione Enter para aceitar o local padrão +# Pressione Enter para senha vazia (ou defina uma) +``` + +### Passo 2: Copiar a chave pública + +```bash +# Linux/Mac +cat ~/.ssh/id_ed25519.pub + +# Windows (PowerShell) +type $env:USERPROFILE\.ssh\id_ed25519.pub + +# Windows (Git Bash) +cat ~/.ssh/id_ed25519.pub +``` + +Copie todo o conteúdo (começa com `ssh-ed25519 ...`) + +### Passo 3: Adicionar no Gitea + +1. Acesse: `https://meurepositorio.com` +2. Faça login +3. Clique no **avatar** (canto superior direito) → **Settings** +4. No menu lateral: **SSH / GPG Keys** +5. Clique em **Add Key** +6. Cole a chave pública +7. Dê um nome (ex: "Meu Computador") +8. Clique em **Add Key** + +### Passo 4: Clonar via SSH + +**No Cursor:** + +1. Pressione `Ctrl+Shift+P` (ou `Cmd+Shift+P`) +2. Digite: `Git: Clone` +3. Cole a URL SSH: `ssh://git@meurepositorio.com:222/seuusuario/meu-projeto.git` + + ⚠️ **Importante**: Note a porta **222** (não é 22!) + +4. Escolha a pasta +5. Não vai pedir senha! 🎉 + +--- + +## 📦 Método 3: Publicar Projeto Existente do Cursor + +Você já tem um projeto no Cursor e quer colocar no Gitea? + +### Passo 1: Criar repositório vazio no Gitea + +1. Acesse o Gitea +2. Crie um novo repositório +3. **Importante**: NÃO marque "Initialize repository" +4. Copie a URL que aparecer + +### Passo 2: No Cursor + +Abra o terminal integrado (`Ctrl+``) e execute: + +```bash +# Inicializar Git (se ainda não tem) +git init + +# Adicionar seus arquivos +git add . + +# Primeiro commit +git commit -m "Primeiro commit" + +# Adicionar o remote do Gitea +git remote add origin https://meurepositorio.com/seuusuario/meu-projeto.git + +# OU via SSH: +git remote add origin ssh://git@meurepositorio.com:222/seuusuario/meu-projeto.git + +# Push para o Gitea +git push -u origin master +``` + +Digite usuário e senha quando solicitado (se HTTPS). + +--- + +## 🔄 Workflow Diário no Cursor + +### Fazer mudanças e enviar: + +1. **Edite arquivos** normalmente no Cursor +2. **Ver mudanças**: `Ctrl+Shift+G` +3. **Stage arquivos**: Clique no `+` ao lado dos arquivos +4. **Commit**: Digite mensagem e clique no ✓ +5. **Push**: Clique nos `...` → `Push` + +### Baixar mudanças do servidor: + +1. Clique nos `...` → `Pull` + +### Criar branch: + +1. Canto inferior esquerdo → Nome da branch +2. `+ Create new branch...` +3. Digite o nome +4. Push: `...` → `Publish Branch` + +--- + +## ⚙️ Configurações Úteis no Cursor + +### Salvar credenciais (HTTPS) + +Para não digitar senha toda vez: + +```bash +# Linux/Mac +git config --global credential.helper store + +# Windows +git config --global credential.helper wincred +``` + +Na primeira vez que fizer push/pull, digite usuário e senha. +Depois disso, ficará salvo! + +### Configurar Git + +```bash +# Seu nome +git config --global user.name "Seu Nome" + +# Seu email +git config --global user.email "seu-email@example.com" +``` + +--- + +## 🎨 Extensões Úteis do Cursor para Git + +O Cursor já vem com Git integrado, mas você pode instalar: + +- **GitLens**: Visualização avançada de histórico +- **Git Graph**: Ver árvore de commits visual +- **Git History**: Ver histórico de arquivos + +--- + +## 🔍 Troubleshooting + +### ❌ "Could not resolve host" + +**Problema**: DNS não resolve `meurepositorio.com` + +**Solução**: Aguarde propagação DNS ou adicione no arquivo hosts: + +```bash +# Linux/Mac: /etc/hosts +# Windows: C:\Windows\System32\drivers\etc\hosts + +187.102.179.100 meurepositorio.com +``` + +### ❌ "SSL certificate problem" + +**Problema**: Certificado SSL não confiável + +**Solução temporária** (apenas para teste): +```bash +git config --global http.sslVerify false +``` + +**Solução correta**: Aguarde certificado SSL ser reconhecido ou importe o certificado. + +### ❌ "Connection timeout" (SSH) + +**Problema**: Porta SSH não acessível + +**Lembre-se**: O Gitea usa porta **222**, não 22! + +URL SSH correta: +``` +ssh://git@meurepositorio.com:222/usuario/repo.git +``` + +### ❌ "Permission denied (publickey)" + +**Problema**: Chave SSH não configurada + +**Solução**: +1. Verifique se a chave está no Gitea (Settings → SSH Keys) +2. Teste conexão: `ssh -p 222 git@meurepositorio.com` + +--- + +## 📚 URLs do Seu Gitea + +### Clone HTTPS: +``` +https://meurepositorio.com/seuusuario/seurepositorio.git +``` + +### Clone SSH: +``` +ssh://git@meurepositorio.com:222/seuusuario/seurepositorio.git +``` + +### Web: +``` +https://meurepositorio.com +``` + +--- + +## 🎯 Exemplo Completo: Criar e Usar Repositório + +```bash +# 1. Criar pasta do projeto +mkdir meu-projeto +cd meu-projeto + +# 2. Inicializar Git +git init + +# 3. Criar arquivo +echo "# Meu Projeto" > README.md + +# 4. Primeiro commit +git add . +git commit -m "Initial commit" + +# 5. Conectar com Gitea (criar repo vazio lá primeiro!) +git remote add origin https://meurepositorio.com/seuusuario/meu-projeto.git + +# 6. Push +git push -u origin master + +# 7. Abrir no Cursor +code . +``` + +Pronto! Agora você pode trabalhar normalmente no Cursor! 🚀 + +--- + +## 💡 Dicas Profissionais + +1. **Use SSH**: Mais seguro e rápido +2. **Commits frequentes**: Pequenos e descritivos +3. **Branches**: Use branches para features +4. **Pull antes de Push**: Evita conflitos +5. **.gitignore**: Não commite arquivos desnecessários +6. **Backup**: Seu Gitea é o backup, mas faça backup do servidor também! + +--- + +## 🎉 Vantagens do Seu Gitea Privado + +✅ **Privacidade total**: Seus códigos não saem do seu servidor +✅ **Sem limites**: Repos ilimitados, tamanho ilimitado +✅ **Controle total**: Você decide as regras +✅ **Grátis**: Sem mensalidades +✅ **Rápido**: Na sua rede local + +--- + +**Seu repositório Git privado está pronto para ser usado com o Cursor!** 🚀 + + diff --git a/INSTALACAO_COMPLETA.txt b/INSTALACAO_COMPLETA.txt new file mode 100644 index 0000000..189c753 --- /dev/null +++ b/INSTALACAO_COMPLETA.txt @@ -0,0 +1,167 @@ +═══════════════════════════════════════════════════════════════════ + GITEA - INSTALAÇÃO COMPLETA E CONFIGURADA +═══════════════════════════════════════════════════════════════════ + +✓ INSTALAÇÃO CONCLUÍDA COM SUCESSO! + +Data: Sun Nov 16 16:27:29 UTC 2025 +Localização: /root/gitea/ +Domínio: https://meurepositorio.com + +═══════════════════════════════════════════════════════════════════ +COMPONENTES INSTALADOS: +═══════════════════════════════════════════════════════════════════ + +✓ Gitea (última versão) + - Container Docker rodando + - Porta interna: 3000 + - SSH Git: porta 222 + +✓ PostgreSQL 14 + - Banco de dados configurado + - Dados persistentes em /root/gitea/postgres + +✓ Nginx (Reverse Proxy) + - Configurado para meurepositorio.com + - Porta HTTP: 80 + - Pronto para SSL/HTTPS: 443 + +✓ Scripts de Gerenciamento + - manage-gitea.sh (gerenciar sistema) + - configure-ssl.sh (configurar HTTPS) + - check-system.sh (verificar status) + +═══════════════════════════════════════════════════════════════════ +IMPORTANTE - PRÓXIMOS PASSOS: +═══════════════════════════════════════════════════════════════════ + +⚠️ O DNS ainda NÃO está apontando para este servidor! + +Ação necessária: +1. Configure o DNS do domínio meurepositorio.com + - Tipo A: meurepositorio.com → IP_DESTE_SERVIDOR + - Tipo A: www.meurepositorio.com → IP_DESTE_SERVIDOR + +2. Aguarde propagação DNS (5-15 minutos) + +3. Configure SSL/HTTPS: + cd /root/gitea + ./configure-ssl.sh + +4. Acesse e configure o Gitea: + https://meurepositorio.com + +═══════════════════════════════════════════════════════════════════ +ARQUIVOS E DIRETÓRIOS: +═══════════════════════════════════════════════════════════════════ + +/root/gitea/ +├── docker-compose.yml # Configuração do Docker +├── data/ # Dados do Gitea +├── postgres/ # Banco de dados +├── manage-gitea.sh # Script de gerenciamento +├── configure-ssl.sh # Script de configuração SSL +├── check-system.sh # Script de verificação +├── README.md # Documentação completa +├── QUICK_START.txt # Guia rápido +└── INSTALACAO_COMPLETA.txt # Este arquivo + +/etc/nginx/sites-available/gitea # Configuração do Nginx + +═══════════════════════════════════════════════════════════════════ +COMANDOS ÚTEIS: +═══════════════════════════════════════════════════════════════════ + +# Verificar status do sistema +/root/gitea/check-system.sh + +# Gerenciar Gitea +/root/gitea/manage-gitea.sh status +/root/gitea/manage-gitea.sh restart +/root/gitea/manage-gitea.sh logs +/root/gitea/manage-gitea.sh backup + +# Ver containers Docker +docker ps + +# Ver logs +docker logs gitea +docker logs gitea-db-1 + +# Reiniciar Nginx +systemctl restart nginx + +═══════════════════════════════════════════════════════════════════ +INFORMAÇÕES TÉCNICAS: +═══════════════════════════════════════════════════════════════════ + +Container Gitea: + - Nome: gitea + - Imagem: gitea/gitea:latest + - Porta HTTP: 3000 → 80 (via Nginx) + - Porta SSH: 22 → 222 + +Container PostgreSQL: + - Nome: gitea-db-1 + - Imagem: postgres:14 + - Database: gitea + - User: gitea + - Password: gitea + +Nginx: + - Porta HTTP: 80 + - Porta HTTPS: 443 (após SSL) + - Config: /etc/nginx/sites-available/gitea + +═══════════════════════════════════════════════════════════════════ +SEGURANÇA: +═══════════════════════════════════════════════════════════════════ + +Recomendações: +✓ Configure firewall (UFW) +✓ Use senhas fortes +✓ Ative 2FA no Gitea +✓ Configure backups automáticos +✓ Instale SSL/TLS (HTTPS) +✓ Mantenha sistema atualizado + +Portas que devem estar abertas: +- 80 (HTTP) +- 443 (HTTPS) +- 222 (SSH Git) + +═══════════════════════════════════════════════════════════════════ +BACKUP: +═══════════════════════════════════════════════════════════════════ + +Fazer backup manual: + /root/gitea/manage-gitea.sh backup + +Backups automáticos (adicionar ao crontab): + 0 3 * * * /root/gitea/manage-gitea.sh backup + +Backups salvos em: + /root/gitea-backups/ + +═══════════════════════════════════════════════════════════════════ +SUPORTE: +═══════════════════════════════════════════════════════════════════ + +Documentação: /root/gitea/README.md +Guia rápido: /root/gitea/QUICK_START.txt +Verificação: /root/gitea/check-system.sh + +Documentação oficial: https://docs.gitea.io +Comunidade: https://discourse.gitea.io + +═══════════════════════════════════════════════════════════════════ + +Instalação realizada em: Sun Nov 16 16:27:29 UTC 2025 +Sistema pronto para uso! + +Para começar, leia o guia rápido: + cat /root/gitea/QUICK_START.txt + +═══════════════════════════════════════════════════════════════════ + + diff --git a/PRIMEIRO_REPOSITORIO.md b/PRIMEIRO_REPOSITORIO.md new file mode 100644 index 0000000..3feeb7f --- /dev/null +++ b/PRIMEIRO_REPOSITORIO.md @@ -0,0 +1,161 @@ +# 🎯 Como Criar e Usar seu Primeiro Repositório + +## 📦 Passo 1: Criar Repositório no Gitea + +1. Acesse: https://meurepositorio.com +2. Faça login com sua conta de administrador +3. Clique no **"+"** (canto superior direito) +4. Selecione **"Novo Repositório"** +5. Preencha: + - **Nome**: `scripts-servidor` (ou qualquer nome) + - **Descrição**: `Scripts e configurações do servidor` + - **Visibilidade**: Privado (recomendado) + - **Initialize Repository**: ✓ Marque "Initialize repository" + - **Add .gitignore**: Nenhum (ou escolha se quiser) + - **Add License**: Nenhum (ou escolha se quiser) +6. Clique em **"Criar Repositório"** + +--- + +## 🔗 Passo 2: Clonar no Cursor (HTTPS) + +### No seu computador (onde está o Cursor): + +1. Abra o Cursor +2. Pressione `Ctrl+Shift+P` (Windows/Linux) ou `Cmd+Shift+P` (Mac) +3. Digite: `Git: Clone` +4. Cole a URL: `https://meurepositorio.com/seuusuario/scripts-servidor.git` + (substitua `seuusuario` pelo seu username do Gitea) +5. Escolha uma pasta no seu computador +6. Digite seu **usuário** e **senha** do Gitea quando solicitado +7. Clique em **"Open"** quando perguntar se quer abrir o repositório + +**Pronto!** Você está conectado! 🎉 + +--- + +## 📝 Passo 3: Fazer seu Primeiro Commit + +No Cursor: + +1. Crie um arquivo: `README.md` +2. Escreva algo, por exemplo: + ```markdown + # Scripts do Servidor + + Configurações e scripts do meu servidor + ``` +3. Salve o arquivo (`Ctrl+S`) +4. Abra o painel Git: `Ctrl+Shift+G` +5. Você verá o arquivo `README.md` em "Changes" +6. Clique no **+** ao lado do arquivo (stage) +7. Digite uma mensagem: `"Primeiro commit"` +8. Clique no **✓** (commit) +9. Clique nos **...** → **Push** + +**Sucesso!** Seu código está no Gitea! 🚀 + +--- + +## 💾 Salvar Credenciais (Não Pedir Senha Toda Vez) + +### No terminal do seu computador (onde está o Cursor): + +```bash +# Windows +git config --global credential.helper wincred + +# Mac +git config --global credential.helper osxkeychain + +# Linux +git config --global credential.helper store +``` + +Na próxima vez que fizer push/pull, digite usuário e senha UMA VEZ. +Depois disso, ficará salvo automaticamente! + +--- + +## 📚 Repositórios Sugeridos para Organizar + +### 1. **scripts-servidor** + - Scripts de gerenciamento + - Configurações + - Backups + - Tudo que fizemos hoje! + +### 2. **projetos-web** + - Sites e aplicações web + - Frontend e backend + +### 3. **estudos** + - Códigos de estudo + - Tutoriais + - Experimentos + +### 4. **automacao** + - Scripts de automação + - Cron jobs + - Monitores + +--- + +## 🔄 Workflow Diário + +```bash +# 1. Abrir projeto no Cursor +code /caminho/do/projeto + +# 2. Fazer mudanças nos arquivos +# (edite normalmente) + +# 3. Ver mudanças +Ctrl+Shift+G + +# 4. Stage arquivos +Clique no + ao lado dos arquivos + +# 5. Commit +Digite mensagem e clique no ✓ + +# 6. Push para Gitea +Clique em ... → Push +``` + +--- + +## 🎯 Vantagens do Seu Gitea + +✅ **Privado**: Ninguém vê seus códigos +✅ **Ilimitado**: Repos e tamanho sem limites +✅ **Rápido**: Na sua rede local +✅ **Seu**: Você controla tudo +✅ **Grátis**: Sem mensalidades + +--- + +## 🆘 Problemas Comuns + +### ❌ "Authentication failed" +**Solução**: Verifique usuário e senha. No Gitea, vá em Settings → Applications → Generate New Token (e use o token no lugar da senha) + +### ❌ "Could not resolve host" +**Solução**: Adicione no arquivo hosts do seu computador: +``` +# Windows: C:\Windows\System32\drivers\etc\hosts +# Linux/Mac: /etc/hosts + +187.102.179.100 meurepositorio.com +``` + +### ❌ "SSL certificate problem" +**Solução**: O certificado é válido, mas se der problema: +```bash +git config --global http.sslVerify true +``` + +--- + +**Seu Gitea está pronto para usar! Comece criando seu primeiro repositório!** 🚀 + diff --git a/QUICK_START.txt b/QUICK_START.txt new file mode 100644 index 0000000..f47e3ef --- /dev/null +++ b/QUICK_START.txt @@ -0,0 +1,80 @@ +╔══════════════════════════════════════════════════════════════════╗ +║ GITEA - GUIA RÁPIDO DE INÍCIO ║ +╚══════════════════════════════════════════════════════════════════╝ + +✓ Gitea instalado com sucesso! +✓ Nginx configurado +✓ Containers rodando + +═══════════════════════════════════════════════════════════════════ + +PRÓXIMOS PASSOS: + +1. CONFIGURAR DNS (IMPORTANTE!) + ───────────────────────────── + Configure os registros DNS do seu domínio: + + Tipo A: meurepositorio.com → [IP_DESTE_SERVIDOR] + Tipo A: www.meurepositorio.com → [IP_DESTE_SERVIDOR] + + Aguarde propagação DNS (5-15 minutos) + Teste: ping meurepositorio.com + +2. CONFIGURAR SSL (HTTPS) + ──────────────────────── + Após o DNS estar funcionando, execute: + + cd /root/gitea + ./configure-ssl.sh + + ⚠️ Só execute após confirmar que o DNS está apontando! + +3. ACESSAR O GITEA + ─────────────── + Abra o navegador e acesse: + http://meurepositorio.com (ou https:// após configurar SSL) + + Na primeira vez, complete a configuração inicial: + - Database já está configurado (não mude!) + - Configure domínio: meurepositorio.com + - Crie sua conta de administrador + - Clique em "Install Gitea" + +4. GERENCIAR O SISTEMA + ─────────────────── + Use o script de gerenciamento: + + /root/gitea/manage-gitea.sh status # Ver status + /root/gitea/manage-gitea.sh logs # Ver logs + /root/gitea/manage-gitea.sh restart # Reiniciar + /root/gitea/manage-gitea.sh backup # Fazer backup + +═══════════════════════════════════════════════════════════════════ + +INFORMAÇÕES DO SISTEMA: + +📁 Localização: /root/gitea/ +🌐 Domínio: https://meurepositorio.com +🔌 Porta HTTP: 80 +🔌 Porta HTTPS: 443 (após SSL) +🔌 Porta SSH Git: 222 + +📚 Documentação completa: /root/gitea/README.md + +═══════════════════════════════════════════════════════════════════ + +COMANDOS ÚTEIS: + +# Ver status dos containers +docker ps + +# Ver logs do Gitea +docker logs gitea + +# Reiniciar Nginx +systemctl restart nginx + +# Ver status do Nginx +systemctl status nginx + +═══════════════════════════════════════════════════════════════════ diff --git a/README.md b/README.md new file mode 100644 index 0000000..22bd82b --- /dev/null +++ b/README.md @@ -0,0 +1,306 @@ +# Gitea - Repositório Git Privado +## https://meurepositorio.com + +Seu repositório Git privado está instalado e configurado com sucesso! + +--- + +## 📋 Informações do Sistema + +**Localização dos arquivos:** +- Configuração: `/root/gitea/` +- Dados do Gitea: `/root/gitea/data/` +- Banco de dados: `/root/gitea/postgres/` + +**Portas:** +- HTTP: 80 (Nginx) +- HTTPS: 443 (após configurar SSL) +- Gitea interno: 3000 (não exposto) +- SSH do Git: 222 + +**Containers Docker:** +- `gitea` - Servidor Gitea +- `gitea-db-1` - Banco de dados PostgreSQL + +--- + +## 🚀 Primeiros Passos + +### 1. Configurar DNS + +**ANTES DE CONTINUAR**, certifique-se de que o DNS do domínio está configurado: + +``` +Tipo: A +Nome: @ (ou meurepositorio.com) +Valor: [IP_DESTE_SERVIDOR] +TTL: 300 + +Tipo: A +Nome: www +Valor: [IP_DESTE_SERVIDOR] +TTL: 300 +``` + +Aguarde a propagação DNS (pode levar até 24h, mas geralmente 5-15 minutos). + +Teste com: `ping meurepositorio.com` + +### 2. Configurar SSL/TLS (HTTPS) + +Após confirmar que o DNS está apontando corretamente: + +```bash +cd /root/gitea +./configure-ssl.sh +``` + +Este script irá: +- Obter um certificado SSL gratuito do Let's Encrypt +- Configurar o Nginx para HTTPS automático +- Configurar renovação automática do certificado + +### 3. Acessar e Configurar o Gitea + +**Primeira vez:** + +1. Acesse: `http://meurepositorio.com` (ou `https://` após configurar SSL) + +2. Na primeira visita, você verá a tela de configuração inicial: + - **Database Type**: PostgreSQL (já configurado) + - **Host**: db:5432 + - **Username**: gitea + - **Password**: gitea + - **Database Name**: gitea + + - **Site Title**: Meu Repositório + - **Repository Root Path**: /data/git/repositories + - **Git LFS Root Path**: /data/git/lfs + - **Run As Username**: git + + - **Server Domain**: meurepositorio.com + - **SSH Server Port**: 222 + - **HTTP Port**: 3000 + - **Base URL**: https://meurepositorio.com (ou http:// se ainda não configurou SSL) + +3. **Importante**: Na seção "Administrator Account Settings", crie sua conta admin: + - Username: (seu nome de usuário) + - Password: (senha forte) + - Email: (seu email) + +4. Clique em "Install Gitea" + +--- + +## 🔧 Gerenciamento do Sistema + +Use o script de gerenciamento: + +```bash +# Ver status +/root/gitea/manage-gitea.sh status + +# Iniciar +/root/gitea/manage-gitea.sh start + +# Parar +/root/gitea/manage-gitea.sh stop + +# Reiniciar +/root/gitea/manage-gitea.sh restart + +# Ver logs em tempo real +/root/gitea/manage-gitea.sh logs + +# Fazer backup +/root/gitea/manage-gitea.sh backup + +# Atualizar para versão mais recente +/root/gitea/manage-gitea.sh update +``` + +--- + +## 📦 Como Usar o Gitea + +### Criar um novo repositório + +1. Faça login no Gitea +2. Clique no botão "+" no canto superior direito +3. Selecione "New Repository" +4. Preencha as informações e clique em "Create Repository" + +### Clonar um repositório (HTTPS) + +```bash +git clone https://meurepositorio.com/seuusuario/seurepositorio.git +``` + +### Clonar um repositório (SSH) + +```bash +# Adicione sua chave SSH no Gitea primeiro (Settings > SSH Keys) +git clone ssh://git@meurepositorio.com:222/seuusuario/seurepositorio.git +``` + +### Push para o repositório + +```bash +cd seu-projeto +git init +git add . +git commit -m "Primeiro commit" +git remote add origin https://meurepositorio.com/seuusuario/seurepositorio.git +git push -u origin master +``` + +--- + +## 🔒 Segurança + +### Firewall + +Certifique-se de que as seguintes portas estão abertas: + +```bash +# Permitir HTTP +ufw allow 80/tcp + +# Permitir HTTPS +ufw allow 443/tcp + +# Permitir SSH do Git +ufw allow 222/tcp + +# Verificar status +ufw status +``` + +### Backup Regular + +Configure um cron job para backups automáticos: + +```bash +# Editar crontab +crontab -e + +# Adicionar linha para backup diário às 3h da manhã +0 3 * * * /root/gitea/manage-gitea.sh backup +``` + +### Senhas Seguras + +- Use senhas fortes para todas as contas +- Ative autenticação de dois fatores (2FA) no Gitea +- Considere usar chaves SSH em vez de senhas para Git + +--- + +## 🔄 Atualização do Gitea + +Para atualizar o Gitea para a versão mais recente: + +```bash +cd /root/gitea +./manage-gitea.sh update +``` + +--- + +## 🆘 Troubleshooting + +### Gitea não está acessível + +```bash +# Verificar status dos containers +docker ps + +# Ver logs +docker logs gitea + +# Reiniciar +/root/gitea/manage-gitea.sh restart +``` + +### Nginx não está funcionando + +```bash +# Testar configuração +nginx -t + +# Reiniciar Nginx +systemctl restart nginx + +# Ver logs +tail -f /var/log/nginx/error.log +``` + +### SSL não está funcionando + +```bash +# Verificar certificados +certbot certificates + +# Renovar manualmente +certbot renew + +# Ver logs +tail -f /var/log/letsencrypt/letsencrypt.log +``` + +### Problemas de permissão + +```bash +# Ajustar permissões +chown -R 1000:1000 /root/gitea/data +chmod -R 755 /root/gitea/data +``` + +--- + +## 📚 Recursos Úteis + +- Documentação oficial do Gitea: https://docs.gitea.io +- Comunidade Gitea: https://discourse.gitea.io +- Reportar bugs: https://github.com/go-gitea/gitea/issues + +--- + +## 📊 Informações Técnicas + +**Stack:** +- Gitea (última versão) +- PostgreSQL 14 +- Nginx (reverse proxy) +- Docker & Docker Compose +- Let's Encrypt (SSL/TLS) + +**Requisitos do Sistema:** +- Linux (Ubuntu/Debian recomendado) +- Docker instalado +- Nginx instalado +- Mínimo 2GB RAM +- Mínimo 10GB de espaço em disco + +--- + +## 📝 Notas Importantes + +1. **Sempre faça backup antes de atualizar** +2. O certificado SSL é renovado automaticamente pelo certbot +3. Os dados estão em `/root/gitea/data` - proteja este diretório +4. O banco de dados PostgreSQL está em `/root/gitea/postgres` +5. Para acessar Git via SSH, use a porta 222, não 22 + +--- + +## 🎉 Pronto! + +Seu repositório Git privado está pronto para uso! + +Acesse: **https://meurepositorio.com** (após configurar SSL) +ou: **http://meurepositorio.com** (antes do SSL) + +Qualquer dúvida, consulte a documentação oficial ou os logs do sistema. + + diff --git a/README_PROJETO.md b/README_PROJETO.md new file mode 100644 index 0000000..301ffb8 --- /dev/null +++ b/README_PROJETO.md @@ -0,0 +1,114 @@ +# 🚀 Gitea - Repositório Git Privado + +Instalação e configuração completa do Gitea no servidor. + +## 📋 O que tem aqui + +Este repositório contém todos os scripts e configurações para gerenciar o servidor Gitea: + +### 📂 Arquivos de Configuração +- `docker-compose.yml` - Configuração dos containers Docker (Gitea + PostgreSQL) +- `.gitignore` - Arquivos a ignorar no Git + +### 🔧 Scripts de Gerenciamento +- `manage-gitea.sh` - Script principal de gerenciamento (start, stop, restart, backup, etc.) +- `configure-ssl.sh` - Configuração automática de SSL/TLS com Let's Encrypt +- `check-system.sh` - Verificação completa do sistema +- `monitor-porta-443.sh` - Monitoramento da porta HTTPS +- `test-https.sh` - Teste de conectividade HTTPS + +### 📚 Documentação +- `README.md` - Documentação completa do sistema +- `ACESSO_RAPIDO.txt` - Guia de acesso rápido +- `QUICK_START.txt` - Guia de início rápido +- `GUIA_CURSOR.md` - Como usar o Gitea com o Cursor +- `PRIMEIRO_REPOSITORIO.md` - Como criar seu primeiro repositório +- `FIREWALL_INFO.txt` - Informações sobre firewall e porta 443 +- `INSTALACAO_COMPLETA.txt` - Resumo completo da instalação + +## 🎯 Comandos Rápidos + +```bash +# Ver status +./manage-gitea.sh status + +# Reiniciar +./manage-gitea.sh restart + +# Ver logs +./manage-gitea.sh logs + +# Fazer backup +./manage-gitea.sh backup + +# Verificar sistema +./check-system.sh + +# Testar HTTPS +./test-https.sh +``` + +## 🌐 Acesso + +- **URL**: https://meurepositorio.com +- **SSH**: ssh://git@meurepositorio.com:222 +- **Localização**: /root/gitea/ + +## 🔐 Informações Técnicas + +### Stack +- **Gitea**: Latest +- **PostgreSQL**: 14 +- **Nginx**: Reverse proxy +- **SSL/TLS**: Let's Encrypt (renovação automática) +- **Docker**: Containerizado + +### Portas +- **80**: HTTP (redireciona para HTTPS) +- **443**: HTTPS +- **222**: SSH Git +- **3000**: Gitea (interno) + +### Containers +- `gitea` - Servidor Gitea +- `gitea-db-1` - PostgreSQL + +## 📦 Estrutura de Diretórios + +``` +/root/gitea/ +├── docker-compose.yml # Config Docker +├── data/ # Dados do Gitea (não versionado) +├── postgres/ # Banco de dados (não versionado) +├── manage-gitea.sh # Gerenciamento +├── configure-ssl.sh # Config SSL +├── check-system.sh # Verificação +├── monitor-porta-443.sh # Monitor HTTPS +├── test-https.sh # Teste HTTPS +└── docs/ # Documentação +``` + +## 🔄 Backup + +Backups são salvos em `/root/gitea-backups/` + +```bash +# Backup manual +./manage-gitea.sh backup + +# Backup automático (adicionar ao crontab) +0 3 * * * /root/gitea/manage-gitea.sh backup +``` + +## 🆘 Suporte + +- **Documentação Gitea**: https://docs.gitea.io +- **Comunidade**: https://discourse.gitea.io +- **Verificação do sistema**: `./check-system.sh` + +--- + +**Instalado e configurado com sucesso!** 🎉 + +Data da instalação: $(date) + diff --git a/check-system.sh b/check-system.sh new file mode 100755 index 0000000..fa4680c --- /dev/null +++ b/check-system.sh @@ -0,0 +1,153 @@ +#!/bin/bash + +# Script de verificação do sistema Gitea + +echo "╔══════════════════════════════════════════════════════════════════╗" +echo "║ VERIFICAÇÃO DO SISTEMA GITEA ║" +echo "╚══════════════════════════════════════════════════════════════════╝" +echo "" + +# Cores +GREEN='\033[0;32m' +RED='\033[0;31m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +check_service() { + if [ $2 -eq 0 ]; then + echo -e "${GREEN}✓${NC} $1" + else + echo -e "${RED}✗${NC} $1" + fi +} + +# 1. Verificar Docker +echo "1. Verificando Docker..." +docker --version > /dev/null 2>&1 +check_service "Docker instalado" $? + +# 2. Verificar containers +echo "" +echo "2. Verificando containers Gitea..." +GITEA_RUNNING=$(docker ps | grep -c "gitea/gitea") +DB_RUNNING=$(docker ps | grep -c "postgres:14") + +if [ $GITEA_RUNNING -eq 1 ]; then + echo -e "${GREEN}✓${NC} Container Gitea rodando" +else + echo -e "${RED}✗${NC} Container Gitea NÃO está rodando" +fi + +if [ $DB_RUNNING -eq 1 ]; then + echo -e "${GREEN}✓${NC} Container PostgreSQL rodando" +else + echo -e "${RED}✗${NC} Container PostgreSQL NÃO está rodando" +fi + +# 3. Verificar Nginx +echo "" +echo "3. Verificando Nginx..." +systemctl is-active --quiet nginx +check_service "Nginx rodando" $? + +nginx -t > /dev/null 2>&1 +check_service "Configuração do Nginx válida" $? + +# 4. Verificar se Gitea responde +echo "" +echo "4. Verificando acesso ao Gitea..." +HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:3000) +if [ "$HTTP_CODE" != "000" ]; then + echo -e "${GREEN}✓${NC} Gitea respondendo na porta 3000 (HTTP $HTTP_CODE)" +else + echo -e "${RED}✗${NC} Gitea NÃO está respondendo" +fi + +# 5. Verificar portas +echo "" +echo "5. Verificando portas..." +netstat -tuln | grep -q ":80 " +check_service "Porta 80 (HTTP) aberta" $? + +netstat -tuln | grep -q ":3000 " +check_service "Porta 3000 (Gitea) aberta" $? + +netstat -tuln | grep -q ":222 " +check_service "Porta 222 (SSH Git) aberta" $? + +# 6. Verificar SSL +echo "" +echo "6. Verificando SSL..." +if [ -d "/etc/letsencrypt/live/meurepositorio.com" ]; then + echo -e "${GREEN}✓${NC} Certificado SSL instalado" + + # Verificar validade do certificado + CERT_EXPIRY=$(openssl x509 -enddate -noout -in /etc/letsencrypt/live/meurepositorio.com/cert.pem 2>/dev/null | cut -d= -f2) + if [ ! -z "$CERT_EXPIRY" ]; then + echo -e " ${GREEN}→${NC} Válido até: $CERT_EXPIRY" + fi +else + echo -e "${YELLOW}⚠${NC} Certificado SSL NÃO instalado (execute ./configure-ssl.sh)" +fi + +# 7. Verificar disco +echo "" +echo "7. Verificando espaço em disco..." +DISK_USAGE=$(df -h /root/gitea | tail -1 | awk '{print $5}' | sed 's/%//') +if [ $DISK_USAGE -lt 80 ]; then + echo -e "${GREEN}✓${NC} Espaço em disco OK (${DISK_USAGE}% usado)" +else + echo -e "${YELLOW}⚠${NC} Espaço em disco alto (${DISK_USAGE}% usado)" +fi + +# 8. Verificar DNS +echo "" +echo "8. Verificando DNS..." +DNS_IP=$(dig +short meurepositorio.com 2>/dev/null | tail -1) +SERVER_IP=$(curl -s ifconfig.me) + +if [ ! -z "$DNS_IP" ]; then + echo -e " DNS aponta para: $DNS_IP" + echo -e " IP do servidor: $SERVER_IP" + + if [ "$DNS_IP" == "$SERVER_IP" ]; then + echo -e "${GREEN}✓${NC} DNS configurado corretamente" + else + echo -e "${YELLOW}⚠${NC} DNS não aponta para este servidor" + fi +else + echo -e "${YELLOW}⚠${NC} Não foi possível resolver DNS (pode não estar configurado ainda)" +fi + +# 9. Verificar logs recentes +echo "" +echo "9. Últimas linhas do log do Gitea:" +echo "─────────────────────────────────────────────────────────────────" +docker logs gitea --tail 5 2>&1 +echo "─────────────────────────────────────────────────────────────────" + +# 10. Resumo +echo "" +echo "╔══════════════════════════════════════════════════════════════════╗" +echo "║ RESUMO ║" +echo "╚══════════════════════════════════════════════════════════════════╝" + +if [ $GITEA_RUNNING -eq 1 ] && [ $DB_RUNNING -eq 1 ]; then + echo -e "${GREEN}Sistema funcionando corretamente!${NC}" + echo "" + echo "Acesse seu Gitea em:" + if [ -d "/etc/letsencrypt/live/meurepositorio.com" ]; then + echo " https://meurepositorio.com" + else + echo " http://meurepositorio.com" + echo "" + echo -e "${YELLOW}RECOMENDAÇÃO:${NC} Configure SSL executando: ./configure-ssl.sh" + fi +else + echo -e "${RED}Há problemas com o sistema!${NC}" + echo "Execute: /root/gitea/manage-gitea.sh restart" +fi + +echo "" + + diff --git a/configure-ssl.sh b/configure-ssl.sh new file mode 100755 index 0000000..d0e126e --- /dev/null +++ b/configure-ssl.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Script para configurar SSL/TLS para o Gitea com Let's Encrypt +# IMPORTANTE: Só execute este script após confirmar que o DNS está apontando corretamente para este servidor! + +echo "========================================== +Configurando SSL/TLS para meurepositorio.com +==========================================" + +# Verificar se o certbot está instalado +if ! command -v certbot &> /dev/null; then + echo "Instalando certbot..." + apt update + apt install -y certbot python3-certbot-nginx +fi + +# Obter certificado SSL +echo "Obtendo certificado SSL do Let's Encrypt..." +certbot --nginx -d meurepositorio.com -d www.meurepositorio.com --non-interactive --agree-tos --email admin@meurepositorio.com --redirect + +if [ $? -eq 0 ]; then + echo " +==========================================" + echo "✓ SSL configurado com sucesso!" + echo "✓ Seu Gitea agora está disponível em: https://meurepositorio.com" + echo "✓ O certificado será renovado automaticamente." + echo "==========================================" + + # Atualizar configuração do Gitea para HTTPS + echo "Atualizando configuração do Gitea..." + docker exec gitea /bin/sh -c "sed -i 's/ROOT_URL=http:/ROOT_URL=https:/g' /data/gitea/conf/app.ini" 2>/dev/null || true + docker restart gitea + +else + echo " +==========================================" + echo "✗ Erro ao configurar SSL!" + echo "Verifique se:" + echo " 1. O domínio meurepositorio.com aponta para este servidor" + echo " 2. As portas 80 e 443 estão abertas no firewall" + echo " 3. O Nginx está rodando corretamente" + echo "==========================================" + exit 1 +fi + + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100755 index 0000000..60ae812 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,47 @@ +version: "3" + +networks: + gitea: + external: false + +services: + server: + image: gitea/gitea:latest + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=postgres + - GITEA__database__HOST=db:5432 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=gitea + - GITEA__server__DOMAIN=meurepositorio.com + - GITEA__server__SSH_DOMAIN=meurepositorio.com + - GITEA__server__ROOT_URL=https://meurepositorio.com + - GITEA__server__HTTP_PORT=3000 + restart: always + networks: + - gitea + volumes: + - ./data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3000:3000" + - "222:22" + depends_on: + - db + + db: + image: postgres:14 + restart: always + environment: + - POSTGRES_USER=gitea + - POSTGRES_PASSWORD=gitea + - POSTGRES_DB=gitea + networks: + - gitea + volumes: + - ./postgres:/var/lib/postgresql/data + diff --git a/manage-gitea.sh b/manage-gitea.sh new file mode 100755 index 0000000..c3af3c2 --- /dev/null +++ b/manage-gitea.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +# Script de gerenciamento do Gitea + +cd /root/gitea + +case "$1" in + start) + echo "Iniciando Gitea..." + docker compose up -d + ;; + stop) + echo "Parando Gitea..." + docker compose down + ;; + restart) + echo "Reiniciando Gitea..." + docker compose restart + ;; + status) + echo "Status do Gitea:" + docker compose ps + ;; + logs) + echo "Logs do Gitea (Ctrl+C para sair):" + docker compose logs -f gitea + ;; + backup) + echo "Criando backup do Gitea..." + BACKUP_DIR="/root/gitea-backups/$(date +%Y%m%d_%H%M%S)" + mkdir -p "$BACKUP_DIR" + docker exec gitea /bin/sh -c "cd /data && tar czf /tmp/gitea-backup.tar.gz gitea" + docker cp gitea:/tmp/gitea-backup.tar.gz "$BACKUP_DIR/" + cp -r /root/gitea/postgres "$BACKUP_DIR/" + echo "Backup salvo em: $BACKUP_DIR" + ;; + update) + echo "Atualizando Gitea..." + docker compose pull + docker compose up -d + ;; + *) + echo "Uso: $0 {start|stop|restart|status|logs|backup|update}" + echo "" + echo "Comandos disponíveis:" + echo " start - Inicia os containers do Gitea" + echo " stop - Para os containers do Gitea" + echo " restart - Reinicia os containers do Gitea" + echo " status - Mostra o status dos containers" + echo " logs - Mostra os logs em tempo real" + echo " backup - Cria um backup completo" + echo " update - Atualiza o Gitea para a versão mais recente" + exit 1 + ;; +esac + + diff --git a/monitor-porta-443.sh b/monitor-porta-443.sh new file mode 100755 index 0000000..843ef4f --- /dev/null +++ b/monitor-porta-443.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +echo "╔══════════════════════════════════════════════════════════════════╗" +echo "║ MONITORAMENTO DA PORTA 443 (HTTPS) ║" +echo "╚══════════════════════════════════════════════════════════════════╝" +echo "" + +GREEN='\033[0;32m' +RED='\033[0;31m' +YELLOW='\033[1;33m' +NC='\033[0m' + +# Função para testar porta +test_port() { + timeout 3 bash -c "/dev/null + return $? +} + +# Teste inicial +echo "Testando conectividade HTTPS..." +echo "" + +if test_port; then + echo -e "${GREEN}✓ PORTA 443 ESTÁ ABERTA!${NC}" + echo "" + echo "Testando acesso HTTPS completo..." + + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 https://meurepositorio.com 2>/dev/null) + + if [ "$HTTP_CODE" == "200" ] || [ "$HTTP_CODE" == "301" ] || [ "$HTTP_CODE" == "302" ]; then + echo -e "${GREEN}✓ HTTPS funcionando! (HTTP $HTTP_CODE)${NC}" + echo "" + echo "═══════════════════════════════════════════════════════════════" + echo "" + echo -e "${GREEN}🎉 TUDO PRONTO!${NC}" + echo "" + echo "Acesse agora mesmo:" + echo " https://meurepositorio.com" + echo "" + echo "Próximos passos:" + echo " 1. Abra https://meurepositorio.com no navegador" + echo " 2. Complete a configuração inicial do Gitea" + echo " 3. Crie sua conta de administrador" + echo "" + echo "═══════════════════════════════════════════════════════════════" + else + echo -e "${YELLOW}⚠ Porta aberta, mas HTTPS não respondeu corretamente${NC}" + echo "Código HTTP: $HTTP_CODE" + fi +else + echo -e "${RED}✗ Porta 443 ainda está bloqueada${NC}" + echo "" + echo "Possíveis causas:" + echo " - O Meraki ainda está aplicando as regras (aguarde mais um pouco)" + echo " - A regra não foi configurada corretamente" + echo " - Há outro firewall na frente" + echo "" + echo "Verificações no Meraki:" + echo " - Security & SD-WAN > Firewall" + echo " - Certifique-se de que há uma regra Allow para porta 443" + echo " - Protocolo: TCP" + echo " - Destino: ${IP_LOCAL} (ou qualquer)" + echo " - Porta: 443" +fi + +echo "" + + diff --git a/test-https.sh b/test-https.sh new file mode 100755 index 0000000..9e50ee0 --- /dev/null +++ b/test-https.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +echo "═══════════════════════════════════════════════════════════════" +echo " TESTE DE CONECTIVIDADE HTTPS " +echo "═══════════════════════════════════════════════════════════════" +echo "" + +echo "1. Testando porta 443 (HTTPS)..." +if timeout 5 bash -c '/dev/null; then + echo " ✓ Porta 443 está ABERTA" +else + echo " ✗ Porta 443 está FECHADA/BLOQUEADA" +fi + +echo "" +echo "2. Testando porta 80 (HTTP)..." +if timeout 5 bash -c '/dev/null; then + echo " ✓ Porta 80 está ABERTA" +else + echo " ✗ Porta 80 está FECHADA/BLOQUEADA" +fi + +echo "" +echo "3. Testando acesso HTTPS..." +HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 https://meurepositorio.com 2>/dev/null) +if [ "$HTTP_CODE" != "000" ] && [ ! -z "$HTTP_CODE" ]; then + echo " ✓ HTTPS acessível (HTTP $HTTP_CODE)" +else + echo " ✗ HTTPS não acessível (timeout ou conexão recusada)" +fi + +echo "" +echo "4. Verificando certificado SSL..." +if openssl s_client -connect meurepositorio.com:443 -servername meurepositorio.com /dev/null | grep -q "Verify return code: 0"; then + echo " ✓ Certificado SSL válido" +else + echo " ⚠ Não foi possível verificar o certificado (porta pode estar bloqueada)" +fi + +echo "" +echo "═══════════════════════════════════════════════════════════════" +echo "" +echo "Se a porta 443 estiver fechada, você precisa:" +echo " - Acessar o painel do provedor cloud/VPS" +echo " - Ou configurar port forwarding no roteador" +echo " - Ou contatar o administrador de rede" +echo "" +echo "Documentação: /root/gitea/FIREWALL_INFO.txt" +echo "═══════════════════════════════════════════════════════════════" + +