manuals:distributions:guix

This is an old revision of the document!


GNU Guix System

GNU Guix System is a distribution based on Guix package manager. It allows one to declaratively configure the system and its services, a concept shared with NixOS. While NixOS uses the Nix language, Guix is built with Guile Scheme. This page describes Guix specifics on vpsFree.cz's VPS.

Configuration

The VPS is created from a template which contains a minimal system with SSH. You can log in with a generated password or deploy your public key using vpsAdmin. The system can then be configured using guix system reconfigure.

System configuration is stored in directory /etc/config:

  • vpsadminos.scm contains configuration specific to our environment
  • system.scm loads vpsadminos.scm and is meant to be edited to configure the system
# . /etc/profile
# guix pull
# hash guix
# guix system reconfigure /etc/config/system.scm

Networking is handled by /ifcfg.add script, which is generated by vpsadminos on every VPS restart. The script is executed using vpsadminos-networking shepherd service. Due to how dynamic the environment is (IPv6 route changes on every reboot), using static-networking-service-type is simply not possible.

Known issues

  • halt (graceful shutdown) has been observed to sometimes hang, please report in case it's still a problem.
  • cgroups v1 are not mounted. cgroups do not seem to be needed by the base system, contact us in case it's a problem for some service or submit a patch to the template.
  • Hostname cannot be set using the vpsAdmin.
  • /gnu/store is not mounted with noatime flag. This could lead to reproducibility issues.
manuals/distributions/guix.1703016254.txt.gz · Last modified: 2023/12/19 20:04 by tomas.volf