🐧 Do Shell ao Docker: 3 Projetos Práticos de Linux com IaC no Bootcamp Santander da DIO
Recentemente eu finalizei o Bootcamp Santander Linux, promovido pela Digital Innovation One (DIO). Durante a jornada, mergulhei em três projetos práticos que mostram como aplicar os conceitos de Infraestrutura como Código (IaC) em ambientes Linux. Com uma combinação de Shell Script, Apache, Docker e Nginx, consegui construir soluções automatizadas do zero — e agora compartilho esses aprendizados com você.
🔧 Projeto 1 — Gerenciamento de Usuários e Diretórios com Shell Script
Nesse projeto, a proposta foi automatizar tarefas comuns do dia a dia de um sysadmin: criar usuários, grupos e definir permissões de acesso em um ambiente corporativo.
✅ O script realiza:
- Criação de diretórios (
/publico
,/adm
,/ven
,/sec
) - Criação de grupos de usuários (
GRP_ADM
,GRP_VEN
,GRP_SEC
) - Inclusão de usuários em seus respectivos grupos
- Definição de permissões adequadas para cada diretório
🛠️ Extra: outro script separa a criação de usuários convidados, já com senha padrão e troca obrigatória no primeiro login.
🌐 Projeto 2 — Automação de Servidor Apache e Deploy de Site Estático
O segundo projeto consistiu em provisionar um servidor Apache em uma máquina Linux (rodando em VM com VMware) e automatizar a publicação de um site pessoal.
✅ O script realiza:
- Atualização do sistema
- Instalação do Apache e utilitário
unzip
- Descompactação e cópia do site para
/var/www/html
- Configuração de permissões e reinício do Apache
💡 Bastam poucos comandos para colocar o site no ar localmente via navegador. Simples, mas poderoso para quem quer entender a estrutura de um servidor web.
🐳 Projeto 3 — Microsserviços com Docker: PHP + MySQL + Nginx
O terceiro projeto é o mais robusto, focado em uma arquitetura de microsserviços usando Docker e Docker Compose. A aplicação em PHP se comunica com um banco MySQL, é exposta via Nginx com balanceamento de carga e ainda traz uma visualização em gráfico com Chart.js.
✅ O projeto inclui:
- Banco de dados MySQL com script de inicialização
- Aplicação PHP com inserção e leitura de dados
- Dashboard com visualização gráfica dos registros
- Balanceamento de carga com Nginx
- Comunicação entre containers via rede Docker
📈 Comparando com o Projeto Original
Esse projeto foi inspirado em um repositório base fornecido pelo instrutor Denilson Bonatti durante o bootcamp. A partir dele, implementei melhorias que deixaram a aplicação mais segura, modular e alinhada com boas práticas modernas:
✅Uso de variáveis de ambiente com .env
- Evita hardcode de senhas e IPs, tornando o projeto mais seguro e flexível.
✅ Docker Compose para orquestração
- Orquestra os serviços de forma automática, facilitando o deploy local com apenas um comando.
✅ Dockerfiles customizados
- Criação de imagem própria do PHP com suporte a
mysqli
, e estrutura organizada por pastas.
✅ Separação de responsabilidades
- Divisão do app em arquivos separados:
index.php
,visualizar.php
,dashboard.php
.
✅ Visualização de dados com Chart.js
- Criação de dashboard dinâmica com gráfico de barras para exibir os dados inseridos no banco.
✅ Logs de aplicação
- Registro de inserções em arquivo com
error_log()
, facilitando o monitoramento do sistema.
✅ Estrutura modular
- Organização clara do projeto em
app/
,db/
enginx/
, com comunicação via rede interna Docker.
Essas melhorias refletem um cuidado maior com a escalabilidade, manutenção e boas práticas de desenvolvimento de software moderno com Docker.
🎓 Conclusão
Esses três projetos, realizados dentro do Bootcamp Santander Linux da DIO, foram fundamentais para consolidar meus conhecimentos em Linux, automação e conteinerização. Aplicar conceitos como IaC, separação de responsabilidades e orquestração com Docker trouxe uma nova perspectiva sobre como ambientes profissionais são gerenciados hoje.
Se você está estudando para entrar na área de infraestrutura, DevOps ou quer criar um portfólio sólido com projetos de código aberto, recomendo vivamente essa abordagem prática.
Se quiser trocar uma ideia, me chama 🤗
. . . . . . . .
Eduardo O. Lentz
💻 Portfolio | 🔗 LinkedIn | 📂 GitHub | 📝 Medium | 📸 Instagram