Skip to content

O server-general é o "cérebro" da infraestrutura do projeto. É onde ficam rodando todas as aplicações web (frontend e backend) de forma organizada e segura.

Notifications You must be signed in to change notification settings

eduardolecdt/base-server-general

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Server General

O que é?

O server-general é o "cérebro" da infraestrutura do projeto. É onde ficam rodando todas as aplicações web (frontend e backend) de forma organizada e segura.

Em termos simples:

Imagine que você tem uma casa (servidor) e precisa organizar vários quartos (aplicações) para diferentes pessoas (usuários). O server-general é como o "gerente da casa" que:

  • Organiza tudo: Coloca cada aplicação no lugar certo
  • Protege a casa: Configura segurança (SSL, senhas, etc.)
  • Mantém tudo funcionando: Se algo quebra, ele conserta sozinho
  • Permite crescimento: Se precisar de mais espaço, ele adiciona facilmente

O que ele faz:

  1. Frontend: A parte que o usuário vê (site, painel admin)
  2. Backend: A parte que processa dados (APIs)
  3. Proxy: O "porteiro" que direciona o tráfego
  4. Segurança: Protege tudo com certificados SSL
  5. Backup: Mantém cópias de segurança

Por que usar?

  • Confiável: Se uma parte falha, outras continuam funcionando
  • Seguro: Proteção automática contra ataques
  • Escalável: Fácil de crescer conforme necessário
  • Automático: Gerencia tudo sozinho

Estrutura e Funcionalidades

1. Orquestração Principal (up.sh)

  • Cria uma rede Docker overlay chamada traefik-public
  • Inicia os serviços na ordem: Traefik → Frontend → Backend
  • Coordena todo o stack de aplicações

2. Configuração do Docker Swarm (install.sh)

  • Inicializa o cluster Docker Swarm
  • Necessário executar antes de usar os outros scripts

3. Proxy Reverso e SSL (Traefik)

  • Traefik v2.11 como proxy reverso
  • SSL automático com Let's Encrypt
  • Redirecionamento HTTPS forçado
  • Rate limiting e compressão habilitados
  • Certificados SSL gerenciados automaticamente

4. Backend (APIs)

  • api-web: API principal da aplicação
  • api-admin: API administrativa
  • api-upload: API de upload de arquivos

Cada API tem:

  • 2 réplicas para alta disponibilidade
  • 200MB de limite de memória
  • Política de restart automático
  • Rollback automático em caso de falha

5. Frontend (Aplicações)

  • nuxt-web: Aplicação principal
  • nuxt-admin: Painel administrativo

Cada frontend tem:

  • 2 réplicas para alta disponibilidade
  • 30MB de limite de memória
  • Nginx servindo arquivos estáticos

6. Scripts de Gerenciamento

  • up.sh: Inicia todo o stack
  • stop.sh: Para todos os serviços
  • restart.sh: Reinicia serviços específicos
  • maintain.sh: Scripts de manutenção
  • helpers/docker-login.sh: Autenticação no registry

Características Técnicas

  • Alta Disponibilidade: Múltiplas réplicas de cada serviço
  • Escalabilidade: Fácil adição de novos nós ao cluster
  • Segurança: SSL automático, rate limiting, autenticação
  • Monitoramento: Logs centralizados e health checks
  • Zero Downtime: Deploy com rolling updates
  • Backup: Certificados e configurações persistidos

Instalação

  1. Inicializar Docker Swarm:
bash install.sh
  1. Iniciar todo o stack:
bash up.sh
  1. Parar todos os serviços:
bash stop.sh

Uso

Este setup é ideal para aplicações em produção que precisam de alta disponibilidade, escalabilidade e segurança, especialmente para sistemas que lidam com dados sensíveis.

Estrutura de Arquivos

devops/server-general/
├── backend/           # Configurações das APIs
│   ├── stack.yml
│   ├── up.sh
│   └── restart.sh
├── frontend/          # Configurações dos frontends
│   ├── stack.yml
│   ├── up.sh
│   └── restart.sh
├── traefik/           # Proxy reverso e SSL
│   ├── stack.yml
│   ├── up.sh
│   └── restart.sh
├── helpers/           # Scripts auxiliares
│   └── docker-login.sh
├── up.sh              # Script principal
├── install.sh         # Inicialização do Swarm
├── stop.sh            # Parar serviços
└── maintain.sh        # Manutenção

About

O server-general é o "cérebro" da infraestrutura do projeto. É onde ficam rodando todas as aplicações web (frontend e backend) de forma organizada e segura.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages