This commit is contained in:
metamuffin 2024-11-13 14:25:26 +01:00
parent 0de6858c8a
commit eee95db443
No known key found for this signature in database
GPG key ID: 718F9749DCDBD654
3 changed files with 72 additions and 7 deletions

View file

@ -1,6 +1,3 @@
# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist,
# network-online.target gets needlessly delayed.
# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any

View file

@ -1,14 +1,82 @@
# Abrechenbarkeit SD
An immutable linux distribution exclusively for running
An immutable linux distribution exclusively for running web applications such as
Abrechenbarkeit.
## Configuration
EFI Variables for Configuration
This distribution on its own is rather application agnostic. It can run any
web-app of your choice. All configuration is done through EFI firmware variables
(yes thats a very bad idea).
- 97b6e7a4-b8a6-4d85-b7c4-0030bb5f2d38-WlanSSID
- 97b6e7a4-b8a6-4d85-b7c4-0030bb5f2d38-WlanPSK
- 97b6e7a4-b8a6-4d85-b7c4-0030bb5f2d38-WlanSSID (optional)
- 97b6e7a4-b8a6-4d85-b7c4-0030bb5f2d38-WlanPSK (optional)
- 97b6e7a4-b8a6-4d85-b7c4-0030bb5f2d38-AppUrl
## Building
Run `mkarchiso -v -w /tmp/abrecheniso .`. For more information see
[the ArchWiki article](https://wiki.archlinux.org/title/Archiso#Build_the_ISO).
## File Overview
- `airootfs/etc/hostname` Sets hostname to "asd"
- `airootfs/etc/locale.conf` Sets locale to C
- `airootfs/etc/localtime` Sets Europe/Berlin timezone
- `airootfs/etc/mkinitcpio.conf.d/archiso.conf` Standard mkinitcpio config
- `airootfs/etc/mkinitcpio.d/linux.preset` Standard mkinitcpio config
- `airootfs/etc/os-release` Rebrands system
- `airootfs/etc/pam.d/cage` Allows cage to start a user session
- `airootfs/etc/shadow` Passwords (none)
- `airootfs/etc/ssh/sshd_config.d/10-login.conf` Allow root login, disable
password login
- `airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf` Randomize
IPv6
- `airootfs/etc/systemd/network/20-ethernet.network` Configure ethernet via
DHCP + mDNS
- `airootfs/etc/systemd/network/20-wireless.network` Configure wireless via
DHCP + mDNS
- `airootfs/etc/systemd/network/20-rename-wlan.link` Rename all wireless
interfaces to "wfi0"
- `airootfs/etc/systemd/resolved.conf.d/mdns.conf` Enable mDNS host resolver
- `airootfs/etc/systemd/system/abrechenbarkeit@.service` Systemd service that
starts a wayland compositor with electron running the target application. Run
after network is online, video drivers are initialized and user sessions can
be used. Replaces getty for that tty.
- `airootfs/etc/systemd/system/configure_wpa.service` Configuration service
strictly running before wpa_supplicant but only if the required EFI variable
is set.
- `airootfs/etc/systemd/system/default.target` Targeting graphical.target at
boot
- `airootfs/etc/systemd/system/graphical.target.wants/abrechenbarkeit@tty1.service`
Enables the UI for tty1 for graphical.target
- `airootfs/etc/systemd/system/multi-user.target.wants` Enables other services:
sshd, systemd-networkd, systemd-resolved and others
- `airootfs/etc/systemd/system/network-online.target.wants` Enables
wpa_supplicant and our configuration service
- `airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf`
Waits for only one interface, where default would be all
- `airootfs/etc/systemd/system/wpa_supplicant@.service.d/override.conf` Patches
wpa_supplicant to require configure_wpa.service
- `airootfs/etc/sysusers.d/abrechenbarkeit.conf` Creates abrechenbarkeit user at
system boot
- `airootfs/etc/tmpfiles.d/abrechenbarkeit.conf` Creates abrechenbarkeit home
directory at system boot
- `airootfs/etc/udev/rules.d/99-dri.rules` Creates systemd device node to depend
upon for /dev/dri/card0
- `airootfs/usr/local/bin/configure_wpa` Generates wpa_supplicant configuration
from EFI variables
- `airootfs/usr/share/pacman/keyrings/metamuffin-infra-trusted` Adds
metamuffin-infra repositories as trusted. Might be useful for updating.
- `efiboot/loader/entries/asd.conf` gummiboot entry with the OS name
- `efiboot/loader/loader.conf` Sets asd.conf as default boot entry
- `packages.x86_64` List of all packages to preinstall
- `bootstrap_packages.x86_64` List of all packages to install for installation
- `pacman.conf` Standard pacman config
- `profiledef.sh` mkarchiso profile definition with systemd-boot replacing all
other bootloaders
- `readme.md` This file; Documenting the config files
## Licence
See COPYING; AGPL-3.0-only