Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alphagov/govuk-guix

Package, service and system definitions using GNU Guix for software and systems related to GOV.UK.
https://github.com/alphagov/govuk-guix

govuk guix

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

#+BEGIN_QUOTE
* 🚨 Deprecated

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

We now [[https://github.com/alphagov/govuk-docker][use Docker for local development]]. For more context, see [[https://github.com/alphagov/govuk-rfcs/blob/main/rfc-106-docker-for-local-development.md][GOV.UK RFC-106]].
#+END_QUOTE

-----

* Getting started

See [[doc/installation.md][doc/installation.md]] for a full list of [[doc/installation.md#prerequisites][prerequisites]] and
[[doc/installation.md#steps][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:

#+BEGIN_SRC shell
export PATH="$PATH:$PWD/bin"
#+END_SRC

** 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:

#+BEGIN_SRC shell
govuk system start short-url-manager specialist-publisher
#+END_SRC

To find out more, read the documentation on [[doc/local-development.md][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:

#+BEGIN_SRC shell
govuk data load short-url-manager
#+END_SRC

To find out more, read the documentation on [[doc/local-data.md][local data]].

* Why Guix?

[[http://www.gnu.org/software/guix/][GNU Guix]] (abbreviated to Guix) (IPA: /ɡiːks/) is a package manager,
and associated free software distribution, for the [[http://www.gnu.org/gnu/gnu.html][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:

#+BEGIN_SRC shell
export GDS_GNU_GUIX_MODULE_PATH="../gnu-guix"
#+END_SRC

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.

#+BEGIN_SRC shell
export GDS_GNU_GUIX_PATH="../gnu-guix"
#+END_SRC