diff --git a/airootfs/etc/systemd/resolved.conf.d/archiso.conf b/airootfs/etc/systemd/resolved.conf.d/mdns.conf similarity index 100% rename from airootfs/etc/systemd/resolved.conf.d/archiso.conf rename to airootfs/etc/systemd/resolved.conf.d/mdns.conf diff --git a/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf index c9f9bce..c875311 100644 --- a/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf +++ b/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf @@ -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 diff --git a/readme.md b/readme.md index 6608d4a..ddda47e 100644 --- a/readme.md +++ b/readme.md @@ -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