Easily install and configure your Ubuntu Desktop installation.
Release | Status | Branch to use |
---|---|---|
22.04 | Unstable | main |
22.04 | Stable | 22.04 |
20.04 | Unmaintained | 20.04 |
18.04 | Unmaintained | 18.04 |
16.04 | Unmaintained | 16.04 |
In order to run the the following installation process and script you need to have :
- access to a shell
- unzip
- wget
- Ansible 2.8+ (we handled the installation via the run.sh script)
wget -O installer.zip https://github.com/jygastaud/ubuntu-installer/archive/<branch>.zip
unzip installer
cd ubuntu-installer-<branch>
cp default.config.yml config.yml
and edit the config.yml file (you can keep only the line you change in that file).
Then
./run.sh
./run.sh --ansible
You can use Ansible tag to run only some part of that playbook.
Examples:
- Install only packages
ansible-playbook playbook.yml -i hosts --user=$(whoami) -e "my_user=$(whoami)" --ask-become-pass --tag packages
- Install only git
ansible-playbook playbook.yml -i hosts --user=$(whoami) -e "my_user=$(whoami)" --ask-become-pass --tag git
- Install all
dev-tools
ansible-playbook playbook.yml -i hosts --user=$(whoami) -e "my_user=$(whoami)" --ask-become-pass --tag dev-tools
Notes: Tags are not be available for every tools.
Tools marked with ✔ are installed by default. You can override the config.yml file to match your needs.
-
✔ System packages (install with Snap or apt)
- asciinema - Record terminal sesions
- ✔ autojump - better cd
- ✔ Bat - Cat clone
- ✔ curl
- ✔ direnv - Easy management of local environment variables
- expect
- ✔ htop
- ✔ httpie - HTTP Client
- ✔ JQ - Json Processor
- Mosh - Mobile Shell
- ✔ NFS
- ✔ OpenVPN
- ✔ Parallel
- ✔ Peco - Interactive filtering tool
- ✔ Postman
- Rclone - sync files and directories
- ruby
- syncthing
- ✔ tmux
- tmuxp
- traceroute
- ✔ tree
- YQ - Yaml Processor
- ✔ xsel
-
Dev tools
- Code versioning
- ✔ Git (with official repository)
- Subversion
- Cloud tools
- aws-cli
- Azure cli
- google-cloud-sdk
- Kubernetes
- faas
- helm
- Kontena Lens
- kubectl
- microk8s
- openshift client (oc)
- Java
- Databases
- MySQL Workbench
- mysql-client
- Nodejs + npm
- Virtualisation
- ✔ Docker (with official repository)
- ✔ Docker Compose (v2)
- Docker Compose (v1)
- footloose
- multipass
- Virtualbox
- Vagrant
- pipenv
- gitlabci-local
- asdf (with asdf you can install many tools such as terraform, terragrunt, dagger etc…)
- tldr
- Code versioning
-
Browsers
- ✔ Chrome (via snap package)
- Firefox is not installed here as it is include even in minial installation of Ubuntu.
-
Shell
- ✔ Zsh & Oh-My-Zsh
-
Editor / IDE
- Atom (via snap)
- PHPStorm (via snap)
- Sublime Text (via snap)
- VSCode (via snap)
-
Others
- Calibre
- Claat
- Chezmoi - dotfiles manager
- FileZilla
- InSync - Google Drive Synchro
- Pet - snippet manager
- Rambox
- Spotify
- ✔ Typora - Markdown Editor
- Vokoscreen
-
Password managers
config file also allows you to define :
- your oh_my_zsh configurations (theme, plugins)
- your shell aliases
- your git config
- Add the following tools
- Barrier
- Clockify
- anchore/grype
- Trivy
- infrahq
- openlens
- remmina (rdp client)
- apache2-utils
- asciidoc
- flatpack
- shellcheck
- touchgg https://github.com/JoseExposito/touchegg
- neovim
- Azure functions cli
- inkscape
- confluent cloud (ccloud)
- hugo (without snap)
- jungledisk / junglediskcli (https://downloads.jungledisk.com/current/junglediskdesktop_amd64.deb)
- kompose
- okteto
- lab
- protonvpn / protonvpncli (pip)
- zoom
- xclip
- pip
- diagrams
- blastraduius
- ansible-autodoc
- VLC
- wireguard
- xdg-utils
- process
- activate/configure vscode plugins
- activate/configure phpstorm plugins
- find a way to add tags for every tools, so we can install them individually
- Others? Create an issue!