Skip to content

Instantly share code, notes, and snippets.

@tiagolpadua
Created October 5, 2026 12:21
Show Gist options
  • Select an option

  • Save tiagolpadua/42857d20060adc67c4e824a45e9c7b6f to your computer and use it in GitHub Desktop.

Select an option

Save tiagolpadua/42857d20060adc67c4e824a45e9c7b6f to your computer and use it in GitHub Desktop.
Mentoria CREMESP · PHP Moderno — Guia de preparação do ambiente
# Guia de preparação do ambiente
**Mentoria CREMESP · PHP Moderno com Laravel, Bootstrap 5 e CI/CD**
Trilha DevOps (semanas 1 a 6) · Instrutor: Tiago Pádua
Este guia explica o que instalar, como verificar a instalação e como criar e clonar o seu repositório do projeto **Agenda de Eventos**, que vamos evoluir ao longo das seis semanas.
| Prazo | O que precisa estar pronto |
|---|---|
| **Antes da 1ª mentoria (13/10)** | Conta no GitHub, Git configurado, repositório criado e clonado (seções 1 a 6) |
| **Antes da 2ª mentoria (20/10)** | Docker funcionando e conta no Docker Hub (seções 4 e 5) |
> **Não conseguiu instalar algo na sua máquina?** Use o **GitHub Codespaces** (seção 7): um ambiente pronto no navegador, sem instalar nada.
---
## 1. O que você vai precisar
| Item | Para quê | A partir da | Obrigatório? |
|---|---|---|---|
| Conta no **GitHub** | Repositório, pull requests, GitHub Actions | Semana 1 | Sim |
| **Git** | Versionar e enviar o código | Semana 1 | Sim |
| Editor de código (sugestão: **VS Code**) | Editar o projeto | Semana 1 | Sim |
| **PHP 8.3 ou superior** + **Composer** | Rodar a aplicação e os testes na sua máquina | Semana 1 | Recomendado |
| **Docker** (com Docker Compose) | Containers, MySQL e NGINX | Semana 2 | Sim |
| Conta no **Docker Hub** | Publicar a imagem da aplicação | Semana 2 | Sim |
---
## 2. Contas
1. **GitHub:** crie uma conta em <https://github.com/signup> (se ainda não tiver). Recomendado: ative a **autenticação em dois fatores** em *Settings → Password and authentication*.
2. **Docker Hub** (até a semana 2): crie uma conta gratuita em <https://hub.docker.com/signup>.
> Use de preferência uma conta **pessoal**. Os repositórios do treinamento serão **públicos**: não coloque senhas, tokens ou dados reais neles.
---
## 3. Escolha o seu caminho
| Caminho | Quando escolher |
|---|---|
| **A. Instalar na sua máquina** (seção 4) | Você tem permissão de administrador e pode instalar programas |
| **B. GitHub Codespaces** (seção 7) | Máquina corporativa com restrições, sem permissão de administrador, ou problemas com Docker |
> **Atenção, máquinas institucionais:** o **Docker Desktop** é gratuito para uso pessoal e educacional, mas o uso profissional em organizações grandes e órgãos públicos pode exigir licença paga. Se for usar a máquina do trabalho, confirme a política com a área de TI. Alternativas sem custo: **Codespaces**, **Docker Engine no WSL2/Linux**, **Podman Desktop** ou **Rancher Desktop**.
---
## 4. Instalação na sua máquina
### 4.1 Windows (recomendado: WSL2 + Ubuntu)
O projeto usa scripts de terminal (bash). No Windows, o caminho mais tranquilo é trabalhar dentro do **WSL2** (um Linux integrado ao Windows).
1. Abra o **PowerShell como administrador** e rode o comando abaixo. Depois, reinicie o computador.
```powershell
wsl --install
```
2. Abra o aplicativo **Ubuntu**, crie seu usuário e senha do Linux e instale as ferramentas:
```bash
sudo apt update
sudo apt install -y git curl unzip composer \
php-cli php-sqlite3 php-mysql php-xml php-mbstring
```
3. Instale o **VS Code** no Windows (<https://code.visualstudio.com/>) e a extensão **WSL**. Para abrir um projeto que está no Ubuntu, rode `code .` no terminal do Ubuntu.
4. **Docker** (semana 2), uma das opções:
- **Docker Desktop** para Windows, com a integração com o WSL ligada (*Settings → Resources → WSL integration*).
- **Docker Engine** instalado dentro do Ubuntu do WSL, seguindo a documentação oficial para Ubuntu.
> Trabalhe com os projetos **dentro** do Linux (ex.: `~/projetos`), e não em `C:\...`. Fica bem mais rápido e evita problemas de quebra de linha.
### 4.2 macOS
1. Instale o **Homebrew** (<https://brew.sh/>), se ainda não tiver.
2. Instale as ferramentas:
```bash
brew install git php composer
```
3. Instale o **VS Code** (<https://code.visualstudio.com/>).
4. **Docker** (semana 2): **Docker Desktop** para Mac (escolha a versão *Apple Silicon* ou *Intel*), ou uma alternativa como Podman Desktop, Rancher Desktop ou OrbStack.
### 4.3 Linux (Ubuntu/Debian)
```bash
sudo apt update
sudo apt install -y git curl unzip composer \
php-cli php-sqlite3 php-mysql php-xml php-mbstring
```
**Docker** (semana 2): instale o **Docker Engine** pela documentação oficial e adicione seu usuário ao grupo `docker`. Depois, saia e entre de novo na sessão:
```bash
sudo usermod -aG docker $USER
```
---
## 5. Configure o Git
Rode **uma única vez** (no Windows, dentro do Ubuntu do WSL):
```bash
git config --global user.name "Seu Nome"
git config --global user.email "seu-email@exemplo.com" # o mesmo e-mail da conta do GitHub
git config --global init.defaultBranch main
```
**Autenticação com o GitHub.** O GitHub **não aceita a senha da conta** no `git push` via HTTPS. Escolha uma opção:
| Opção | Como |
|---|---|
| **GitHub CLI** (mais simples) | Instale o `gh` (<https://cli.github.com/>) e rode `gh auth login`, escolhendo **HTTPS** |
| **Git Credential Manager** | Já vem no Git para Windows e abre o navegador para você autorizar no primeiro `push` |
| **Chave SSH** | Siga o guia "Conectar-se ao GitHub com SSH" da documentação do GitHub |
---
## 6. Crie e clone o seu repositório
### 6.1 Crie o repositório a partir do template
1. Acesse **<https://github.com/tiagolpadua/php-moderno-agenda-eventos>**.
2. Clique em **Use this template → Create a new repository**.
3. Em *Owner*, escolha **a sua conta**. Use o nome `php-moderno-agenda-eventos` e marque **Public**.
4. Clique em **Create repository**.
> Não use "Fork": durante a trilha você vai configurar Actions, Dependabot e regras de proteção **no seu próprio repositório**.
### 6.2 Clone e rode a aplicação
Troque `SEU-USUARIO` pelo seu usuário do GitHub:
```bash
mkdir -p ~/projetos && cd ~/projetos
git clone https://github.com/SEU-USUARIO/php-moderno-agenda-eventos.git
cd php-moderno-agenda-eventos
composer install # instala as dependências (PHPUnit)
composer test # deve terminar com "OK (10 tests ...)"
composer serve # sobe a aplicação em http://localhost:8000
```
Abra **<http://localhost:8000>** no navegador. Você deve ver a **Agenda de Eventos** com três eventos de exemplo. Para parar o servidor, use `Ctrl + C` no terminal.
> Sem Composer? Dá para ver a aplicação funcionando com `php -S localhost:8000 -t public`.
### 6.3 Teste o envio (push)
Confirme que você consegue enviar alterações para o seu repositório:
```bash
git switch -c teste/push
git commit --allow-empty -m "chore: teste de push"
git push -u origin teste/push
```
Se o push funcionou, a branch `teste/push` aparece no GitHub. Pode apagá-la depois: `git push origin --delete teste/push`.
---
## 7. Alternativa: GitHub Codespaces (sem instalar nada)
1. No **seu** repositório (criado na seção 6.1), clique em **Code → Codespaces → Create codespace on main**.
2. Aguarde o ambiente abrir. É um VS Code no navegador, já com o projeto clonado.
3. No terminal do Codespace, confira as ferramentas e rode a aplicação:
```bash
php -v && composer --version && docker --version
composer install && composer test
composer serve
```
4. Quando a aplicação subir, o Codespaces oferece **abrir a porta 8000** no navegador (aba **Ports**).
> O plano gratuito do GitHub inclui uma **cota mensal** de uso do Codespaces. **Pare o Codespace** quando terminar (*Code → Codespaces → ⋯ → Stop codespace*) para não consumir a cota à toa.
---
## 8. Verificação final
Rode os comandos abaixo. Os resultados devem ser parecidos com estes:
| Comando | Resultado esperado | Necessário para |
|---|---|---|
| `git --version` | `git version 2.x` | Semana 1 |
| `php -v` | `PHP 8.3.x` ou superior | Semana 1 |
| `composer --version` | `Composer version 2.x` | Semana 1 |
| `docker --version` | `Docker version 2x.x` (ou superior) | Semana 2 |
| `docker compose version` | `Docker Compose version v2.x` (ou superior) | Semana 2 |
| `docker run --rm hello-world` | Mensagem "Hello from Docker!" | Semana 2 |
---
## 9. Problemas comuns
| Problema | Solução |
|---|---|
| `Authentication failed` no `git push` | O GitHub não aceita a senha da conta. Use `gh auth login`, o Git Credential Manager ou SSH (seção 5) |
| `php: command not found` | O PHP não foi instalado ou não está no PATH. Repita a seção 4, ou use o Codespaces |
| Versão do PHP menor que 8.3 | Atualize o PHP (no Ubuntu 24.04 o pacote padrão já é 8.3), ou use o Codespaces |
| `composer install` reclama de extensão faltando (`ext-...`) | Instale a extensão indicada (ex.: `sudo apt install php-xml php-mbstring`) |
| `Address already in use` na porta 8000 | Outro programa usa a porta. Rode `php -S localhost:8001 -t public` |
| Arquivos inteiros aparecem como alterados no Git (Windows) | Quebra de linha CRLF × LF. Trabalhe dentro do WSL, ou rode `git config --global core.autocrlf true` no Git para Windows |
| `permission denied ... docker.sock` (Linux/WSL) | Rode `sudo usermod -aG docker $USER`, saia e entre de novo |
| Docker Desktop não inicia no Windows | Verifique se a virtualização está ativa na BIOS e se o WSL2 está instalado (`wsl --status`) |
| Sem permissão de administrador na máquina | Use o **GitHub Codespaces** (seção 7) |
---
## 10. Checklist antes da 1ª mentoria (13/10)
- [ ] Conta no GitHub criada (com autenticação em dois fatores)
- [ ] Git instalado e configurado (`user.name`, `user.email`)
- [ ] Repositório `php-moderno-agenda-eventos` criado **a partir do template**, na sua conta, como público
- [ ] Repositório clonado, `composer test` passando e aplicação abrindo em `http://localhost:8000` (ou no Codespaces)
- [ ] `git push` funcionando (seção 6.3)
- [ ] (até 20/10) Docker instalado, `docker run --rm hello-world` funcionando e conta no Docker Hub
---
## Referências oficiais
- Git: <https://git-scm.com/downloads>
- GitHub: criar repositório a partir de um modelo: <https://docs.github.com/pt/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template>
- GitHub: credenciais no Git: <https://docs.github.com/pt/get-started/git-basics/caching-your-github-credentials-in-git>
- GitHub CLI: <https://cli.github.com/>
- GitHub Codespaces: <https://docs.github.com/pt/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository>
- WSL: <https://learn.microsoft.com/pt-br/windows/wsl/install>
- PHP: <https://www.php.net/downloads> · Composer: <https://getcomposer.org/download/>
- Docker: <https://docs.docker.com/get-started/get-docker/>
- VS Code: <https://code.visualstudio.com/>
**Dúvidas?** Traga para a mentoria ou fale com o instrutor: tiagolpadua@gmail.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment