# Abrechenbarkeit SD An immutable linux distribution exclusively for running web applications such as Abrechenbarkeit. ## 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 (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