An Alpine Overlay to set up an easy-to-use distro, which is low on memory consumption.
  • Scheme 51.3%
  • Shell 48.7%
Find a file
2023-08-30 18:19:55 +02:00
assets Initial commit, with a testing version 2023-08-24 18:26:35 +02:00
overlay Added manager account, to allow easier system customization 2023-08-30 18:19:55 +02:00
screenshots Added screenshots 2023-08-27 20:49:09 +02:00
scripts Adjusted links for tag 10 2023-08-27 20:17:27 +02:00
.gitmodules Initial commit, with a testing version 2023-08-24 18:26:35 +02:00
LICENSE Initial commit, with a testing version 2023-08-24 18:26:35 +02:00
README.org Added manager account, to allow easier system customization 2023-08-30 18:19:55 +02:00

Cushion

/comcloudway/cushion/media/branch/main/assets/banner.png

An Alpine Overlay to set up an easy-to-use distro, which is low on memory consumption.

This project is NOT affiliated with the Alpine Linux project, use at your own risk.

The Cushion overlay is targeted at people looking to setup one or more laptops/workstations to be used in semi-public places, by people with no Linux experience, coming from a Windows background. It is ideal for people who quickly need to write a word document, or browse the web and print out a picture.

About the name

The name & logo are inspired by the Alpine plant wikipedia article. Cushion plants are alpine plants (according to the first article), which means that they can be found in alpine environments.

Cushion is an overlay for Alpine Linux, thus operating in an alpine environment.

The logo is a version of the official Alpine Linux Logo, with the smaller mountain removed, and the mountain oriented on the right moved below the biggest. The photo in the background is a cushion plant with the Gimp weave filter applied.

Screenshots

To reduce page-load-time, screenshots can be found here.

Default Applications

  • xfce4 with a windows 10 theme & icon pack
  • lightdm, with a basic windows theme and guest autologin
  • Office Suite

    • libreoffice-writer
    • libreoffice-draw
    • libreoffice-calc
    • libreoffice-impress
  • firefox

Packaging

To manually package the overlay file, simply run the following command

tar -C overlay -czf cushion.apkovl.tar.gz .

Installation

Both sys and data installs are supported.

Because we rely on guest session, all data created/modified in the home folder (when logged in), won't persist after reboot or after logging out. Additionally the guest users do not have root access, this means that people accessing the system should not be able to able to break anything.

Installation in sys mode

This mode is a traditional disk install. The following partitions will be created on the disk: /boot, / (filesystem root) and swap.

  • setup-disk help page

Better suited for devices with less than 4GiB of RAM, however it is easier to setup than the data install, so you probably want to use this mode. Especially since it is the type of installation commonly found on computers.

Steps

To install the cushion overlay on a sys install, simply run through the setup-alpine process, as you would normally, reboot into your newly setup OS and login as the root user.

Now you have to extract the overlay onto your system root:

# install git to clone the repo
apk add git
# clone this repo & the theme/icon submodules
git clone https://codeberg.org/comcloudway/cushion --depth 2
cd cushion
git checkout 10
# Package the overlay
tar -C overlay -czf cushion.apkovl.tar.gz .
# extract the overlay onto the root
tar -xvzf cushion.apkovl.tar.gz -C /

Alternatively, you could use the script in this repo, which does exactly the same:

curl https://codeberg.org/comcloudway/cushion/raw/tag/10/scripts/setup-sys.sh | sh -

But keep in mind, that running scripts over the network might be potentially dangerous.

After you finished extracting the overlay, reboot the system and the files should be installed automatically.

You should be greeted with a windows-like desktop. The last step is changing the manager password, see the Additional Configuration Section below for more.

Installation in data mode

This mode uses your disk(s) for data storage, not for the operating system. The system itself will run from tmpfs (RAM).

  • setup-disk help page

The system doesn't remember any changes made, unless they were committed using the lbu Backup Utility.

Requirements

As pointed out by the quote above, the system runs from tmpfs (RAM). From what I can tell, Alpine Linux creates a tmpfs that is half the size of the system memory. That means that when you have 4GiB of RAM, your tmpfs will have a size of 2GiB.

As the system has to fit onto the tmpfs, half of your RAM has to be able to fit the overlay (after installation).

As of writing the required memory size is 4GiB.

If you don't have 4GiB of RAM, you might want to consider installing in sys mode.

Steps

Using an ISO

When using the official ISO (as you would, when setting up a Desktop PC), you either have to perform a basic data installation and copy the overlay file later.

Or you take the simpler route and try to bound the overlay directly into the .iso, before flashing the thumb drive:

One way of doing this is to install xorriso and running the following command:

xorriso \
    -indev input.iso \
    -outdev output.iso \
    -boot_image isolinux patch \
    -add cushion.apkovl.tar.gz

Afterwards you have to flash the output.iso to your boot medium.

Make sure your system is connected to the network and power it on. The system should install itself automatically. If you don't want to download the packages every time, you might want to setup an apk cache.

Using a tar archive

When using a tar.gz to setup the computer (for example, when using the Alpine Linux Raspberry Pi image), you simply have to copy the overlay file onto the drive where you extracted the tar.gz.

Make sure your system is connected to the network and power it on. The system should install itself automatically. If you don't want to download the packages every time, you might want to setup an apk cache.

Configuration

Network

The network configuration code has been taken from alpine-linux-headless-bootstrap.

Interfaces

By default all interfaces will be started using dhcp, if this does not suit you, you can provide a custom interfaces file.

Wifi

If you do not have an Ethernet connection, you have to setup wifi.

On sys installations, you can simply use the setup-interfaces command, which is part of setup-alpine.

But if you want to preconfigure wifi access on a data install, you have to provide a wpa_supplicant.conf file. Have a look at the Arch Wiki for a guide on how to create a working wpa_supplicant.conf file.

Languages

By default, all languages found in the languages.yml will be installed, but you can either replace the file in /etc/languages.yml, or put a custom languages.yml in the same folder as the overlay (when using the data mode) to overwrite the default list.

  • if no languages are specified, you won't be able to login.
  • if one language is specified, it will automatically be selected
  • if multiple languages are specified, a language picker windows will be shown before guest login

Additional

To perform additional configuration, you can log in as the manager user:

  1. Boot the system, you'll be automatically logged in as guest-XXXXXX user
  2. Log out (in the application menu)
  3. Log back in, selecting the Linux User / manager account, the default password is manager, but if you are using a sys install, you should change it, because all files the manager creates will persist after rebooting.

The manager user can configure standby time, or a default browser setup, i.e. Ad Blockers. After changing the files, log out and you should see them take affect immediately.

When using the data install, you have to use the lbu command to add and commit your changes before logging out.

Keep in mind: Because the guest users home directory (and configuration files) are derived from the manager, every file you keep in the manager's home folder, or your browser history will be accessible by the new guest accounts.

Resources