Skip to content

mariopaglia/linux-dev-setup

Repository files navigation

🚀 Linux Dev Setup - Universal Edition

Script completo e automatizado para configurar ambiente de desenvolvimento em Ubuntu/Xubuntu/Linux Mint

License: MIT Shell Script Ubuntu npm version

📋 Índice

🎯 Sobre

Este script automatiza a configuração completa de um ambiente de desenvolvimento moderno para Ubuntu/Xubuntu/Linux Mint, incluindo:

  • Terminal customizado (ZSH + Oh My ZSH + Powerlevel10k)
  • Ferramentas de containerização (Docker)
  • IDEs e editores (VS Code)
  • Navegadores (Google Chrome)
  • Ferramentas de banco de dados (DBeaver, PostgreSQL)
  • Ecossistema Node.js completo (pnpm, yarn, TypeScript, NestJS, Prisma)
  • Configurações personalizadas (.gitconfig, .p10k.zsh)

Universal: Detecta automaticamente sua distribuição Linux (Ubuntu, Xubuntu ou Linux Mint). Idempotente: Pode ser executado múltiplas vezes sem problemas.

✨ Características

  • Totalmente automatizado - Uma linha de comando e pronto
  • Idempotente - Detecta ferramentas já instaladas
  • Backups automáticos - Preserva configurações existentes
  • Configurações personalizadas - Baixa seus dotfiles do GitHub
  • Output colorido - Interface amigável com cores e status
  • Portátil - Funciona em qualquer Xubuntu/Ubuntu formatado
  • Bem documentado - Documentação completa incluída

🐧 Distribuições Suportadas

  • ✅ Ubuntu 24.04+ LTS
  • ✅ Xubuntu 24.04+ LTS
  • ✅ Linux Mint 21+ (Virginia, Vera, etc)
  • ✅ Kubuntu 24.04+ LTS
  • ⚠️ Outras distros baseadas em Ubuntu podem funcionar

O script detecta automaticamente sua distribuição e se adapta conforme necessário.

⚡ Instalação Rápida

Opção 1: Via NPX (Recomendado)

npx @mariopaglia/linux-dev-setup

Ou se preferir instalar globalmente:

npm install -g @mariopaglia/linux-dev-setup
linux-dev-setup

Opção 2: Via cURL (Alternativa)

curl -fsSL https://raw.githubusercontent.com/mariopaglia/linux-dev-setup/main/xubuntu-dev-setup.sh | bash

Opção 3: Revisar antes de executar

# Download
curl -fsSL https://raw.githubusercontent.com/mariopaglia/linux-dev-setup/main/xubuntu-dev-setup.sh -o setup.sh

# Revisar
less setup.sh

# Executar
bash setup.sh

Opção 4: Clone o repositório

git clone https://github.com/mariopaglia/linux-dev-setup.git
cd linux-dev-setup
bash xubuntu-dev-setup.sh

📦 O que é instalado

Shell & Terminal

  • ZSH - Shell moderno e poderoso
  • Oh My ZSH - Framework para gerenciar configurações ZSH
  • Powerlevel10k - Tema elegante e rápido
  • Plugins: zsh-autosuggestions, zsh-syntax-highlighting

Desenvolvimento

  • Docker + Docker Compose - Containerização
  • VS Code - Editor de código
  • DBeaver Community - Cliente universal de banco de dados
  • PostgreSQL - Banco de dados (via Docker)

Node.js Ecosystem

  • pnpm - Gerenciador de pacotes rápido
  • yarn - Gerenciador de pacotes alternativo
  • TypeScript - JavaScript tipado
  • NestJS CLI - Framework Node.js progressivo
  • Prisma - ORM moderno
  • create-next-app - Scaffold para Next.js

Navegadores

  • Google Chrome - Navegador web

Configurações Personalizadas

  • .gitconfig - Suas configurações Git
  • .p10k.zsh - Configuração Powerlevel10k
  • .zshrc.custom - Aliases e PATH customizados
  • docker-compose.yml - PostgreSQL pronto para uso

Aliases Úteis (40+)

  • Git: gs, ga, gp, gc, gl
  • Docker: dps, dcup, dcdown, dclogs
  • PostgreSQL: pgstart, pgstop, pgcli, pglogs
  • NPM: ni, nr, ns, nt, nb
  • Navegação: proj, ll, c

🎯 Uso

Após a instalação

  1. Fazer logout/login (OBRIGATÓRIO)

    logout
  2. Verificar instalações

    bash ~/verify-installations.sh
  3. Iniciar PostgreSQL

    pgstart
    # ou
    cd ~/projetos && docker compose up -d
  4. Conectar ao PostgreSQL

    pgcli
    # ou
    docker exec -it postgres-dev psql -U postgres

