/ubuntu-post-install

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

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Ubuntu / Debian Post Installation Script

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

build website-deploy-badge 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
chmod +x ./after-effects

Using latest master branch

wget https://raw.githubusercontent.com/tprasadtp/ubuntu-post-install/master/after-effects -O after-effects
chmod +x ./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.

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 distributions based on Debian and Ubuntu. Though It should work fine.

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.