Laptop: kobol

Setup, configuration and documentation for my local Ubuntu workstation following an infrastructure as code approach.

Requirements Overview

  1. Setup my local workstation with minimal manual interactions.

  2. Add or update packages without any risk → avoid having to repair broken installations (dumping the broken setup and reverting to a working one is preferred).

  3. Test the setup regularly (automated) to ensure a new installation from scratch will work.

Quality Goals

  1. The whole setup of my local workstation, all my Vagrantboxes and all my Docker images is Infrastructure as Code.

  2. Software installations through the classic package managers like apt should be avoided. As much as possible should run inside docker containers. This is true for the host machine as well as Vagrantboxes.

Building Block View / Whitebox Overall System

Services

The following services are up and running when the machine is started.

Service URL User (Password)

Node Exporter

http://localhost:9100

-

cAdvisor

http://localhost:9110

-

Portainer

http://localhost:9990

admin (admin)

Install

Download and install a fresh Ubuntu from an iso image:

  1. Download iso image from https://ubuntu.com/download/desktop

  2. Create bootable USB stick using the application "Startup Disk Creator" (shipped with Ubuntu) or some other software like Etcher

  3. Install the OS on the machine

Once the basic OS is installed, perform the following steps on your machine:

  1. Choose NVIDIA graphics driver from "Additional Drivers"

  2. Enable Dark Mode

  3. Setup three monitors, Dock position and icon size, add favourite applications to Dock

  4. Login to Firefox Sync

  5. Adjust wokspaces behavior in Settings > Multitasking (Workspaces on all displays)

  6. Setup Deja Dup Backup folder to "/media/sebastian/USB-1TB/.kobol-backups/deja-dup

  7. Run setup from infrastructure repository

    1. Install git using sudo apt-get install -y git and create folder mkdir -p ~/work/repos/sebastian-sommerfeld-io

    2. Clone repository (git clone https://github.com/sebastian-sommerfeld-io/infrastructure.git) to ~/work/repos/sebastian-sommerfeld-io

      1. Run src/main/workstations/kobol/provision/10-configure.sh → Basic configuration and .bashrc settings

      2. Run src/main/workstations/kobol/provision/20-install.sh → Install software packages

      3. Run src/main/workstations/kobol/provision/21-install-intellij.sh → Install IntelliJ

      4. Run src/main/workstations/kobol/provision/90-start-services.sh → Start basic services and docker containers which are always running

    3. Add ~/work, ~/temp and ~/virtualmachines to favourites (in File Manager)

    4. Update file associations in Settings > Applications > Sublime Text

    5. Clone repositories

  8. Enable Auto-Export for Firefox bookmarks

  9. Import existing Virtualbox VMs

Steam Setup for Windows Games on Linux

  1. Install Steam

  2. Enable the Steam Beta Client: Go to Steam → Settings and (in the account tab) click change in the Steam Beta Update and click on Steam Beta Update

  3. Enable Steam Play for all games: Go to Settings → Steam Play Tab and click "Enable Steam Play for all titles"

  4. Install the respective games

Monitor Setup

screens.drawio

Architecture Decisions

Risks and Technical Debts

Scale for Probability and Impact: Low, Medium and High

# Title Description Probability Impact Response

1

none

none

none

none

none