Welcome! Type "help" for available commands.
$
Loading terminal interface...
Back to Blog

Setting Up a New PC / Server with Pop!_OS 22.04

September 25, 2024
William Callahan

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.

linuxpop-osservertutorialchecklist
Setting Up a New PC / Server with Pop!_OS 22.04

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:

  1. Power on your PC
  2. Immediately press and hold the Delete key
    • If that doesn't work, try tapping F2, F8, or F12 during startup
    • Different manufacturers use different keys, but Delete is increasingly common

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:

  1. Navigate to Boot Order/Boot Priority section
  2. Move USB drive to the top of the boot order
  3. Save changes and exit

3. Prepare Installation Media

  1. Download the OS:
    • Pop!_OS 22.04
    • Or Ubuntu 22.04 if you prefer
  2. Download Etcher to create bootable USB
  3. 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

Partition Name: EFI
Label: EFI
Create as: Primary Partition
File System: fat32
Mount point: /boot/efi
Size: 1GB  # Being generous for safety

Root Partition

Partition Name: Root
Label: Pop_OS
Create as: Primary Partition
File System: ext4
Mount point: /
Size: Remaining space

πŸ’‘ 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.

# Update package lists and upgrade system
sudo apt update
sudo apt upgrade

Setting Hostname

sudo hostnamectl set-hostname NEW_HOSTNAME

SSH Server Setup

Why SSH? SSH provides secure remote access to your server. Using key-based authentication is more secure than passwords.

# Install SSH server
sudo apt install openssh-server

# Configure SSH
sudo nano /etc/ssh/sshd_config

Add/modify these lines:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Set up SSH keys:

# Create .ssh directory
sudo mkdir -p ~/.ssh
sudo chmod 700 ~/.ssh

# Add your public key
echo "your-public-key" > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# For root (if needed)
sudo mkdir -p /root/.ssh
sudo chmod 700 /root/.ssh
sudo cp ~/.ssh/authorized_keys /root/.ssh/
sudo chmod 600 /root/.ssh/authorized_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

# Create applications directory
sudo mkdir -p /opt/applications

# For each AppImage:
chmod +x your-app.AppImage
sudo mv your-app.AppImage /opt/applications/

# Create desktop entry
cat << EOF > ~/.local/share/applications/your-app.desktop
[Desktop Entry]
Name=Your App Name
Exec=/opt/applications/your-app.AppImage
Icon=/path/to/icon.png
Type=Application
Categories=Utility;
EOF

Set Micro as Default Editor

# Install Micro
sudo apt install micro

# Set as default editor
sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/micro 100
sudo update-alternatives --config editor

# Configure for git
echo 'export VISUAL=micro' >> ~/.bashrc
echo 'export EDITOR=micro' >> ~/.bashrc
source ~/.bashrc

Enable Automatic Reboot

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Essential Tools Installation

My list of useful tools for development:

ToolDescriptionInstallation
HomebrewPackage manager/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
LazygitGit TUIbrew install lazygit
LazydockerDocker TUIbrew install jesseduffield/lazydocker/lazydocker
Node.js & npmJavaScript runtimecurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
pnpmFast package managernpm install -g pnpm
PythonPython runtimesudo apt install python3 python3-pip
pipxPython app installerpython3 -m pip install --user pipx
uvFast Python packagercurl -LsSf https://astral.sh/uv/install.sh | sh
WarpModern terminalVisit warp.dev for installation
MicroTerminal editorsudo 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.

Similar Content

HomeExperienceEducationCVProjectsBookmarksInvestmentsContactBlog
Welcome! Type "help" for available commands.
$
Loading terminal interface...

Similar Content

Related Articles

BLOG
August 30, 2024
New Virtual Machine Server Setup Checklist

New Virtual Machine Server Setup Checklist

A detailed guide to setting up a new Linux virtual machine server, from initial updates to security hardening

serverlinuxdocker+10 more
William CallahanWilliam Callahan

Related Investments

INV
December 31, 2022
AngelList

AngelList

Platform connecting startups with investors, talent, and resources for fundraising and growth.

investment platformsotheractive+8 more
aVenture
INV
December 31, 2021
NorthOne Business Banking

NorthOne Business Banking

Digital banking platform designed specifically for small businesses and startups.

financeseries cactive+8 more
INV
December 31, 2021
Sudrania

Sudrania

Fund administration and accounting platform for investment managers.

financeseries aactive+7 more

Related Bookmarks

LINK
November 26, 2025
How I Use Claude Code & SSH on My Phone with Termux and Tailscale

How I Use Claude Code & SSH on My Phone with Termux and Tailscale

You don’t need a new startup or third-party service to use Claude Code on your phone. You just need SSH, Tailscale, and Termux. Here’s how to code fro...

claude coderemote developmentmobile development+10 more
skeptrune.com
LINK
December 4, 2025
Everything I know about good API design

Everything I know about good API design

Most of what modern software engineers do involves APIs: public interfaces for communicating with a program, like this one from Twilio. I’ve spent a l...

software engineeringapi designbackend development+10 more
seangoedecke.com
LINK
July 1, 2025
The New Skill in AI is Not Prompting, It’s Context Engineering

The New Skill in AI is Not Prompting, It’s Context Engineering

Context Engineering is the new skill in AI. It is about providing the right information and tools, in the right format, at the right time.

context engineeringprompt engineeringai agents+10 more
philschmid.de

Related Projects

PRJ
Filey - Flag Deprecated Files Extension

Filey - Flag Deprecated Files Extension

VS Code extension for flagging deprecated files

vs codevisual studio codecursor+17 more
PRJ
ComposerAI

ComposerAI

AI email client / mailbox for agentic search and tasks

aiemail clientllm+13 more
PRJ
repo-tokens-calculator

repo-tokens-calculator

CLI token counter (Python + tiktoken + uv) with pretty summary

clipythontiktoken+11 more