/setup

Workstation setup

Primary LanguageMakefile

Workstation setup

This repository can be used to bootstrap a fresh workstation.

Current supported operating systems:

  • Ubuntu 20.04 (x86_64)

Prerequisites

Ensure essential software has been installed.

apt install git build-essential sudo -y

Or, if you are not running as a super user, assuming sudo is available.

sudo apt install git build-essential -y

Add an SSH key to the list of allowed Github keys.

ssh-keygen -t rsa -C github@johmanx.com
cat ~/.ssh/id_rsa.pub

Create the git directory.

mkdir -p ~/git

Clone the current repository in that directory.

cd ~/git && git clone git@github.com:johmanx10/setup.git

Navigate into the setup directory.

cd ~/git/setup

Install

Install required

Run the installation.

make install

Result

The following files have been symbolically linked from the current repository to the home directory:

File Target alias
.gitconfig make gitconfig
.gitignore make gitignore
.zshrc make zshrc

In addition, the following files have been generated:

File Target alias
.gitconfig-user make gitconfig-user

The following software has been installed:

Name Target alias
Bash make bash
cURL make curl
Docker make docker
GIT make git
Google Chrome make google-chrome
JetBrains Toolbox make jetbrains-toolbox
jq make jq
lsb_release make lsb_release
Oh My Zsh make oh-my-zsh
Vim make vim
ZSH make zsh

Optional

make optional

All the following software can be installed at-once using:

make optional

To cherry-pick optional software, use the following phony targets:

Name Target Build status
Discord make discord make discord
Docker compose make docker-compose make docker-compose
Docker compose development make docker-compose-development make docker-compose-development
Epic Games Store make epic-games-store Will be added once Lutris supports unattended installations.
GIMP make gimp make gimp
Lutris make lutris make lutris
Node.js make node or make npm make node
RetroArch make retroarch make retroarch
Slack make slack make slack
Steam make steam make steam
Teamviewer make teamviewer make teamviewer
Transmission Remote GTK make transmission-remote make transmission-remote

Development

docker-make vim

In order to locally test a Make target, run the following:

./docker-make <TARGET>

Where <TARGET> is the target to be tested. E.g.: steam for Steam.

To test all installations, run:

./docker-make all

To specify the Docker image that runs the build, provide the IMAGE environment variable. It defaults to ubuntu:20.04.

IMAGE=ubuntu:18.04 ./docker-make all