Developer Onboarding

A comprehensive developer environment setup toolkit that automates the installation of 60+ essential applications and tools, plus configures Git and SSH for seamless development workflows.

Overview

This project provides scripts and documentation to quickly set up a complete development environment with all the necessary tools, from basic system utilities to modern development tools, containerization platforms, monitoring tools, and security applications. The environment includes everything from shell configuration with Oh My Zsh to Docker containers, VPN setup, backup tools, and comprehensive system monitoring.

Quick Start

Prerequisites

  • Ubuntu/Debian-based Linux system
  • sudo privileges for package installation
  • Internet connection

Setup Process

  1. Run the onboarding script:

    chmod +x onboarding.sh
    ./onboarding.sh
    
  2. Follow the interactive prompts:

    • Configure Git username and email
    • Generate SSH keys for secure Git operations
    • Test SSH connection to your Git server

What Gets Configured

Complete Development Environment

  • 60+ Applications & Tools - See applications.md for the complete inventory
  • Base System Tools - curl, wget, git, jq, ripgrep, fd-find, and more
  • Development Stack - Node.js, Python3, Docker CE, VS Code, Cursor IDE
  • Shell Environment - Zsh with Oh My Zsh + Powerlevel10k theme
  • Monitoring Tools - htop, btop, nethogs, iftop, bandwhich, and comprehensive system monitoring
  • Security & VPN - UFW firewall, fail2ban, Tailscale mesh VPN
  • Backup Solutions - rsync, borgbackup, rclone, restic
  • Container Platform - Docker CE with Compose plugin

Git Configuration

  • Global username and email setup
  • Credential caching for convenience
  • Color output for better readability

SSH Key Management

  • Ed25519 SSH key generation (modern, secure)
  • Automatic key copying to clipboard
  • SSH connection testing to Git server

System Services Enabled

  • Docker daemon
  • Tailscale VPN daemon
  • UFW firewall
  • fail2ban intrusion prevention
  • System monitoring and logging

Files in This Repository

  • onboarding.sh - Main interactive setup script for Git/SSH configuration
  • applications.md - Complete inventory of 60+ installed applications and tools
  • README.md - This documentation file
  • onboarding.sh.save - Backup/alternative version

Application Categories Overview

The complete development environment includes:

🛠️ Development Tools (6 applications)

  • Git, Node.js, npm, Python3, build-essential, pip3

🖥️ IDEs & Editors (2 applications)

  • Visual Studio Code, Cursor (AI-powered editor)

🐳 Container Platform (5 Docker components)

  • Docker CE, Docker CLI, containerd, Buildx, Compose

🔧 Shell Environment (6 tools)

  • Zsh, Oh My Zsh, Powerlevel10k, tmux, fzf, syntax highlighting

📊 Monitoring Tools (14 applications)

  • htop, btop, atop, nethogs, iftop, bandwhich, nmap, wireshark, and more

🔒 Security & VPN (Multiple tools)

  • UFW firewall, fail2ban, Tailscale mesh VPN, SSH hardening

💾 Backup Solutions (4 tools)

  • rsync, borgbackup, rclone, restic

🌐 Desktop Applications (4 applications)

  • Brave Browser, LibreOffice, Redshift, Evince

See applications.md for the complete detailed list with descriptions.

Usage Tips

  • The onboarding script focuses on Git/SSH setup and is idempotent - safe to run multiple times
  • SSH keys are only generated if they don't already exist
  • Git config is only set if not already configured
  • All operations are interactive with user confirmation
  • The full application stack is installed via Ansible playbooks (see applications.md)

Environment Verification

After setup, you can verify your environment has the expected tools:

# Check key development tools
node --version
python3 --version
docker --version
code --version

# Check shell environment
echo $SHELL  # Should show /usr/bin/zsh
tmux -V
fzf --version

# Check monitoring tools
htop --version
btop --version
bandwhich --version

# Check security tools
ufw status
systemctl status fail2ban
tailscale status

Customization

You can modify the onboarding.sh script to:

  • Change the Git server URL (currently set to 10.0.30.169:3000)
  • Adjust SSH key types or parameters
  • Add additional Git configuration options
  • Include application verification steps

Troubleshooting

Common Issues

  1. Permission errors: Ensure you have sudo privileges for system packages
  2. Network connectivity: Check connection to Git server and package repositories
  3. SSH key permissions: Verify with chmod 600 ~/.ssh/id_ed25519
  4. Docker access: Ensure user is in docker group: sudo usermod -aG docker $USER
  5. Snap applications: If snap apps fail, check with snap list and snap refresh

Service Status Checks

# Check critical services
systemctl status docker
systemctl status tailscaled
systemctl status fail2ban
ufw status verbose

Contributing

Feel free to submit issues or pull requests to improve the onboarding experience. Consider contributing:

  • Additional application suggestions
  • Enhanced verification scripts
  • Improved troubleshooting documentation
  • Automation improvements
Description
No description provided
Readme 81 KiB
Languages
Shell 87.1%
Makefile 12.9%