~comcloudway/cushion

cc56a929703517c4df4b3ccde3f007bc18588981 — Jakob Meier 1 year, 2 months ago 14d1ebb
Extended documentation & added setup helper script
2 files changed, 119 insertions(+), 40 deletions(-)

M README.org
A scripts/setup-sys.sh
M README.org => README.org +105 -40
@@ 5,7 5,6 @@
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.



@@ 16,22 15,23 @@ 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.

* System requirements
As of writing I was unable to update the overlay
(which you probably have to do, if you want to persist changes,
without manually editing the files and regenerating the overlay)
with less than ~4GB~ of RAM.
** About the name
The name & logo are inspired by the [[https://en.wikipedia.org/wiki/Alpine_plant][Alpine plant wikipedia article]].
[[https://en.wikipedia.org/wiki/Cushion_plant][Cushion plants]] are alpine plants (according to the first article),
which means that they can be found in [[https://en.wikipedia.org/wiki/Alpine_climate][alpine environments]].

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

(This is because the ~tmpfs~ created by Alpine is ~RAM/2 GB~ in size,
and given that our base install is about one gig, we need twice as much)
You might be able to get away with less RAM
(for example by removing unwanted files and rebuilding the image,
or somehow increasing the ~tmpfs~ size),
however the size is probably only going to increase,
as I would love to add printer drivers.
The logo is a version of the [[https://commons.wikimedia.org/wiki/File:Alpine_Linux.svg][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.

* 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~


@@ 39,8 39,95 @@ as I would love to add printer drivers.
  - ~libreoffice-impress~
- ~firefox~

* Setup
** With an ISO
* Packaging
To manually package the overlay file,
simply run the following command
#+begin_src bash
tar -C overlay -czf cushion.apkovl.tar.gz .
#+end_src


* 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
#+begin_quote
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
#+end_quote

*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:
#+begin_src bash
# 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
# Package the overlay
tar -C overlay -czf cushion.apkovl.tar.gz .
# extract the overlay onto the root
tar -xvzf cushion.apkovl.tar.gz -C /
#+end_src
Alternatively, you could use the [[./scripts/setup-sys.sh][script in this repo]],
which does exactly the same:
#+begin_src bash
curl https://codeberg.org/comcloudway/cushion/raw/branch/main/scripts/setup-sys.sh | sh -
#+end_src
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.

** Installation in data mode
#+begin_quote
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
#+end_quote

The system doesn't remember any changes made,
unless they were commited using the ~lbu~ [[https://wiki.alpinelinux.org/wiki/Alpine_local_backup][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 [[Installation in sys mode][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.


@@ 66,11 153,11 @@ 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.

** With a rootfs
When using the rootfs to setup the computer
**** 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 copied the other installation files.
where you extracted the ~tar.gz~.

Make sure your system is connected to the network
and power it on.


@@ 78,28 165,6 @@ 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.

** As a sys install
If you don't want to,
or can't (i.e you do not have enough RAM) use the ~data~ install,
you can fall back to the ~sys~ install mode.

However: Keep in mind, that all changes made by the user will persist.

To install the cushion overlay on a ~sys~ install,
simply run through the ~setup-alpine~ process you would normally,
when performing a ~sys~ install, but then mount the root partition
and extract the overlay archive onto it and reboot.

The system should now install itself,
everything should be working without the need to reboot,
however you might want reboot just to make sure.

* Packaging
To manually package the overlay file,
simply run the following command
#+begin_src bash
tar -C overlay -czf cushion-generated.apkovl.tar.gz .
#+end_src

* Resources
- [[https://github.com/B00merang-Artwork/Windows-10][B00merang-Artwork Windows 10 Icon Theme]]

A scripts/setup-sys.sh => scripts/setup-sys.sh +14 -0
@@ 0,0 1,14 @@
#!/bin/sh

# 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

# Package the overlay
tar -C overlay -czf cushion.apkovl.tar.gz .

# extract the overlay onto the root
tar -xvzf cushion.apkovl.tar.gz -C /