This repository contains Guix package, service and system definitions for software and systems specifically related to GOV.UK.
See doc/installation.md for a full list of prerequisites and steps. The most reliable way to run the included scripts is via the included govuk script. The bin directory can be added to your PATH for easy access, for example:
You can use govuk-guix to run GOV.UK services on your computer, for example, to start a system with the Short URL Manager, Specialist Publisher and any of their dependencies, you would run:
govuk system start short-url-manager specialist-publisher
To find out more, read the documentation on local development.
You can use govuk-guix to list and load data downloaded through the replication scripts in the govuk-puppet repository, for example, to load the data for the short-url-manager service, you would run:
govuk data load short-url-manager
To find out more, read the documentation on local data.
Guix is a state of the art package manager, providing many features, such as reproducible build environments, unprivileged package management, transparent source/binary deployment and per-user profiles.
The design and low level mechanisms of Guix come from the Nix package manager, on top of which Guix provides a hackable set of tooling using Guile.
This project leverages Guix, building on top of its tooling to provide packages, services and systems relevant to GOV.UK.
When developing locally, you may find it useful to use a local copy of GNU Guix, this can be done by setting the GDS_GNU_GUIX_MODULE_PATH environment variable, for example:
The value of GDS_GNU_GUIX_MODULE_PATH will be prepended to the GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH.
To replace the package source for the guix package within the govuk-guix repository, you can set the GDS_GNU_GUIX_PATH environment variable.