Credenciais PostgreSQL (desenvolvimento)

  • Host: localhost
  • Porta: 5432
  • Usuário: postgres
  • Senha: postgres
  • Database: dev

⚠️ IMPORTANTE: Estas são credenciais de desenvolvimento. NÃO use em produção!

📚 Documentação

O projeto inclui documentação completa na pasta docs/:

📁 Estrutura do Projeto

xubuntu-dev-setup/
├── README.md                    # Este arquivo
├── xubuntu-dev-setup.sh         # Script principal (548 linhas)
├── verify-installations.sh      # Script de verificação
├── LICENSE                      # Licença MIT
├── .gitignore                   # Arquivos ignorados
└── docs/                        # Documentação
    ├── COMECE-AQUI.txt         # Início visual
    ├── QUICK-START.md          # Guia rápido
    ├── README-XUBUNTU-SETUP.md # Documentação completa
    ├── COMO-USAR-EM-OUTRO-PC.md # Guia de distribuição
    └── RESUMO-FINAL.md         # Resumo completo

🔧 Personalização

Configurar seus próprios dotfiles

Edite as URLs no início do script xubuntu-dev-setup.sh:

# Linha ~17-18
GITCONFIG_URL="https://gist.githubusercontent.com/SEU_USUARIO/HASH/raw/.gitconfig"
P10K_URL="https://gist.githubusercontent.com/SEU_USUARIO/HASH/raw/.p10k.zsh"

Adicionar/Remover ferramentas

O script está organizado em seções numeradas. Para:

  • Adicionar: Crie uma nova seção seguindo o padrão existente
  • Remover: Comente ou delete a seção correspondente

Modificar aliases

Edite a seção que cria .zshrc.custom (por volta da linha 200).

❓ FAQ

O script é seguro?

Sim! O script:

  • Usa apenas repositórios oficiais
  • Verifica chaves GPG
  • Não contém senhas hardcoded
  • Cria backups antes de sobrescrever arquivos
  • Todo o código é open-source e pode ser revisado

Posso executar múltiplas vezes?

Sim! O script é idempotente. Ele detecta ferramentas já instaladas e pula essas etapas.

Funciona em outras distros Ubuntu?

Sim! Testado em:

  • ✅ Xubuntu 24.04 LTS
  • ✅ Ubuntu 24.04 LTS
  • ✅ Kubuntu 24.04 LTS
  • ✅ Linux Mint 21+ (Virginia, Vera, etc)

O script detecta automaticamente a distribuição e se adapta conforme necessário.

Como atualizar minhas configurações?

Simplesmente re-execute o script. Ele:

  1. Fará backup dos arquivos atuais
  2. Baixará as versões mais recentes dos seus gists
  3. Aplicará as novas configurações

Docker não funciona sem sudo

Você fez logout/login? Isso é necessário para aplicar o grupo docker.

# Verificar
groups | grep docker

# Se não aparecer
sudo usermod -aG docker $USER
# Fazer logout/login novamente

🤝 Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para:

  1. Fazer fork do projeto
  2. Criar uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abrir um Pull Request

📦 Publicar no NPM

Se você quiser publicar sua própria versão no NPM:

  1. Criar conta no npmjs.com
  2. Login via terminal:
    npm login
  3. Atualizar o nome do pacote no package.json:
    {
      "name": "@SEU_USUARIO/linux-dev-setup",
      ...
    }
  4. Publicar:
    npm publish --access public

📝 Changelog

v3.0 - Universal Edition (2026-01-20)

  • ✅ Suporte a múltiplas distribuições (Ubuntu/Xubuntu/Linux Mint)
  • ✅ Detecção automática de distribuição
  • ✅ Instalação via NPX
  • ✅ DBeaver com suporte Snap/Flatpak
  • ✅ Docker adaptado para Linux Mint
  • ✅ Estrutura NPM completa
  • ✅ Script de teste de detecção

v2.0 (2026-01-17)

  • ✅ Script completamente reescrito
  • ✅ Detecção inteligente de ferramentas instaladas
  • ✅ Backups automáticos
  • ✅ Output colorido
  • ✅ Download automático de dotfiles
  • ✅ Documentação completa

v1.0 (2026-01-17)

  • ✅ Versão inicial

📄 Licença

Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

👤 Autor

Mario Paglia

🙏 Agradecimentos

🌟 Star History

Se este projeto te ajudou, considere dar uma ⭐!


Feito com ❤️ para a comunidade de desenvolvedores

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •