FILL

abstract: FILL

SmallIT or FamilyIT: The Set-up for IT at my home

Information technology (IT) has becomming more and more important in our lives; through the COVID pandemy and lock-downs IT has become the major liveline to people outside of our household. In the past I have struggled with the installation of operating systems (OS) on hardware.

Only 40 years ago, we were happy when we had an OS to run on an expensive piece of hardware (Macintosh, IBM PC) and more experimental systems (e.g. an Motorola 6809 based Unix-like box) were only useable for experts. Twenty years ago, installation and upgrades mostly worked out of the box and connecting to email and the internet succeeded mostly. But most people did not use computers at home and hardly anybody was dependent on them. Now, with home-office and home-school, a family relies on the use of a computer per person and all of them connected to the internet by at least 10 Mbits/s.

The change in the use and the usage pattern requires rethinking of how we set up the computers in our homes. I do not think that there are any simple solutions anymore: buy all from one vendor (probably Apple), use storage in the cloud, and ... It is likely expensive, insecure (the cloud is a single point of failure!), difficult to protect against intrusion and enforce privacy and may break at the seams between the devices and services from different providers.

Synchronizing the different computers in my environment became an obsession from the moment I was force to use multiple computers; a blog dated 2009-05-09 demonstrated my frustration with the regularly encountered differences between similar operations in different environments (see the blog). The approach today is promising more uniformity among the computing environments I am forced to use.

My approach is now to engineer the set-up from list of requirements and then see, how these requirements can be met with limited resources (in time, money, interest). The design should be valid for at least a decade and guarantee that data remains usable for half a century.

Requirements for familyIT

My family is a good example of todays IT environment of families in the western world. The family has two addults which work with text, occasionally images; there is a youngster who goes to school and will transfer to an university (possibly in another city). The family has a home in town and a second home in the countryside; both must be fully functional for unlimited times (i.e. any of them must function as the primary home). There must be portable devices to use for travel -- with a limited functionality. Each member has a mobile phone and integration of data from these is a must.

Each member has (potentially) a computer at his work location; these computers may be controlled by the employer and dificult to integrate; currently I have two computers at TU (linux boxes, accessibly with ssh on a VPN).

Specific functionality:

Synchronization

The data on the different devices - as far as it is shared - must be seamlessly and effortlessly syncronized (i.e. it is always up-to-date on any device it is available).

Often overlocked is the need to synchronize the complete configuration: functionality of any of the tools must be the same on any of the devices (but possibly different for different members of the family).

Minimal maintenance with maximal flexibility

Maintenance is reduced by following an ISO-OSI approach of functional layers with standardized interfaces, which allow replacement of the functionality of a layer by another package without affecting the layers above. Adherence to standardized interfaces increases flexibility and extensibility for future requirements.

The sequence of layers is important - as will be discovered when building a practical system. In which order can functional layers be started and which layers depend on services of lower layers?

Layers

A layered solution is automatically a solution based on Linux (but not necessarily Open Source). Window and Apple can be mixed and matched, but only with substantial loss at the boundaries; the layers and their order are fixed by the proprietary design. Pproprieatary interfaces do not guarantee long-term servicability (except for well-funded and well-staffed IT departments).

The layers from bottom-up:

A relatively large collections of software packages each has its own configuration data, often stored in separate files, which is hard to keep synchronized configurations.

Graphics: - for book covers: GNU

Architecture

Hardware

There are different pieces of hardware (boxes):

All boxes are connected locally to the internet.

The boxes

Layer: OS - Desktop

For particular types of boxes:

Layer: internet

The DNS records are updated with ..

synced data Storage

All the data folder on the syncserver (and the corresponding data on the desktop etc.) are always in sync.

TODO: reduce the number of synced folders: - Desktop (includes blog) - Data (includes ansible) - Workspace - common (shared af and christine) - Photos (one folder or per several years) - Movies - Music - Archives (till 2010, till 2020?) - mail archives - AF_install {AMD, ARM} - hardware specific: tablet, phone - Downloads - serveronly (especially git?)

delete: - Templates (move bibtex to Data, actual templates installed with ansible) - pendenzen

Regular backup with borg (on desktop, on big desktop backup of syncserver); the borg backup disk are 2 portable small ones (1tb, 2tb) and 2 fixed ones (one geras, one pressgasse, 3..4 TB)

TODO: regular borg backup of syncserver

TODO: how to move photos and music to definite storage?

TODO: how to maintain mail archive the structure of the local email in thunderbird and evolution seems both to be mbox (all mail in a file, each started with a line "From ..."). Integration in the evolution database approach is very slow; what is the advantage?

TODO: Perhaps stay with thunderbird, done: all old mail in mbox format in mail-archive. can be used in evolution (on big desktop)

big desktop can have local storage for all directories where they intend changes (with sync and thus versioning).

small desktop have only - Desktop - Data - Download - Workspace - commonAFchristine

Documents is a local storage, not synched (better name?) - or should this be synced.

Path to install and maintain

Realizing that the installation of the system is, as in most IT problems, only lesser part of the problem; maintenance is the issue. It is easy to set up a computer for daddy and then later a mobile phone for him and then a computer for the daughter and then connect them and then ... Quickly overview is lost and hell breaks lose when one piece of hardware breaks down and must be replaced. Of course, there is documentation ... at least, there should be ...

I have maintained handwritten notes in bound notebooks when I installed something; 1..2 per year, a total of more than two dozens. not really helpful! I maintain a summary in a wiki, somewhat more helpful but regularly outdated and incomplete.

My new approach is ansible which is an executable installation receipt and, at the same time, a readable and reliable documentation. I can now repeat the configuration steps for multiple computers or after replacing one: better than a backup of the operating system!

Produced with SGG on with master5.dtpl.