Skip to content
This repository has been archived by the owner on Mar 8, 2022. It is now read-only.

alphagov/govuk-guix

Repository files navigation

🚨 Deprecated

This repository is no longer maintained and should not be used.

We now use Docker for local development. For more context, see GOV.UK RFC-106.


Getting started

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:

export PATH="$PATH:$PWD/bin"

Local Development

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.

Local Data

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.

Why Guix?

GNU Guix (abbreviated to Guix) (IPA: ɡiːks) is a package manager, and associated free software distribution, for the GNU system.

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.

Hacking

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:

export GDS_GNU_GUIX_MODULE_PATH="../gnu-guix"

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.

export GDS_GNU_GUIX_PATH="../gnu-guix"

About

Package, service and system definitions using GNU Guix for software and systems related to GOV.UK.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published