An open API service indexing awesome lists of open source software.

https://github.com/raphaelamonteiro/kitsune-network-infrastructure

Kitsune is a project focused on designing and simulating a robust, scalable, and secure enterprise network environment featuring SSH, VPN, FTP/SFTP, load balancing, and Docker-based services, providing a reliable foundation for deploying modern web applications.
https://github.com/raphaelamonteiro/kitsune-network-infrastructure

devops docker linux load-balancer networking nginx reverse-proxy vpn

Last synced: 19 days ago
JSON representation

Kitsune is a project focused on designing and simulating a robust, scalable, and secure enterprise network environment featuring SSH, VPN, FTP/SFTP, load balancing, and Docker-based services, providing a reliable foundation for deploying modern web applications.

Awesome Lists containing this project

README

          

# 🦊 Kitsune Network Infrastructure

banner

![Status](https://img.shields.io/badge/Status-ConcluĂ­do-5E0006?style=for-the-badge)


Introdução |
Escopo |
Tecnologias |
Demonstração |
ReferĂŞncias |
Estrutura do RepositĂłrio |
Arquitetura |
Créditos


## 📋 Introdução

O **Kitsune Network Infrastructure** é um projeto acadêmico que demonstra a implantação de uma infraestrutura web segura, escalável e distribuída na AWS.

A arquitetura utiliza duas instâncias EC2 interligadas por uma VPN WireGuard, com HAProxy atuando como balanceador de carga e proxy reverso, além do uso do Nginx como servidor web. A aplicação é executada em contêineres Docker, utilizando PostgreSQL para persistência de dados.

O projeto foi desenvolvido com foco em conceitos de infraestrutura moderna, segurança de redes, alta disponibilidade e implantação de aplicações web em ambientes cloud.

Os principais conceitos e componentes implementados incluem:

- Configuração de instâncias AWS EC2.
- Implementação de uma VPN segura para comunicação em rede privada.
- Configuração do HAProxy como balanceador de carga e proxy reverso.
- Configuração do Nginx para aplicação web.
- Containerização e orquestração dos serviços utilizando Docker e Docker Compose.
- PersistĂŞncia de dados utilizando PostgreSQL em contĂŞineres Docker.
- Implementação de políticas CORS para comunicação segura entre origens.

## đź“‘ Escopo

Este projeto aborda a configuração de uma infraestrutura web segura e escalável na AWS, incluindo os seguintes tópicos:

### 1. Provisionamento da Instância EC2
Criação e configuração de instâncias EC2 para hospedagem da aplicação.

### 2. Configuração de VPN com WireGuard
Implementação de uma VPN segura utilizando WireGuard para acesso remoto à infraestrutura.

### 3. Configuração do Nginx e HAProxy
Instalação e configuração do Nginx como servidor web.
Implementação do HAProxy para distribuição de carga (Load Balancing) e proxy reverso.

### 4. Containerização com Docker e Docker Compose
Criação, gerenciamento e orquestração dos serviços da aplicação utilizando contêineres Docker.

### 5. Balanceamento de Carga
Aplicação da estratégia Round Robin através do HAProxy para distribuição de requisições entre os serviços.

### 6. Políticas de Segurança CORS
Exemplos práticos de configuração de políticas CORS para controle seguro de acesso entre diferentes origens.

## đźš© Objetivos
- Provisionar uma infraestrutura na AWS utilizando EC2.
- Garantir acesso seguro através de VPN WireGuard.
- Configurar servidores web utilizando Nginx.
- Distribuir tráfego e aumentar disponibilidade com HAProxy.
- Aplicar boas práticas de segurança com políticas CORS.

## ⚙️ Tecnologias

![AWS](https://img.shields.io/badge/Amazon_Web_Services-5E0006?style=for-the-badge&logo=aws&logoColor=white)
![Ubuntu](https://img.shields.io/badge/Ubuntu-5E0006?style=for-the-badge&logo=ubuntu&logoColor=white)
![Linux](https://img.shields.io/badge/Linux-5E0006?style=for-the-badge&logo=linux&logoColor=white)
![Docker](https://img.shields.io/badge/Docker-5E0006?style=for-the-badge&logo=docker&logoColor=white)
![Nginx](https://img.shields.io/badge/Nginx-5E0006?style=for-the-badge&logo=nginx&logoColor=white)
![HAProxy](https://img.shields.io/badge/HAProxy-5E0006?style=for-the-badge&logo=haproxy&logoColor=white)
![Wireguard](https://img.shields.io/badge/Wireguard-5E0006?style=for-the-badge&logo=wireguard&logoColor=white)
![PHP](https://img.shields.io/badge/PHP-5E0006?style=for-the-badge&logo=php&logoColor=white)
![React](https://img.shields.io/badge/React-5E0006?style=for-the-badge&logo=react&logoColor=white)
![TypeScript](https://img.shields.io/badge/TypeScript-5E0006?style=for-the-badge&logo=typescript&logoColor=white)
![Vite](https://img.shields.io/badge/Vite-5E0006?style=for-the-badge&logo=vite&logoColor=white)
![Axios](https://img.shields.io/badge/axios-5E0006?&style=for-the-badge&logo=axios&logoColor=white)
![PostgreSQL](https://img.shields.io/badge/PostgreSQL-5E0006?style=for-the-badge&logo=postgresql&logoColor=white)
![Git](https://img.shields.io/badge/Git-5E0006?style=for-the-badge&logo=git&logoColor=white)

## 📦 Estrutura do Repositório

```bash
kitsune-network-infrastructure/
│
├── docs/
│ ├── screenshots/ # Capturas de tela do projeto
│ ├── concepts.md # Documentação com aprendizados e conceitos do sistema
│ └── diagrama-redes.jpeg # Diagrama visual da infraestrutura de rede
│
├── kitsune-backend/
│ ├── .env.example # Exemplo de variáveis de ambiente
│ ├── api.php # Configuração e entrada da API
│ └── auth.php # Lógica de autenticação
│
├── kitsune-frontend/
│ ├── public/ # Arquivos estáticos servidos diretamente
│ ├── src/ # Código-fonte principal da aplicação (components, pages, services)
│ ├── .env.example # Modelo de variáveis de ambiente
│ ├── vite.config.ts # Configuração do Vite
│ ├── tsconfig.json # Configuração principal do TypeScript
│ ├── tsconfig.app.json # Configuração do TypeScript (aplicação)
│ ├── tsconfig.node.json # Configuração do TypeScript (Node)
│ ├── vite-env.d.ts # Tipagens globais do Vite
│ ├── package.json # Dependências e scripts do projeto
│ ├── package-lock.json # Lockfile de dependências
│ ├── index.html # Entry point da aplicação
│ └── README.md # Documentação do frontend
│
├── scripts/
│ ├── init.sql # Exemplo de script SQL para criar o banco automaticamente
│ └── demo.sh # Script de automação e diagnóstico do sistema
│
├── docker-compose.yml # Define serviços, volumes e redes Docker
├── haproxy.cfg # Configuração do balanceador de carga HAProxy
├── .gitignore # Arquivos ignorados pelo Git
└── README.md # Documentação principal do projeto
```

## đź“– ReferĂŞncias

- Criação e configuração das instâncias: [AWS Network Infrastructure for Deployment of WebApps](https://github.com/Ivan-Duarte/AWS-Network-Infrastructure-for-Deployment-of-WebApps/blob/main/docs/EC2-Setup.md)
- Docker: [Docker Ă© Legal!](https://github.com/jeancosta4/Docker)

## đź§± Arquitetura



## 🎞️ Demonstração

https://github.com/user-attachments/assets/b74bb8af-3347-4ed2-aad4-21bdb9f1e5f0

>⚠️ Pode haver um pequeno delay no redirecionamento, isso é um detalhe de timing do React que não afeta a segurança ou a funcionalidade da infraestrutura.

## 🧡 Créditos

💻 Desenvolvido por **Raphaela Monteiro** como projeto acadêmico de Infraestrutura de Redes, sob orientação do professor **Jean Carlos**.

- Orientação: [@jeancosta4](https://github.com/jeancosta4)
- Inspirado em: AWS Network Infrastructure for Deployment of WebApps — [Ivan Duarte](https://github.com/Ivan-Duarte)
DisponĂ­vel em: https://github.com/Ivan-Duarte/AWS-Network-Infrastructure-for-Deployment-of-WebApps