Tyreunom's System Configuration
This repository contains the tools and configurations of my Guix systems. Guix provides a complete solution for declarative system configuration while allowing the full power of a programming language. A system configuration is nothing less than a complete guile program!
In addition to the declarative nature of Guix configurations, Guix itself provides a robust system, with reproducibility, statelessness and an emphasis on user freedom, thanks to its functional package management technique.
Understanding the Content of this Repository
Although the repo might be used for inspiration, it's not meant to be generic in any way: it's only my configuration.
The modules
directory contains guile modules that are used by multiple
systems. They are loaded in the guile PATH along with guix modules during
the call to the guix system
command that generates the system.
The motd
and keys
directories contain data files that are meant to be
copied directly to the store, thanks to local-file
.
The systems
directory contain the actual configurations, one file per
system, named after the host-name of the system.
How to Configure a System
Assuming you cloned this repository in /root/system-configurations
, you can
reconfigure your system with this command:
guix system reconfigure -L /root/system-configurations/modules \
/root/system-configurations/systems/<system>.scm
User Configuration
Guix doesn't provide a nice way to configure user services (yet), so
the users
directory contains mostly data that cannot be automatically
deployed by guix. That's a shame, but it still contains manifests that I
use for my users, and configuration files for different software.
This is mostly useful for my desktop computers.
What do your System Names Reference?
My systems are named after AI systems / personalities in anime and books I've seen and read.
- Hermes (エルメス) is Kino's motorrad in Kino's Journey. It's not explicitely said that it's an AI, but come on, a talking bike?
- Xana (X.A.N.A.) is the rogue AI in Code Lyoko. OK, this is not exactly an anime, but I enjoyed watching it as a kid :) There is no system configuration for this system as it's hosted on a machine on which I cannot install Guix (I would need physical access). This is a fitting name because the kids don't have direct access to Xana (or did Franz Hopper forget to install the basic utilities like killall?)
- Ene (エネ) is a former human who gained the ability to live in digital devices, in Mekakucity Actors. Since she lives in the main protagonist's computer in the anime, I think it's a fitting name for my home server.
- Lobsang is the name of an AI in the Long Earth. He claims to be the reincarnation of a Tibetan motorcycle repairman. You won't find a system configuration because it's a laptop that's running Haiku, not a Guix system.
- Tachikoma is the name of a kind of a military tank equipped with AI in Ghost in the Shell.