Revise applications documentation and onboarding script for improved clarity and functionality. Updated applications.md to include a comprehensive list of 60+ installed tools, added environment verification function in onboarding.sh, and enhanced README with detailed application categories and usage tips.

This commit is contained in:
ilia 2025-09-07 22:16:15 -04:00
parent e2bc5a2b53
commit 617f7a4a39
3 changed files with 1453 additions and 885 deletions

115
README.md
View File

@ -1,10 +1,10 @@
# Developer Onboarding
A comprehensive developer environment setup toolkit that automates the installation of essential tools and configures Git and SSH for seamless development workflows.
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 development environment with all the necessary tools, from basic system utilities to modern development tools and containerization platforms.
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
@ -28,6 +28,16 @@ This project provides scripts and documentation to quickly set up a development
## 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
@ -38,19 +48,84 @@ This project provides scripts and documentation to quickly set up a development
- 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
- `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
- `applications.md` - Complete list of installed applications
- `README.md` - This file
## 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 script is idempotent - safe to run multiple times
- 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
@ -58,14 +133,30 @@ 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
## Support
## Troubleshooting
If you encounter issues:
1. Ensure you have the required permissions
2. Check network connectivity to the Git server
3. Verify SSH key permissions (`chmod 600 ~/.ssh/id_ed25519`)
### 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.
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

File diff suppressed because it is too large Load Diff

View File

@ -50,6 +50,54 @@ test_ssh_connection() {
fi
}
# Environment verification function
verify_environment() {
echo
echo "=== Environment Verification ==="
echo
# Check key development tools
echo "🛠️ Development Tools:"
command -v node >/dev/null && echo " ✓ Node.js: $(node --version)" || echo " ✗ Node.js: Not found"
command -v python3 >/dev/null && echo " ✓ Python3: $(python3 --version)" || echo " ✗ Python3: Not found"
command -v docker >/dev/null && echo " ✓ Docker: $(docker --version)" || echo " ✗ Docker: Not found"
command -v code >/dev/null && echo " ✓ VS Code: $(code --version | head -n1)" || echo " ✗ VS Code: Not found"
echo
echo "🐚 Shell Environment:"
echo " ✓ Current shell: $SHELL"
command -v zsh >/dev/null && echo " ✓ Zsh: $(zsh --version)" || echo " ✗ Zsh: Not found"
command -v tmux >/dev/null && echo " ✓ Tmux: $(tmux -V)" || echo " ✗ Tmux: Not found"
command -v fzf >/dev/null && echo " ✓ Fzf: $(fzf --version)" || echo " ✗ Fzf: Not found"
echo
echo "📊 Monitoring Tools:"
command -v htop >/dev/null && echo " ✓ htop: Available" || echo " ✗ htop: Not found"
command -v btop >/dev/null && echo " ✓ btop: Available" || echo " ✗ btop: Not found"
command -v bandwhich >/dev/null && echo " ✓ bandwhich: Available" || echo " ✗ bandwhich: Not found"
echo
echo "🔒 Security & VPN:"
command -v ufw >/dev/null && echo " ✓ UFW: $(ufw --version | head -n1)" || echo " ✗ UFW: Not found"
systemctl is-active fail2ban >/dev/null 2>&1 && echo " ✓ fail2ban: Active" || echo " ✗ fail2ban: Not active"
command -v tailscale >/dev/null && echo " ✓ Tailscale: $(tailscale version --short)" || echo " ✗ Tailscale: Not found"
echo
echo "💾 Backup Tools:"
command -v rsync >/dev/null && echo " ✓ rsync: $(rsync --version | head -n1)" || echo " ✗ rsync: Not found"
command -v borgbackup >/dev/null && echo " ✓ borgbackup: Available" || echo " ✗ borgbackup: Not found"
command -v rclone >/dev/null && echo " ✓ rclone: Available" || echo " ✗ rclone: Not found"
echo
echo "🔧 System Tools:"
command -v jq >/dev/null && echo " ✓ jq: $(jq --version)" || echo " ✗ jq: Not found"
command -v ripgrep >/dev/null && echo " ✓ ripgrep: $(rg --version | head -n1)" || echo " ✗ ripgrep: Not found"
command -v fd >/dev/null && echo " ✓ fd-find: Available" || echo " ✗ fd-find: Not found"
echo
echo "For a complete list of installed applications, see applications.md"
}
## MAIN LOGIC
echo "Checking Git global config..."
@ -68,5 +116,14 @@ setup_ssh_key
show_and_copy_ssh_key
test_ssh_connection
# Ask if user wants to verify environment
echo
echo "Setup complete!"
read -rp "Would you like to verify your development environment? (y/n): " verify
if [[ "$verify" =~ ^[Yy]$ ]]; then
verify_environment
fi
echo
echo "Git/SSH setup complete!"
echo "📋 See applications.md for the complete list of 60+ installed applications"
echo "🔧 Run individual commands from the verification section to check specific tools"