Skip to content

Instantly share code, notes, and snippets.

@darkguy2008
Last active September 6, 2022 05:11
Show Gist options
  • Save darkguy2008/4f1128a530ac4bfca0ad1d0dffede919 to your computer and use it in GitHub Desktop.
Save darkguy2008/4f1128a530ac4bfca0ad1d0dffede919 to your computer and use it in GitHub Desktop.
Ubuntu post-install steps / snippets / scripts

Ubuntu 22.04 LTS post-install steps / snippets / scripts

Install Ubuntu as Ubuntu Server (minimized)

Delete user (if any)

sudo deluser --remove-home user

Add swap

SIZE=16G
sudo swapoff -a
sudo fallocate -l $SIZE /swap.img
sudo chmod 600 /swap.img
sudo mkswap /swap.img
sudo swapon /swap.img
sudo swapon --show

Speed up apt-get

cat <<EOF > 99parallel
APT::Acquire::Queue-Mode "access";
APT::Acquire::Retries 3;
EOF
sudo mv 99parallel /etc/apt/apt.conf.d/99parallel

Disable IPv6

sudo nano /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
GRUB_CMDLINE_LINUX="ipv6.disable=1"

sudo update-grub

Core apps to install

sudo rm -rf /var/lib/apt/lists/*
sudo apt update
sudo apt dist-upgrade -y
apps=(
  bash-completion
  dnsutils
  net-tools
  iputils-ping
  nano
  wget
  curl
  htop
  dialog
  psmisc
)
sudo apt install -y "${apps[@]}"
sudo apt clean
sudo apt autoremove -y
sudo apt autoclean
apps=(
  build-essential
)
sudo apt install -y "${apps[@]}"

Autologin with simple X

sudo apt install -y sddm
sudo apt install -y --no-install-recommends openbox python3-xdg xterm

sudo nano /etc/sddm.conf

[Autologin]
User=user
Session=openbox

Set up openbox session

mkdir -p ~/.config/openbox
echo 'xsetroot -solid black &' > ~/.config/openbox/autostart.sh
chmod +x ~/.config/openbox/autostart.sh

Add VNC

nano ~/.config/openbox/autostart.sh

x11vnc -display :0 -N -nopw -loop -forever -q -o /dev/null -passwd 123456 &

Debug GUI apps

sudo echo 'export DISPLAY=:0.0' >> /etc/bash.bashrc

Mount CIFS shares (Samba / SMB)

sudo nano /etc/z-credentials

username=user
password=password
domain=domain
sudo chown root: /etc/z-credentials
sudo chmod 600 /etc/z-credentials
sudo apt update
sudo apt install cifs-utils
sudo mkdir /mnt/z

sudo nano /etc/fstab

//WIN_SHARE_IP/share_name  /mnt/z  cifs  credentials=/etc/z-credentials,uid=1000,gid=1000,file_mode=0755,dir_mode=0755,mfsymlinks,nofail,noperm,nobrl 0       0

sudo mount -a

Install Google Chrome (latest stable)

sudo apt install -y wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
sudo rm -rf google-chrome-stable_current_amd64.deb

Install Node.js

DISTRO=impish
VERSION=node_16.x
KEYRING=/usr/share/keyrings/nodesource.gpg
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee "$KEYRING" >/dev/null
gpg --no-default-keyring --keyring "$KEYRING" --list-keys
echo "deb [signed-by=$KEYRING] https://deb.nodesource.com/$VERSION $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.list
echo "deb-src [signed-by=$KEYRING] https://deb.nodesource.com/$VERSION $DISTRO main" | sudo tee -a /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs
sudo npm i -g npm
sudo npm i -g npm
sudo npm i -g npm
sudo npm i -g npm
sudo npm i -g npm
node -v
npm -v

Install .NET 6

wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh -c Current
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
sudo apt install -y apt-transport-https

Install Docker + Docker Compose

sudo docker kill $(docker ps -q)

sudo apt update
sudo apt dist-upgrade -y
sudo apt autoremove -y
sudo apt remove --purge -y docker docker-engine docker.io containerd runc docker-ce docker-ce-cli containerd.io docker-compose
sudo rm -rf /usr/local/lib/docker/cli-plugins/docker-compose

sudo apt install -y wget gnupg2 apt-transport-https ca-certificates curl gnupg lsb-release
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
sudo echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -SL https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-linux-x86_64 -o /usr/local/lib/docker/cli-plugins/docker-compose
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose
sudo docker compose version

Cleanup

apps=(
  snapd
  multipath-tools
  tilix
)
sudo apt remove --purge "${apps[@]}"
sudo apt clean
sudo apt autoremove -y
sudo apt autoclean
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment