Skip to content

Commit 0f83aa6

Browse files
committed
chore: estrutura raiz do monorepo
- README.md com visão geral do projeto e tabela de fases - LICENSE MIT na raiz (GitHub detecta aqui para exibir badge) - .github/ISSUE_TEMPLATE com templates de bug report e feature request
1 parent 5982508 commit 0f83aa6

4 files changed

Lines changed: 191 additions & 0 deletions

File tree

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
name: Relato de bug
3+
about: Informe um problema para nos ajudar a melhorar
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Descrição
10+
11+
Descreva o problema de forma clara e objetiva.
12+
13+
## Como reproduzir
14+
15+
Passos para reproduzir o comportamento:
16+
17+
1. Execute `...`
18+
2. Observe o erro `...`
19+
20+
## Comportamento esperado
21+
22+
O que deveria acontecer.
23+
24+
## Comportamento atual
25+
26+
O que acontece de fato. Cole a mensagem de erro completa ou os logs relevantes.
27+
28+
## Ambiente
29+
30+
```bash
31+
# Cole a saída dos comandos abaixo
32+
docker compose version
33+
docker version --format '{{.Server.Version}}'
34+
uname -a
35+
```
36+
37+
## Fase e serviço afetado
38+
39+
- [ ] Fase 1 — `glpi-app`
40+
- [ ] Fase 1 — `glpi-cron`
41+
- [ ] Fase 1 — `mariadb`
42+
- [ ] Fase 1 — `redis`
43+
- [ ] Fase 1 — `caddy`
44+
- [ ] Fase 1 — `backup`
45+
- [ ] Fase 2
46+
- [ ] Fase 3
47+
- [ ] Outro
48+
49+
## Logs relevantes
50+
51+
```
52+
Cole aqui a saída de: docker compose logs --tail=50 <serviço>
53+
```
54+
55+
## Informações adicionais
56+
57+
Qualquer contexto adicional que possa ajudar na investigação.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: Sugestão de melhoria
3+
about: Proponha uma nova funcionalidade ou melhoria
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Problema que você quer resolver
10+
11+
Descreva o problema ou a lacuna que motivou esta sugestão.
12+
Ex.: "Sempre preciso rodar X manualmente depois de Y, o que..."
13+
14+
## Solução proposta
15+
16+
Descreva a funcionalidade ou melhoria que você gostaria de ver.
17+
18+
## Fase relacionada
19+
20+
- [ ] Fase 1 — Stack base (GLPI + MariaDB + Redis + Caddy + Backup)
21+
- [ ] Fase 2 — Observabilidade (Prometheus + Grafana + Loki)
22+
- [ ] Fase 3 — AWS + Terraform
23+
- [ ] Geral / monorepo
24+
25+
## Alternativas consideradas
26+
27+
Outras abordagens que você avaliou e por que as descartou.
28+
29+
## Trade-offs
30+
31+
Quais são os custos ou implicações da mudança proposta (complexidade, compatibilidade, manutenção)?
32+
33+
## Contexto adicional
34+
35+
Qualquer outra informação, referências ou exemplos que possam ajudar.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Nilo Lima
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<div align="center">
2+
3+
# 🖥️ GLPI Docker Stack
4+
5+
**Stack production-grade do GLPI 11 construída em fases — do deploy local ao cloud com Terraform.**
6+
7+
![GLPI](https://img.shields.io/badge/GLPI-11.0.7-00A4E4?style=flat-square&logoColor=white)
8+
![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square&logo=docker&logoColor=white)
9+
![Debian](https://img.shields.io/badge/Debian-12_Bookworm-A81D33?style=flat-square&logo=debian&logoColor=white)
10+
![License](https://img.shields.io/badge/License-MIT-green.svg?style=flat-square)
11+
12+
</div>
13+
14+
---
15+
16+
## Sobre o Projeto
17+
18+
Este repositório documenta a evolução de uma stack Docker production-grade para o **GLPI 11** (Gestionnaire Libre de Parc Informatique), construída incrementalmente em fases.
19+
20+
Cada fase representa um marco funcional independente e validado, do deploy local com TLS automático até a infraestrutura gerenciada na AWS com Terraform.
21+
22+
O projeto segue princípios de **infraestrutura como código**, **defesa em profundidade** e **Single Responsibility** em cada container.
23+
24+
---
25+
26+
## Fases
27+
28+
| Fase | Diretório | Status | Descrição |
29+
|:---:|:---|:---:|:---|
30+
| 1 | [`fase_01_glpi_mariadb_caddy/`](fase_01_glpi_mariadb_caddy/) | ✅ Concluída | Stack base: GLPI 11 + MariaDB + Redis + Caddy (TLS) + Backup agendado |
31+
| 2 | `fase_02_Observabilidade/` | 🔜 Planejada | Prometheus + Grafana + Loki + Promtail + Alertmanager |
32+
| 3 | `fase_03_AWS_Terraform/` | 🔜 Planejada | VPC, EC2, RDS, ElastiCache, S3, ALB — IaC completo em Terraform |
33+
34+
---
35+
36+
## Fase 1 — Stack Base
37+
38+
6 containers Docker orquestrados por Docker Compose, com hardening aplicado em todos:
39+
40+
| Container | Tecnologia | Função |
41+
|:---|:---|:---|
42+
| `glpi-app` | GLPI 11.0.7 + PHP 8.3 + Apache | Aplicação web |
43+
| `glpi-cron` | GLPI 11.0.7 | Worker dedicado de tarefas agendadas |
44+
| `mariadb` | MariaDB 11.4 | Banco de dados |
45+
| `redis` | Redis 7.4 Alpine | Cache e sessões PHP |
46+
| `caddy` | Caddy 2.8 Alpine | Reverse proxy + TLS automático (Let's Encrypt) |
47+
| `backup` | Alpine 3.20 | Dump diário do banco + arquivos com restore testado |
48+
49+
→ Veja o [README completo da Fase 1](fase_01_glpi_mariadb_caddy/README.md) para instalação, variáveis e operação.
50+
51+
---
52+
53+
## Estrutura do Repositório
54+
55+
```
56+
.
57+
├── fase_01_glpi_mariadb_caddy/ # Stack base (concluída)
58+
├── fase_02_Observabilidade/ # Observabilidade (planejada)
59+
├── fase_03_AWS_Terraform/ # AWS + IaC (planejada)
60+
└── .github/
61+
└── ISSUE_TEMPLATE/ # Templates de bug report e feature request
62+
```
63+
64+
Cada fase contém seu próprio `docker-compose.yml`, `README.md`, `.env.example` e scripts de automação.
65+
66+
---
67+
68+
## Como Contribuir
69+
70+
Veja [CONTRIBUTING.md](fase_01_glpi_mariadb_caddy/CONTRIBUTING.md) para as convenções do projeto.
71+
72+
---
73+
74+
## Licença
75+
76+
Distribuído sob a licença **MIT**. Veja [LICENSE](LICENSE) para mais informações.
77+
78+
GLPI é distribuído sob **GPL-3.0** — ver [glpi-project.org](https://www.glpi-project.org).

0 commit comments

Comments
 (0)