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
sudoprivileges for package installation- Internet connection
Setup Process
-
Run the onboarding script:
chmod +x onboarding.sh ./onboarding.sh -
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.mdfor 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 configurationapplications.md- Complete inventory of 60+ installed applications and toolsREADME.md- This documentation fileonboarding.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
- Permission errors: Ensure you have sudo privileges for system packages
- Network connectivity: Check connection to Git server and package repositories
- SSH key permissions: Verify with
chmod 600 ~/.ssh/id_ed25519 - Docker access: Ensure user is in docker group:
sudo usermod -aG docker $USER - Snap applications: If snap apps fail, check with
snap listandsnap 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