167 lines
5.2 KiB
Markdown
167 lines
5.2 KiB
Markdown
# 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:**
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|