This is the main repository containing all installation scripts, configuration and customization of operating system all application present in Spotter Cluster virtual machine.

## Operating system preparation

### Virtual machine specifications
- **Memory:** 4 GB
- **CPU:** 1 processor, 2 cores
- **Hard Disk:** SCSI, 60 GB

### Operating system media download
Download **Debian 9.0.0 amd64 netinstall** from <https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/> and launch Text-mode installation

## Operating system installation

### Locale settings
- **Language:** English
- **Country, territory or area:** other
- **Continent or region:** Europe
- **Country, territory or area:** Czech Republic
- **Country to base default locale settings on:** United States - en_US.UTF-8
- **Keymap to use:** American English

### Hostname
- **Hostname:** debian
- **Domain name:** [leave blank]

### Users
- **Root password:** [random password of your choice]
- **Full name for the new user:** user
- **Username for your account:** user
- **Choose a password for the new user:** [random passowrd of your choice]

Note: The *user* account will be deleted afterwards as part of installation steps.

### Partitions
- **Partitioning method:** Manual
1. Create empty partition table on SCSI1 (0,0,0) (sda)
2. Create new partition
   - **New partition size:** 256 MB
   - **Type for the new partition:** Primary
   - **Location for the new partition:** Beginning
   - Definition
     - **Use as:** Ext2 file system  
     - **Format the partition:** yes, format it  
     - **Mount point:** /boot  
     - **Mount options:** default  
     - **Label:** none  
     - **Reserved blocks:** 5%  
     - **Typical usage:** standard  
     - **Bootable flag:** on
3. Create new partition
   - **New partition size:** [maximum]
   - **Type for the new partition:** Primary
   - **Location for the new partition:** Beginning
   - Definition
     - **Use as:** physical volume for encryption  
     - **Encryption method:** Device-mapper (dm-crypt)  
     - **Encryption:** aes  
     - **Key size:** 128  
     - **IV algorithm:** xts-plain64  
     - **Encryption key:** Passphrase  
     - **Erase data:** no  
     - **Bootable flag:** off
4. Configure encrypted volumes
   - Create encrypted volumes
   - /dev/sda2
   - Finish
   - **Encryption passphrase:** [random]
5. Select encrypted volume (sda2_crypt), partition #1
   - **Use as:** physical volume for LVM
6. Configure the Logical Volume Manager
   - Create volume group
     - **Volume group name:** vg0
     - **Devices for the new volume group:** /dev/mapper/sda2_crypt
   - Create logical volume
     - **Volume group:** vg0
     - **Logical volume name:** swap
     - **Logical volume size:** 4 GB
   - Create logical volume
     - **Volume group:** vg0
     - **Logical volume name:** root
     - **Logical volume size:** [maximum]
   - Finish
7. Select LVM VG vg0, LV root, partition #1
   - Definition
     - **Use as:** Ext4 journaling file system  
     - **Mount point:** /  
     - **Mount options:** noatime  
     - **Label:** none  
     - **Reserved blocks:** 1%  
     - **Typical usage:** standard
8. Select LVM VG vg0, LV swap, partition #1
   - **Use as:** swap area
9. Finish partitioning and write changes to disk

### Packages
- **Scan another CD or DVD?:** No
- **Debian archive mirror counrty:** Czechia
- **Debian archive mirror:** ftp.cz.debian.org
- **HTTP proxy information:** [leave blank]
- **Participate in package survey:** No
- **Choose software to install:** [unselect all]

### Bootloader
- **Install the GRUB boot loader to the master boot record?:** yes
- **Device for boot loader installation:** /dev/sda

## Application installation

### First time setup
```
# Update package info
apt update

# Install git
apt install git

# Clone the repository
git clone https://gitlab.dasm.cz:8443/Spotter-Cluster/Spotter-Cluster.git

# Enter the repository directory
cd Spotter-Cluster

# Optional: Edit the install sequence script
vi 00-install.sh

# Launch the script
./00-install.sh
```

### Resuming from a snapshot
Assumes that the repository has already been cloned.
```
# Enter the repository directory
cd Spotter-Cluster

# Update repository
git pull

# Optional: Edit the install sequence script
vi 00-install.sh

# Launch the script
./00-install.sh
```
