ubuntu-post-install icon indicating copy to clipboard operation
ubuntu-post-install copied to clipboard

Effortless, Flexible and Simple Post Install Script for Ubuntu, Linux Mint, Debian & their derivatives

Ubuntu / Debian Post Installation Script

Effortless way to setup your fresh Ubuntu, Linux Mint and Debian installation.

build release docs netlify version license

Bash

How to use this

1. Get the script

Using latest stable version (Recommended)

wget https://github.com/tprasadtp/ubuntu-post-install/releases/latest/download/after-effects -O after-effects
wget https://github.com/tprasadtp/ubuntu-post-install/releases/latest/download/sha256sums.txt -O sha256sums.txt
sha256sum -c sha256sums.txt

Using latest master branch

wget https://raw.githubusercontent.com/tprasadtp/ubuntu-post-install/master/after-effects -O after-effects

2. Setup your YAML configuration file

Setup YAML file to suit your needs. Change PPAs, add or delete packages to list etc. Please see Configuration & Tasks.

Configuration-Page Tasks-Page

3. Run the script

Run the script as root.

Sample configuration can be found in config directory.

  chmod +x after-effects
  sudo ./after-effects <path-to-your-config or url to config file>

See in Action

inaction

FAQ & Documentation

See /docs or visit docs

Supported Distributions

Ubuntu Kubuntu Lubuntu Xubuntu Ubuntu-Mate Ubuntu-Budgie Ubuntu-Studio Linux-Mint Debian Elementary-OS

I have not tested the script on the distros listed below. Because they use Ubuntu as their base, It should work fine. But no promises.

Kde-Neon Pop-OS Bodhi-Linux Peppermint-OS

For a complete list of supported distributions click here.

Features

Also handles adding several tweaks and fixes necessary to add repositories and PPAs, supports completely non-interactive mode, so that you can let it run while you have moaar ☕

Supported External repositories

Name Key Packages
Brave Browser* brave_browser brave-browser
Docker docker docker-ce, docker-ce-rootless-extras, docker-ce-cli
Element.io* element_io element-desktop
GitHub - CLI github gh
Google - Bazel* bazel bazel
Google - Chrome* chrome google-chrome-stable, google-chrome-beta
Google - Cloud SDK* googlecloud google-cloud-sdk, kubectl, google-cloud-sdk-minikube
Google - gVisor gvisor runsc
Hashicorp* hashicorp terraform, consul, nomad, vault, boundary, waypoint
Mendeley desktop* mendeley mendeleydesktop
Microsoft - Azure CLI* azurecli azure-cli
Microsoft - Edge* edge microsoft-edge-dev
Microsoft - Skype* skype skypeforlinux
Microsoft - Teams* teams teams, teams-insiders
Microsoft - VSCode vscode code, code-insiders, code-exploration
Miniconda* miniconda conda
NeuroDebian* neurodebian https://neuro.debian.net/
Podman (via OBS)* podman podman, podman-plugins, cri-o-runc, cri-tools, buildah, crun
ProtonVPN Client* protonvpn protonvpn
ROS ros
ROS2 ros2
Signal* signal signal-desktop
Slack Desktop* slack slack-desktop
Spotify Client* spotify spotify-client
Sublime Text Editor* sublimetext sublime-text
Vivaldi* vivaldi vivaldi-stable
Wine HQ* winehq winehq-stable, winehq-staging
Ubuntu - Universe ubuntu_universe
Ubuntu - Multiverse ubuntu_multiverse
Ubuntu - Restricted ubuntu_restricted
Debian - contrib debian_contrib
Debian - non-free debian_nonfree
  • azurecli is not supported on Ubuntu 18.04, Debian 9, 10 and their derivatives.
  • winehq is not supported on Ubuntu 18.04, Debian 9, 10 and their derivatives.
  • * Only amd64/x86_64 is supported. ARM CPUs like Raspberry Pi/Nvidia Tegra are not supported.

Issues & Help

  • Please check FAQ & known issues.
  • Please include the log file and terminal output while opening an issue.

Contributing & Forks

See Contributing and forks

Alternatives

  • snwh/ubuntu-post-install: Has few features like setting up dotfiles, but has limited config options and requires shell to be interactive. Only few external repositories are supported.
  • Ansible : Requires python on your system. Much more deteministic and better idempotency. There are plenty of roles and collections available on ansible-galaxy. But it adds more complexity and you have to write your own playbooks.