|
1 |
| -# Gerador de Senhas com Redis |
| 1 | +# Giropops Senhas |
| 2 | + |
| 3 | +O projeto **Giropops Senhas** é uma aplicação web desenvolvida com Flask que permite a geração e gerenciamento de senhas. A aplicação utiliza Redis para armazenamento de dados e é containerizada usando Docker. Além disso, o projeto inclui integração contínua com GitHub Actions para construção e envio de imagens Docker, bem como verificação de vulnerabilidades. |
| 4 | + |
| 5 | +## Ferramentas e Tecnologias Utilizadas |
| 6 | + |
| 7 | +- **Python**: Linguagem de programação principal. |
| 8 | +- **Flask**: Framework web utilizado para construir a aplicação. |
| 9 | +- **Redis**: Banco de dados em memória utilizado para armazenamento de dados. |
| 10 | +- **Docker**: Utilizado para containerização da aplicação. |
| 11 | +- **GitHub Actions**: Utilizado para integração contínua e automação de tarefas. |
| 12 | +- **Cosign**: Utilizado para assinatura e verificação de imagens de contêiner. |
| 13 | +- **Kyverno**: Utilizado para políticas de segurança no Kubernetes. |
| 14 | +- **Kubernetes**: Utilizado para orquestração de contêineres em produção. |
| 15 | +- **Prometheus**: Utilizado para monitoramento e alertas. |
| 16 | +- **APKO**: Utilizado para construção de imagens de contêiner. |
| 17 | +- **Melange**: Utilizado para construção de pacotes. |
| 18 | +- **Helm**: Utilizado para gerenciamento de pacotes Kubernetes. |
| 19 | + |
| 20 | +## Extras |
| 21 | + |
| 22 | +- **Helmfile**: Utilizado para gerenciar múltiplos gráficos Helm. |
| 23 | +- **Docker Compose**: Utilizado para orquestração de contêineres. |
| 24 | +- **Hadolint**: Utilizado para análise de Dockerfiles. |
| 25 | +- **Trivy**: Utilizado para análise de vulnerabilidades em imagens de contêiner. |
| 26 | +- **Snyk**: Utilizado para análise de vulnerabilidades em dependências. |
| 27 | +- **CodeQL**: Utilizado para análise de código estático. |
| 28 | +- **CodeRabbit**: IA para Code Review e resumo de pull requests. |
| 29 | +- **Kind**: Utilizado para execução de clusters Kubernetes em Docker. |
| 30 | +- **Cert Manager**: Utilizado para gerenciamento de certificados TLS. |
| 31 | + |
| 32 | +## Utilizando a aplicação localmente |
2 | 33 |
|
3 |
| -Este é um projeto de uma aplicação em Python que gera senhas aleatórias e utiliza o Redis como um banco de dados para armazenamento temporário das senhas geradas. Este README.md fornecerá instruções sobre como executar a aplicação localmente e também inclui informações sobre como dockerizar o projeto. |
| 34 | +1. Clone o repositório: |
4 | 35 |
|
5 |
| -### Pré-requisitos |
| 36 | +```bash |
| 37 | +git clone https://github.com/Tech-Preta/giropops-senhas.git |
| 38 | +cd giropops-senhas |
| 39 | +``` |
6 | 40 |
|
7 |
| -* Git |
8 |
| -* Python3 |
9 |
| -* Pip |
10 |
| -* Docker (opcional, se desejar executar via contêiner) |
| 41 | +2. Construa a imagem Docker da aplicação e do Redis: |
11 | 42 |
|
12 |
| -## Executando a aplicação local |
| 43 | +```bash |
| 44 | +docker build -f Dockerfile -t nataliagranato/giropops-senhas:v1.0.0 . |
| 45 | +docker build -f Dockerfile.redis -t nataliagranato/redis:v1.0.0 . |
| 46 | +``` |
13 | 47 |
|
14 |
| -1. Clone o repositório: |
| 48 | +3. Inicie a aplicação e o Redis: |
15 | 49 |
|
16 |
| -``` |
17 |
| -https://github.com/nataliagranato/giropops-senhas.git |
| 50 | +```bash |
| 51 | +docker run -d --name redis -p 6380:6379 nataliagranato/redis:v1.0.0 |
| 52 | +docker run -d --name giropops-senhas -p 5000:5000 --link redis:redis nataliagranato/giropops-senhas:v1.0.0 |
18 | 53 | ```
|
19 | 54 |
|
20 |
| -2. Entre no diretório de trabalho: |
| 55 | +Se preferir, você pode usar o Docker Compose para iniciar a aplicação e o Redis: |
21 | 56 |
|
22 |
| -``` |
23 |
| -cd giropops-senhas |
| 57 | +```bash |
| 58 | +docker-compose up -d |
24 | 59 | ```
|
25 | 60 |
|
26 |
| -3. Atualize o sistema operacional: |
| 61 | +4. Acesse a aplicação em seu navegador: |
27 | 62 |
|
28 | 63 | ```
|
29 |
| -sudo apt update -y |
| 64 | +http://localhost:5000 |
30 | 65 | ```
|
31 | 66 |
|
32 |
| -4. Certifique-se de ter o Python instalado e instale o gerenciador de pacotes Pip: |
| 67 | +## Contribuindo |
33 | 68 |
|
34 |
| -``` |
35 |
| -sudo apt-get install python3-pip -y |
36 |
| -``` |
| 69 | +Se você deseja contribuir com o projeto, siga as instruções abaixo: |
37 | 70 |
|
38 |
| -5. Atualize o projeto: |
| 71 | +**Criando uma Issue:** |
39 | 72 |
|
40 |
| -``` |
41 |
| -pip install --upgrade Flask |
42 |
| -``` |
| 73 | +### Atualização do README.md |
43 | 74 |
|
44 |
| -**Esse passo foi necessário, pois tive o seguinte problema:** |
| 75 | +Aqui está o README.md atualizado para incluir informações sobre os templates de pull request e issue. |
45 | 76 |
|
46 |
| -``` |
47 |
| -flask run --host=0.0.0.0 |
48 |
| -Traceback (most recent call last): |
49 |
| - File "/usr/local/bin/flask", line 5, in <module> |
50 |
| - from flask.cli import main |
51 |
| - File "/usr/local/lib/python3.8/dist-packages/flask/__init__.py", line 7, in <module> |
52 |
| - from .app import Flask as Flask |
53 |
| - File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 27, in <module> |
54 |
| - from . import cli |
55 |
| - File "/usr/local/lib/python3.8/dist-packages/flask/cli.py", line 17, in <module> |
56 |
| - from .helpers import get_debug_flag |
57 |
| - File "/usr/local/lib/python3.8/dist-packages/flask/helpers.py", line 14, in <module> |
58 |
| - from werkzeug.urls import url_quote |
59 |
| -ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.8/dist-packages/werkzeug/urls.py) |
60 |
| -``` |
| 77 | +```markdown |
| 78 | +# Giropops Senhas |
61 | 79 |
|
62 |
| -Se necessário, adicione uma versão específica do Werkzeug ao arquivo requirements.txt, como Werkzeug==2.2.2, para resolver possíveis problemas de importação. |
| 80 | +O projeto **Giropops Senhas** é uma aplicação web |
63 | 81 |
|
64 |
| -6. Instale o Redis, uma dependência do projeto: |
| 82 | + desenvol |
65 | 83 |
|
66 |
| -``` |
67 |
| -sudo apt-get install redis -y |
68 |
| -``` |
| 84 | +vida com Flask que permite a geração e gerenciamento de senhas. A aplicação utiliza Redis para armazenamento de dados e é containerizada usando Docker. Além disso, o projeto inclui integração contínua com GitHub Actions para construção e envio de imagens Docker, bem como verificação de vulnerabilidades. |
69 | 85 |
|
70 |
| -7. Inicie o Redis: |
| 86 | +## Ferramentas e Tecnologias Utilizadas |
71 | 87 |
|
72 |
| -``` |
73 |
| -sudo systemctl start redis && systemctl status redis |
74 |
| -``` |
| 88 | +- **Python**: Linguagem de programação principal. |
| 89 | +- **Flask**: Framework web utilizado para construir a aplicação. |
| 90 | +- **Redis**: Banco de dados em memória utilizado para armazenamento de dados. |
| 91 | +- **Docker**: Utilizado para containerização da aplicação. |
| 92 | +- **GitHub Actions**: Utilizado para integração contínua e automação de tarefas. |
| 93 | +- **Cosign**: Utilizado para assinatura e verificação de imagens de contêiner. |
| 94 | +- **Kyverno**: Utilizado para políticas de segurança no Kubernetes. |
| 95 | +- **Kubernetes**: Utilizado para orquestração de contêineres em produção. |
| 96 | +- **Prometheus**: Utilizado para monitoramento e alertas. |
| 97 | +- **APKO**: Utilizado para construção de imagens de contêiner. |
| 98 | +- **Melange**: Utilizado para construção de pacotes. |
| 99 | +- **Helm**: Utilizado para gerenciamento de pacotes Kubernetes. |
75 | 100 |
|
76 |
| -8. Instale todas as dependências do Python: |
| 101 | +## Extras |
77 | 102 |
|
78 |
| -``` |
79 |
| -pip install --no-cache-dir -r requirements.txt |
80 |
| -``` |
| 103 | +- **Helmfile**: Utilizado para gerenciar múltiplos gráficos Helm. |
| 104 | +- **Docker Compose**: Utilizado para orquestração de contêineres. |
| 105 | +- **Hadolint**: Utilizado para análise de Dockerfiles. |
| 106 | +- **Trivy**: Utilizado para análise de vulnerabilidades em imagens de contêiner. |
| 107 | +- **Snyk**: Utilizado para análise de vulnerabilidades em dependências. |
| 108 | +- **CodeQL**: Utilizado para análise de código estático. |
| 109 | +- **CodeRabbit**: IA para Code Review e resumo de pull requests. |
| 110 | +- **Kind**: Utilizado para execução de clusters Kubernetes em Docker. |
| 111 | +- **Cert Manager**: Utilizado para gerenciamento de certificados TLS. |
81 | 112 |
|
82 |
| -9. Crie uma variável de ambiente para que a aplicação encontre o Redis: |
| 113 | +## Utilizando a aplicação localmente |
83 | 114 |
|
84 |
| -``` |
85 |
| -export REDIS_HOST=localhost |
| 115 | +1. Clone o repositório: |
| 116 | + |
| 117 | +```bash |
| 118 | +git clone https://github.com/Tech-Preta/giropops-senhas.git |
| 119 | +cd giropops-senhas |
86 | 120 | ```
|
87 | 121 |
|
88 |
| -10. Iniciando a aplicação: |
| 122 | +2. Construa a imagem Docker da aplicação e do Redis: |
89 | 123 |
|
90 |
| -``` |
91 |
| -flask run --host=0.0.0.0 |
| 124 | +```bash |
| 125 | +docker build -f Dockerfile -t nataliagranato/giropops-senhas:v1.0.0 . |
| 126 | +docker build -f Dockerfile.redis -t nataliagranato/redis:v1.0.0 . |
92 | 127 | ```
|
93 | 128 |
|
94 |
| -# Dockerização do Projeto |
| 129 | +3. Inicie a aplicação e o Redis: |
95 | 130 |
|
96 |
| -Para dockerizar o projeto, siga estas etapas: |
| 131 | +```bash |
| 132 | +docker run -d --name redis -p 6380:6379 nataliagranato/redis:v1.0.0 |
| 133 | +docker run -d --name giropops-senhas -p 5000:5000 --link redis:redis nataliagranato/giropops-senhas:v1.0.0 |
| 134 | +``` |
97 | 135 |
|
98 |
| -1. Construa a imagem docker: |
| 136 | +Se preferir, você pode usar o Docker Compose para iniciar a aplicação e o Redis: |
99 | 137 |
|
100 |
| -``` |
101 |
| -docker build -t nataliagranato/linuxtips-giropops-senhas:1.0 . |
| 138 | +```bash |
| 139 | +docker-compose up -d |
102 | 140 | ```
|
103 | 141 |
|
104 |
| -2. Inicie um contêiner Redis: |
| 142 | +4. Acesse a aplicação em seu navegador: |
105 | 143 |
|
106 | 144 | ```
|
107 |
| -docker container run -d -p 6000:6379 --name redis redis:alpine3.19 |
| 145 | +http://localhost:5000 |
108 | 146 | ```
|
109 | 147 |
|
110 |
| -3. Descubra o IPAddress do Redis: |
| 148 | +## Contribuindo |
111 | 149 |
|
112 |
| -``` |
113 |
| -docker inspect ID_REDIS | grep IPAddress |
114 |
| -``` |
| 150 | +Contribuições são bem-vindas! Por favor, siga as diretrizes abaixo ao contribuir para este projeto. |
115 | 151 |
|
116 |
| -4. Executando a aplicação: |
| 152 | +### Criando uma Issue |
117 | 153 |
|
118 |
| -``` |
119 |
| -docker run -d --name giropops-senhas -p 5000:5000 --env REDIS_HOST=IP_REDIS giropops-senhas:5.0 |
120 |
| -``` |
| 154 | +Se você encontrar um bug ou tiver uma ideia para uma nova funcionalidade, por favor, crie uma issue usando o template apropriado: |
121 | 155 |
|
122 |
| -Ou |
| 156 | +1. Vá para a aba "Issues" do repositório. |
| 157 | +2. Clique em "New issue". |
| 158 | +3. Selecione o template de bug ou feature request. |
| 159 | +4. Preencha as informações necessárias e envie a issue. |
123 | 160 |
|
124 |
| -5. Use o Docker Compose para construir e iniciar os serviços: |
| 161 | +### Fazendo um Pull Request |
125 | 162 |
|
126 |
| -``` |
127 |
| -docker-compose up -d |
128 |
| -``` |
| 163 | +Para contribuir com código, siga os passos abaixo: |
129 | 164 |
|
130 |
| -Isso iniciará tanto a aplicação quanto o contêiner Redis. A aplicação estará disponível em <http://localhost:5000/>. |
| 165 | +1. Fork o repositório. |
| 166 | +2. Crie uma nova branch para sua feature ou correção de bug (`git checkout -b minha-feature`). |
| 167 | +3. Faça as mudanças necessárias e adicione testes, se aplicável. |
| 168 | +4. Commit suas mudanças (`git commit -m 'Adiciona minha nova feature'`). |
| 169 | +5. Push para a branch (`git push origin minha-feature`). |
| 170 | +6. Abra um pull request usando o template de pull request. |
131 | 171 |
|
132 |
| -Certifique-se de que todas as portas necessárias estejam liberadas e de que não haja conflitos com outras aplicações em execução em sua máquina. |
| 172 | +### Templates |
133 | 173 |
|
134 |
| -Observação: As versões dos pacotes e dependências podem variar. Certifique-se de usar as versões mais recentes e compatíveis com seu ambiente. |
| 174 | +- [Template de Pull Request](.github/PULL_REQUEST_TEMPLATE.md) |
| 175 | +- [Template de Issue de Bug](.github/ISSUE_TEMPLATE/bug_report.md) |
0 commit comments