Setting Up a New PC / Server with Pop!_OS 22.04
Software engineer and founder with a background in finance and tech. Currently building aVenture.vc, a platform for researching private companies. Based in San Francisco.
I use a lot of checklists -- here's another one of mine, this time for setting up a PC / server with Pop!_OS. While these instructions are written specifically for Pop!_OS, they should work similarly for Ubuntu with minor adjustments.
Pre-Installation Steps
1. BIOS Configuration
Most modern PCs require disabling Secure Boot and TPM/device security features to install Linux distributions. To access BIOS:
- Power on your PC
- Immediately press and hold the
Deletekey- If that doesn't work, try tapping
F2,F8, orF12during startup - Different manufacturers use different keys, but
Deleteis increasingly common
- If that doesn't work, try tapping
Navigate to:
- Security/Boot section
- Disable "Secure Boot"
- Disable "TPM Security" if present
- Save changes and exit
2. Boot Order Configuration
While still in BIOS:
- Navigate to Boot Order/Boot Priority section
- Move USB drive to the top of the boot order
- Save changes and exit
3. Prepare Installation Media
- Download the OS:
- Pop!_OS 22.04
- Or Ubuntu 22.04 if you prefer
- Download Etcher to create bootable USB
- Use Etcher to flash the OS image to your USB drive
Installation Process
Partitioning Guide
When you reach the disk partitioning step, here's how to set up your partitions:
Why These Partitions?
- EFI partition stores bootloader files
- Root partition holds your OS and all data
- Modern systems with sufficient RAM often don't need swap
EFI System Partition
Root Partition
๐ก Pro tip: Leave 10MB free space before and after partitions for potential future adjustments.
Post-Installation Setup
System Updates
APT vs Pop!_Shop Pop!_OS uses APT for CLI package management and Pop!_Shop for GUI. Stick to one to avoid conflicts - I prefer APT for servers.
Setting Hostname
SSH Server Setup
Why SSH? SSH provides secure remote access to your server. Using key-based authentication is more secure than passwords.
Add/modify these lines:
Set up SSH keys:
Docker Installation
Why Docker? Docker containers provide isolated environments for running applications, making deployment and management easier.
Follow the official Docker installation guide for the latest instructions.
AppImage Management
Set Micro as Default Editor
Enable Automatic Reboot
Essential Tools Installation
My list of useful tools for development:
| Tool | Description | Installation |
|---|---|---|
| Homebrew | Package manager | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
| Lazygit | Git TUI | brew install lazygit |
| Lazydocker | Docker TUI | brew install jesseduffield/lazydocker/lazydocker |
| Node.js & npm | JavaScript runtime | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash |
| pnpm | Fast package manager | npm install -g pnpm |
| Python | Python runtime | sudo apt install python3 python3-pip |
| pipx | Python app installer | python3 -m pip install --user pipx |
| uv | Fast Python packager | curl -LsSf https://astral.sh/uv/install.sh | sh |
| Warp | Modern terminal | Visit warp.dev for installation |
| Micro | Terminal editor | sudo apt install micro |
Remember to test all services and configurations before considering the setup complete. This checklist has worked well for me across multiple server setups.