diff --git a/README.md b/README.md
index 8c3480b..4a8a90a 100644
--- a/README.md
+++ b/README.md
@@ -1,119 +1,35 @@
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
+## 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 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
+Download **Alpine Virtual 3.7.0 x86_64** from and boot from it. At the login prompt, use the root user without password to log in.
-### Hostname
-- **Hostname:** debian
-- **Domain name:** [leave blank]
+```
+# Set up interfaces (leave the default choices)
+setup-interfaces
+ifup eth0
-### 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]
+# Download and launch the setup script
+wget dl.dasm.cz/alpine.sh
+sh alpine.sh
+```
-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
+The script will perform the bare Alpine linux installation into VM using LUKS-on-LVM. The default disk encryption password is `password`. No root password is set.
## Application installation
### First time setup
```
# Update package info
-apt update
+apk update
# Install git
-apt install git
+apk --no-cache add git
# Clone the repository
git clone https://gitlab.dasm.cz:8443/Spotter-Cluster/Spotter-Cluster.git
diff --git a/alpine.sh b/alpine.sh
new file mode 100644
index 0000000..a56e87e
--- /dev/null
+++ b/alpine.sh
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+# Prerequisites
+# setup-interfaces
+# ifup eth0
+
+# Set up repositories
+cat </etc/apk/repositories
+http://repository.fit.cvut.cz/mirrors/alpine/v3.7/main
+http://repository.fit.cvut.cz/mirrors/alpine/v3.7/community
+#http://repository.fit.cvut.cz/mirrors/alpine/edge/main
+#http://repository.fit.cvut.cz/mirrors/alpine/edge/community
+#http://repository.fit.cvut.cz/mirrors/alpine/edge/testing
+EOF
+
+# Install disk management tools
+apk --no-cache add lvm2 cryptsetup e2fsprogs syslinux
+
+# Create disk partitions
+cat </mnt/etc/fstab
+/dev/vg0/root / ext4 rw,noatime,data=ordered 0 1
+${BOOT_UUID} /boot ext4 rw,noatime,data=ordered 0 2
+/dev/vg0/swap swap swap defaults 0 0
+EOF
+echo "system /dev/sda2 none luks" >/mnt/etc/crypttab
+
+# Rebuild initfs
+sed -i 's/lvm/lvm cryptsetup/' /mnt/etc/mkinitfs/mkinitfs.conf
+mkinitfs -c /mnt/etc/mkinitfs/mkinitfs.conf -b /mnt $(ls /mnt/lib/modules)
+
+# Update extlinux
+sed -i 's/rootfstype=ext4/rootfstype=ext4 cryptroot=\/dev\/sda2 cryptdm=system/' /mnt/etc/update-extlinux.conf
+chroot /mnt update-extlinux
+
+# Set time zone
+chroot /mnt setup-timezone -z Europe/Prague
+
+# Set hostname
+echo 'vm' >/mnt/etc/hostname
+sed -i 's/localhost/vm/' /mnt/etc/network/interfaces
+sed -i 's/localhost /vm localhost /' /mnt/etc/hosts
+
+# Enable services on boot
+ln -s /etc/init.d/networking /mnt/etc/runlevels/boot
+ln -s /etc/init.d/urandom /mnt/etc/runlevels/boot
+
+# Install bootloader to MBR
+dd bs=440 count=1 conv=notrunc if=/mnt/usr/share/syslinux/mbr.bin of=/dev/sda
+
+# Unmount and shut down
+umount /mnt/boot
+umount /mnt
+swapoff -a
+vgchange -a n
+cryptsetup luksClose system
+poweroff