Created
August 3, 2026 21:38
-
-
Save Nanzitos/c91e5f48d751753386c07d6e61edd83c to your computer and use it in GitHub Desktop.
setup-development-apple-silicon
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # bootstrap.sh — setup completo de dev environment num arquivo só | |
| # Uso local: chmod +x bootstrap.sh && ./bootstrap.sh | |
| # Uso via gist: curl -fsSL <url-raw-do-gist> | bash | |
| set -e | |
| echo "==> Instalando Homebrew (se ainda não tiver)..." | |
| if ! command -v brew &> /dev/null; then | |
| /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
| eval "$(/opt/homebrew/bin/brew shellenv)" | |
| fi | |
| echo "==> Gerando Brewfile temporário..." | |
| BREWFILE=$(mktemp) | |
| cat > "$BREWFILE" << 'EOF' | |
| # Core / CLI essenciais | |
| brew "git" | |
| brew "gh" | |
| brew "nvm" | |
| brew "starship" | |
| brew "zsh-autosuggestions" | |
| brew "zsh-syntax-highlighting" | |
| # Terminal / produtividade CLI | |
| brew "fzf" | |
| brew "ripgrep" | |
| brew "bat" | |
| brew "eza" | |
| brew "htop" | |
| brew "btop" | |
| brew "nmap" | |
| # Docker / Infra | |
| cask "orbstack" | |
| # Editor | |
| cask "visual-studio-code" | |
| # Bancos de dados / GUI | |
| cask "sequel-ace" | |
| cask "redisinsight" | |
| cask "dbeaver-community" | |
| # API / Rede | |
| cask "insomnia" | |
| cask "wireshark" | |
| # Navegador | |
| cask "google-chrome" | |
| # Produtividade / Sistema | |
| cask "rectangle" | |
| cask "raycast" | |
| cask "keka" | |
| cask "appcleaner" | |
| # Áudio (produção ao vivo / worship) | |
| cask "loopback" | |
| cask "audio-hijack" | |
| EOF | |
| echo "==> Rodando Brewfile (formulas + casks)..." | |
| brew bundle --file="$BREWFILE" | |
| rm "$BREWFILE" | |
| echo "==> Configurando nvm + Node LTS..." | |
| export NVM_DIR="$HOME/.nvm" | |
| mkdir -p "$NVM_DIR" | |
| [ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" | |
| nvm install --lts | |
| nvm alias default lts/* | |
| echo "==> Instalando pacotes npm globais..." | |
| npm install -g typescript ts-node @anthropic-ai/claude-code | |
| echo "==> Instalando Oh My Zsh (se ainda não tiver)..." | |
| if [ ! -d "$HOME/.oh-my-zsh" ]; then | |
| sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended | |
| fi | |
| echo "==> Instalando extensões do VS Code..." | |
| if command -v code &> /dev/null; then | |
| code --install-extension bmewburn.vscode-intelephense-client | |
| code --install-extension xdebug.php-debug | |
| code --install-extension dbaeumer.vscode-eslint | |
| code --install-extension esbenp.prettier-vscode | |
| code --install-extension ms-azuretools.vscode-docker | |
| code --install-extension eamodio.gitlens | |
| code --install-extension redhat.vscode-yaml | |
| else | |
| echo "AVISO: comando 'code' não encontrado no PATH." | |
| echo "Abra o VS Code > Cmd+Shift+P > 'Shell Command: Install code command in PATH' e rode este script de novo." | |
| fi | |
| echo "" | |
| echo "==> Setup concluído!" | |
| echo "Falta só: configurar git (user.name/email), gerar chave SSH (gh auth login)," | |
| echo "e ajustar o ~/.zshrc com starship + plugins (eval \"\$(starship init zsh)\")." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Dev Environment Setup — MacBook Pro M3 | |
| Script único (`bootstrap.sh`) pra configurar um Mac novo do zero com toda a stack de desenvolvimento: Docker, Node, PHP/CakePHP 2 (via Docker), bancos de dados, terminal e ferramentas de produtividade. | |
| ## Como usar | |
| ### Opção 1 — Rodar localmente | |
| ```bash | |
| chmod +x bootstrap.sh | |
| ./bootstrap.sh | |
| ``` | |
| ### Opção 2 — Rodar direto de um Gist (recomendado pra reuso em máquina nova) | |
| ```bash | |
| curl -fsSL <URL_RAW_DO_SEU_GIST> | bash | |
| ``` | |
| > ⚠️ Só rode `curl | bash` de fontes que você controla (seu próprio Gist). Pra Gists de terceiros, sempre revise o conteúdo antes de executar. | |
| Se quiser manter o Gist privado (recomendado, já que expõe seu setup): | |
| ```bash | |
| gh gist create bootstrap.sh --private | |
| ``` | |
| ## O que o script faz, na ordem | |
| 1. Instala o **Homebrew**, se ainda não existir | |
| 2. Instala tudo do Brewfile embutido (formulas + casks — lista completa abaixo) | |
| 3. Configura **nvm** e instala o **Node LTS** como padrão | |
| 4. Instala pacotes **npm globais** | |
| 5. Instala o **Oh My Zsh** | |
| 6. Instala as **extensões do VS Code** | |
| Depois de rodar, ainda falta configurar manualmente (ver seção [Pós-instalação](#pós-instalação)). | |
| --- | |
| ## O que cada ferramenta faz | |
| ### Core / CLI essenciais | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **git** | Controle de versão | | |
| | **gh** (GitHub CLI) | Gerenciar repos, PRs e autenticação do GitHub direto pelo terminal | | |
| | **nvm** | Trocar de versão do Node por projeto, sem instalar Node fixo no sistema | | |
| | **starship** | Prompt de terminal customizável e rápido (mostra branch git, versão de linguagem, etc) | | |
| | **zsh-autosuggestions** | Sugere comandos enquanto você digita, baseado no histórico | | |
| | **zsh-syntax-highlighting** | Colore o comando no terminal conforme você digita (verde = válido, vermelho = erro) | | |
| ### Terminal / produtividade CLI | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **fzf** | Fuzzy finder — busca arquivos, histórico de comandos, branches git de forma interativa | | |
| | **ripgrep (rg)** | Grep muito mais rápido que o `grep` padrão, ótimo pra buscar em código legado grande | | |
| | **bat** | Substituto do `cat` com syntax highlighting e números de linha | | |
| | **eza** | Substituto do `ls` com cores, ícones e mais informação por padrão | | |
| | **htop / btop** | Monitor de processos e uso de CPU/memória em tempo real (btop é mais visual) | | |
| | **nmap** | Scanner de rede — útil pra debugar a segmentação de VLAN no seu roteador OpenWrt | | |
| ### Docker / Infra | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **OrbStack** | Roda containers Docker no Mac — alternativa ao Docker Desktop, mais leve e rápida no Apple Silicon | | |
| ### Editor | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **VS Code** | Editor de código principal | | |
| ### Bancos de dados | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **Sequel Ace** | Cliente MySQL leve e nativo, bom pro dia a dia (consultas, explorar schema) | | |
| | **Redis Insight** | Cliente oficial do Redis — visualiza chaves, TTLs, roda comandos | | |
| | **DBeaver Community** | Cliente multi-banco mais completo, com modo de transação manual (commit/rollback controlado) — use quando for mexer em dados sensíveis | | |
| ### API / Rede | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **Insomnia** | Cliente de API pra testar endpoints REST, webhooks, etc (alternativa leve ao Postman) | | |
| | **Wireshark** | Análise profunda de tráfego de rede — útil pra debugar problemas de VLAN/firewall mais complexos que o nmap não resolve | | |
| ### Navegador | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **Google Chrome** | Navegador padrão | | |
| ### Produtividade / Sistema | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **Rectangle** | Organiza janelas na tela com atalhos de teclado (tipo Windows Snap) | | |
| | **Raycast** | Spotlight turbinado — busca, snippets, integrações com GitHub/dev tools | | |
| | **Keka** | Descompacta qualquer formato de arquivo (zip, rar, 7z) | | |
| | **AppCleaner** | Desinstala apps sem deixar arquivos de configuração espalhados pelo sistema | | |
| ### Áudio (produção ao vivo / worship) | |
| | Ferramenta | Pra que serve | | |
| |---|---| | |
| | **Loopback** | Cria dispositivos de áudio virtuais pra rotear sinal entre apps | | |
| | **Audio Hijack** | Captura e roteia áudio de qualquer fonte do Mac | | |
| ### npm globais | |
| | Pacote | Pra que serve | | |
| |---|---| | |
| | **typescript** | Compilador TypeScript | | |
| | **ts-node** | Roda arquivos `.ts` direto sem precisar compilar antes | | |
| | **@anthropic-ai/claude-code** | Claude Code — assistente de IA agentic pra tarefas de código via terminal | | |
| ### Extensões VS Code | |
| | Extensão | Pra que serve | | |
| |---|---| | |
| | **intelephense** | Autocomplete e navegação inteligente pra PHP | | |
| | **php-debug (Xdebug)** | Debug de código PHP com breakpoints | | |
| | **ESLint** | Lint de JS/TypeScript | | |
| | **Prettier** | Formatação automática de código | | |
| | **Docker** | Sintaxe e gerenciamento de Dockerfile/docker-compose direto no editor | | |
| | **GitLens** | Mostra histórico e autoria de cada linha (blame) direto no editor | | |
| | **YAML** | Suporte a arquivos `.yml` (docker-compose, CI, etc) | | |
| --- | |
| ## Pós-instalação | |
| O script **não faz** essas partes porque são específicas de cada pessoa/máquina: | |
| ### 1. Configurar Git | |
| ```bash | |
| git config --global user.name "Seu Nome" | |
| git config --global user.email "seu-email@exemplo.com" | |
| git config --global init.defaultBranch main | |
| ``` | |
| ### 2. Gerar chave SSH e autenticar no GitHub | |
| ```bash | |
| ssh-keygen -t ed25519 -C "seu-email@exemplo.com" | |
| eval "$(ssh-agent -s)" | |
| ssh-add --apple-use-keychain ~/.ssh/id_ed25519 | |
| gh auth login | |
| ``` | |
| ### 3. Configurar o `~/.zshrc` | |
| Adicionar no final do arquivo: | |
| ```bash | |
| plugins=(git docker docker-compose node npm) | |
| source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh | |
| source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh | |
| eval "$(starship init zsh)" | |
| ``` | |
| ### 4. Habilitar o comando `code` no terminal | |
| No VS Code: `Cmd + Shift + P` → `Shell Command: Install 'code' command in PATH` | |
| ### 5. Definir o Chrome como navegador padrão | |
| `Ajustes do Sistema → Desktop e Dock → Navegador padrão → Google Chrome` | |
| ### 6. Subir o ambiente Docker do projeto | |
| Dentro da pasta do projeto (ex: `crmbonus-legacy`), com o `docker-compose.yml` configurado: | |
| ```bash | |
| docker compose up -d | |
| ``` | |
| --- | |
| ## Notas | |
| - **Apple Silicon (M3)**: imagens Docker de PHP muito antigas (5.x) podem não ter build `arm64`. Se precisar rodar PHP legado nessa faixa, adicione `platform: linux/amd64` no serviço do `docker-compose.yml` (roda via emulação, mais lento mas funcional). | |
| - **Raycast vs Alfred**: o script instala só o Raycast. Se preferir Alfred, troque no Brewfile — não recomendado instalar os dois juntos (conflito de atalhos globais). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment