Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Open Source/setup-macos-developer
Shell

setup-macos-developer

Setup de Mac para desenvolvimento em Shell: o mesmo ambiente, em toda máquina nova

4Atualizado em 29 de set. de 2026000 visualizações00 reproduções
Compartilhar:LinkedInWhatsAppXBaixar em Markdown
#automation#bash#developer-setup#developer-tools#dotfiles#homebrew#macos#moretes#portfolio#productivity
Ver no GitHub Site
git clone https://github.com/fernandofatech/dot-setup-macos-developer.git
Ouvir guia

cerca de 4 min · áudio gerado ao tocar

O dot-setup-macos-developer é um repositório em Shell que automatiza a configuração de uma estação de desenvolvimento macOS, para que uma máquina nova chegue ao mesmo estado da anterior sem depender de memória nem de checklist em papel.

Por que este repositório existe

A pergunta que me fez criar este repositório não foi "como instalo minhas ferramentas?", foi "quanto tempo eu perco, e o que eu esqueço, toda vez que troco de Mac?".

Configurar uma máquina de desenvolvimento à mão parece barato porque acontece raramente. O custo aparece depois: o git sem a configuração de assinatura, o shell sem o alias que você usa vinte vezes por dia, a versão de runtime diferente da que o CI usa. Cada diferença dessas vira uma tarde de investigação de "na minha máquina funciona".

O custo que importa aqui não é o de instalar uma vez, é o de manter dois ou três ambientes coerentes ao longo de anos. Um script versionado resolve isso de um jeito simples: o estado desejado da máquina vira código, com histórico no Git, revisão por PR e a mesma régua de qualidade de qualquer outro repositório meu.

O escopo é deliberadamente estreito: macOS, Homebrew como gerenciador de pacotes e Bash como linguagem. Não é um framework de dotfiles genérico nem uma ferramenta de gestão de frota. É o setup da minha estação, publicado porque o padrão é reaproveitável.

O que você encontra aqui

Shell puro: nenhuma dependência além do que o macOS já traz e do Homebrew que o próprio setup instala.
Homebrew como fonte dos pacotes: ferramentas de linha de comando e aplicativos saem do mesmo gerenciador, o que deixa a lista auditável.
Dotfiles versionados: a configuração do ambiente fica no Git, com histórico de quem mudou o quê e por quê.
Convenções do platform: branch <tipo>/<escopo>, Conventional Commits e versão derivada dos commits, sem número escrito à mão.
Pipeline reutilizável: pr-lint, CI, segurança e release vêm dos workflows compartilhados, não de YAML copiado.

Como o setup flui de um Mac zerado até o ambiente pronto

O repositório é a fonte do estado desejado; o script aplica esse estado na máquina local. A pipeline do platform só valida o repositório, ela não toca na sua máquina.

🌐 GitHub: fonte do estado
  • dot-setup-macos-developer · scripts + dotfiles
  • fernandofatech/platform · workflows reutilizáveis
💻 macOS: aplicação local
  • Script Bash · entrypoint do setup
  • Homebrew · CLIs e apps
  • Dotfiles · shell, git, editor

Instalar e usar

  1. 1

    Garanta as Command Line Tools

    Num Mac zerado, git só existe depois das Command Line Tools da Apple. Rode xcode-select --install e aceite o diálogo antes de clonar qualquer coisa.

  2. 2

    Clone o repositório

    Clone em um diretório que você vai manter, porque o repositório continua sendo a referência do ambiente depois do primeiro setup.

  3. 3

    Leia o script antes de executar

    Liste os arquivos e abra o entrypoint. Script de setup roda com o seu usuário e mexe no seu shell: nunca execute um que você não leu, incluindo este.

  4. 4

    Ajuste a lista ao seu caso

    A lista de pacotes e os dotfiles refletem a minha estação. Em um fork, remova o que você não usa antes de rodar: pacote instalado e esquecido também é custo de manutenção.

  5. 5

    Execute e abra um shell novo

    Rode o entrypoint e, ao final, abra um terminal novo para carregar a configuração de shell. Confira com brew doctor se o Homebrew ficou saudável.

Quickstart: clonar, inspecionar e só então executar
bash
# 1. Ferramentas básicas da Apple (inclui git)
xcode-select --install

# 2. Clonar o repositório
git clone https://github.com/fernandofatech/dot-setup-macos-developer.git
cd dot-setup-macos-developer

# 3. Inspecionar antes de rodar
ls -la
less README.md

# 4. Executar o entrypoint do setup (confira o nome no repositório)
# bash ./<entrypoint>.sh

# 5. Validar
brew doctor

Script de setup roda com o seu usuário

Nada aqui roda em sandbox. O script instala pacotes e reescreve arquivos de configuração no seu $HOME. Se você já tem dotfiles próprios, faça backup antes: arquivo sobrescrito não avisa, ele só some.

Como funciona e como é mantido

O mecanismo é o mais simples possível, de propósito: um script Bash lê o estado desejado e o aplica na máquina, usando o Homebrew para pacotes e copiando ou ligando os dotfiles para o lugar certo. Não há agente, daemon nem servidor; o repositório não sabe quantas máquinas o usam.

O que torna isso sustentável não é o script, é a disciplina em volta dele. O repositório segue as convenções do fernandofatech/platform:

  • Branch: <tipo>/<escopo>, com feat/, fix/, chore/ e docs/.
  • Commit e título de PR: Conventional Commits.
  • Versão: sai dos commits. Ninguém escreve número de versão à mão.

A pipeline (pr-lint, CI, segurança e release) vem dos workflows reutilizáveis do platform. A consequência prática: corrigir a régua de qualidade é mudar um arquivo lá, não em cada repositório. Num portfólio com dezenas de repositórios, essa é a diferença entre manter uma pipeline e manter vinte cópias dela que divergem em silêncio.

Para um repositório de setup, a release versionada também tem uso concreto: dá para dizer em que versão do setup uma máquina foi configurada e o que mudou desde então.

Limites que vale conhecer

Shell imperativo resolve bem o primeiro setup e razoavelmente bem as reexecuções, desde que cada passo confira antes de agir (pacote já instalado, arquivo já no lugar). Ele não oferece o que uma ferramenta declarativa oferece: não há plano mostrando o que vai mudar antes de mudar, e remover um pacote da lista não o desinstala da máquina.

Também não há gestão de segredo aqui, e não deve haver. Chave SSH, token de API e credencial de nuvem ficam fora do repositório, em cofre ou gerados na máquina. Um repositório público de dotfiles com segredo dentro não é um descuido pequeno, é um incidente.

Por fim, o repositório é pequeno: 4 estrelas, nenhum fork, um mantenedor. Ele é um exemplo funcional e um ponto de partida para o seu fork, não um projeto com roadmap ou suporte.

Perguntas frequentes

Funciona em Linux?

Não é o objetivo. O escopo é macOS com Homebrew; partes do Bash podem rodar em Linux, mas nada aqui foi pensado nem testado para isso.

Posso rodar de novo numa máquina já configurada?

Leia o script antes. Reexecução só é segura nos passos que conferem o estado antes de agir; qualquer passo que copia arquivo por cima do existente vai sobrescrever o que você mudou à mão.

Devo usar direto ou fazer fork?

Faça fork. A lista de pacotes e os dotfiles são os meus. O valor reaproveitável está na estrutura e no processo, não na minha escolha de ferramentas.

Referências

GitHub: fernandofatech/dot-setup-macos-developerfernando.moretes.comGitHub: fernandofatech/platformConventional CommitsHomebrew

Para quem é

Use este repositório como base quando você troca de Mac mais de uma vez por ano, trabalha sozinho ou num time pequeno, e quer o ambiente versionado com a mesma disciplina de PR e release do resto do seu código. Prefira uma ferramenta declarativa (Nix, Ansible ou o MDM da empresa) quando você precisa garantir o estado de uma frota, desfazer mudanças de forma confiável ou provar conformidade para auditoria. Shell resolve bem o problema de uma pessoa; não resolve o problema de cinquenta máquinas.

Curte open source e arquitetura? Receba mais.

Deep dives de arquitetura, AWS, IA e mercado: direto no seu email. Grátis.

Sem spam · cancele quando quiser

Guia gerado com IA a partir do repositório e do README. · Fonte

Continue lendo

Shellgoogle-terminal-searchBusca no Google a partir do terminal: um script Bash de 17 linhas, sem dependênciasLer Rubyhomebrew-google-terminal-searchTap Homebrew do google-terminal-search: um brew install no lugar de copiar script à mãoLer TypeScriptdailyfocusUm foco por dia, tarefas, timer e reflexão: produtividade sem painel de controleLer