This repository contains your complete system configuration backup for quickly restoring your Ubuntu AI server after a fresh installation.
setup.sh- Main restoration script for packages and configurationssetup-disks.sh- Disk partitioning and mount configuration scriptpackages/- Lists of installed packagesinstalled-packages.txt- All APT packages (1984 packages)installed-snaps.txt- All Snap packages (88 packages)
configs/- System configuration files.bashrc- Bash configuration.profile- Profile settings
git clone https://github.com/YOUR_USERNAME/ai-server-setup.git
cd ai-server-setupchmod +x setup.sh
./setup.shThis will:
- Install all your APT packages
- Install all your Snap packages (including VS Code, Docker, etc.)
- Restore your shell configurations
- Set up Docker
- Optionally install NVIDIA drivers
chmod +x setup-disks.sh
./setup-disks.shChoose "Something else" for partitioning and create:
On 4TB NVMe (nvme1n1):
- 512MB - EFI System Partition (if UEFI)
- 100GB - ext4 mounted at
/ - 32GB - swap
- Remaining (~3.5TB) - ext4 mounted at
/home
Leave 500GB NVMe (nvme0n1) untouched - will be configured post-install
After running setup-disks.sh:
/ai-workspace(500GB) - Dedicated AI/ML workspace/data(3.5TB from 4TB drive) - General data storage- Both with automatic mounting via
/etc/fstab
-
GitHub Configuration
git config --global user.name "Matthew Beatty" git config --global user.email "your-email@example.com"
-
SSH Keys (if needed)
ssh-keygen -t ed25519 -C "your-email@example.com" cat ~/.ssh/id_ed25519.pub # Add to GitHub
-
Docker - Log out and back in for group changes
-
NVIDIA - Reboot after driver installation
- VS Code, Sublime Text, Vim, Emacs, Helix
- Docker, Kubernetes tools (kubectl, kubetail)
- Git, GitHub CLI
- Multiple language runtimes (Go, .NET, Python)
- Docker (for containerized training)
- NVIDIA drivers (optional during setup)
- Python with pip
- 1Password, Bitwarden
- Browsers: Firefox, Chrome, Brave, Opera, Vivaldi
- Communication: Slack, Discord, Signal, Telegram
- Waveterm, Alacritty, Konsole, Ghostty (terminals)
- LXD, Multipass
- Home Assistant tools
- Arduino, ESP tools
- Network tools
To update your package lists:
# Update APT package list
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > packages/installed-packages.txt
# Update Snap package list
snap list --color=never | tail -n +2 | awk '{print $1}' > packages/installed-snaps.txt
# Commit and push changes
git add -A
git commit -m "Update package lists"
git push- The repository doesn't contain sensitive data (passwords, keys, etc.)
- Review configs before pushing to public repo
- Consider making the repo private if it contains personal preferences
This is a personal configuration, but feel free to fork and adapt for your own use!
Created for Matthew Beatty's AI Server with dual GPUs Location: Ann Arbor, MI