Welcome to Part 1 of my multi-part series on setting up a headless Ubuntu home lab server tailored for developers. This post covers the installation of Ubuntu Server, setting up your development environment, and installing essential tools to get started.
π‘ This setup is intended for a personal home lab, not a production environment.
π₯οΈ Step 1: Install Ubuntu Server
Download the ISO: Grab the latest Ubuntu Server ISO.
Create a bootable USB with the ISO downloaded. How to do this step differs with different operating systems.
Boot and Install:
π Ensure your GitHub account has your SSH public keys added before installation.
- Static IP Recommendation:
Assign a static IP for your server in your router (outside the DHCP range).
π Step 2: Update the System
Run the following to make sure the system is up-to-date:
sudo apt update && sudo apt upgrade -y
π§° Step 3: Install Programming Languages & Frameworks
Create a setup script to install all your preferred tools in one go.
1. Create Setup Directory and Script
mkdir ~/setup
nano ~/setup/install_from_file.sh
Paste the following into the file:
#!/bin/bash
sudo apt install -y default-jre
sudo apt install -y python3 python3-pip python3-venv python3-debugpy
curl -fsSL https://deb.nodesource.com/setup_23.x | sudo -E bash -
sudo apt install -y nodejs
sudo apt install -y golang
sudo apt install -y lua5.4 luarocks
wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install dotnet-sdk-8.0 -y
sudo apt install -y sqlite3
2. Make It Executable and Run
chmod +x ~/setup/install_from_file.sh
sudo ~/setup/install_from_file.sh
π Step 4: Verify Installations
Check the versions to verify the tools are installed:
java --version
python3 --version
pip3 --version
node -v
npm -v
go version
dotnet --list-sdks
1. Verify Git Installation
sudo apt install -y git
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
2. Create SSH Key and Add to GitHub
ssh-keygen -t ed25519 -C "you@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Copy the output and add it to GitHub:
Now you can git clone via SSH securely. The same steps could be repeated for Bitbucket or other source control tools if required.
In the next part, we'll install essential terminal tools and boost productivity with a custom shell setup, Neovim, TMUX, and more.
Stay tuned for Part 2: Essential Terminal Tools for Productivity!
Have questions or feedback? Drop a comment below or reach out via GitHub.