~fishinthecalculator/gocix

This project aims at implementing a Guix native experience for services that are not yet guixable

43663a0 bonfire: map secrets directories instead of single files.

20 days ago

545f82f services: bonfire: Fix imports.

21 days ago

#gocix

🌿 Welcome to gocix! This project aims at providing a community managed library of Guix services. Code from this channel implements a Guix native experience for services that are not yet guixable, through OCI backed Shepherd Services.

#Motivation

Services in gocix are supposed to be used to run useful stuff with Guix. They are for the community by the community and there are all the intentions of collaborating with upstream once underlying packages are into Guix proper. To achieve this vision gocix services strive to:

  • Separate as much as possible configurations that pertain to the OCI implementation (i.e. ports, volumes, OCI images tags and so on) from application configurations (i.e. whether the application will use https or whatever else). The idea is to make it as little effort as possible upstreaming code from this channel to Guix.
  • Services are configured with sane, secure, privacy aware defaults when possible. This means that each service in this repository is carefully reviewed and analytics are disabled whenever possible.

#Services

This channel exposes at (oci services) a set of Guix System services for many useful applications, such as:

  • Forgejo
  • Grafana
  • Prometheus
  • Matrix Conduit
  • meilisearch

These services are supposed to feel like services backed by native Guix packages, please report any inconsistency you may find.

Here's how you would use some of the services from this channel in your operating-system record:

(use-modules (oci services forgejo)
             (oci services grafana))

(operating-system
 (services
  (list (service oci-forgejo-service-type
                 (forgejo-configuration
                  (port 3001)))
        (service oci-grafana-service-type
                 (grafana-configuration
                  (port 3000))))))

#What is a Guix channel?

A channel is roughly the Guix equivalent of Ubuntu's PPAs or container registries. It's a software repository providing Guix package and service definitions.

You can search for package and service definitions from this channel any many others at toys.whereis.みんな.

#Configure

To configure Guix for using this channel you need to create a .config/guix/channels.scm file with the following content:

(cons* (channel
        (name 'gocix)
        (url "https://git.sr.ht/~fishinthecalculator/gocix")
        (branch "main")
        ;; Enable signature verification:
        (introduction
         (make-channel-introduction
          "cdb78996334c4f63304ecce224e95bb96bfd4c7d"
          (openpgp-fingerprint
           "8D10 60B9 6BB8 292E 829B  7249 AED4 1CC1 93B7 01E2"))))
       %default-channels)

Otherwise, if you already have a .config/guix/channels.scm you can simply prepend this channel to the preexisting ones:

(cons* (channel
        (name 'gocix)
        (url "https://git.sr.ht/~fishinthecalculator/gocix")
        (branch "main")
        ;; Enable signature verification:
        (introduction
         (make-channel-introduction
          "cdb78996334c4f63304ecce224e95bb96bfd4c7d"
          (openpgp-fingerprint
           "8D10 60B9 6BB8 292E 829B  7249 AED4 1CC1 93B7 01E2"))))
       (channel
        (name 'nonguix)
        (url "https://gitlab.com/nonguix/nonguix")
        ;; Enable signature verification:
        (introduction
         (make-channel-introduction
          "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
          (openpgp-fingerprint
           "2A39 3FFF 68F4 EF7A 3D29  12AF 6F51 20A0 22FB B2D5"))))
       %default-channels)

#Contributing

All contributions are welcome. To contribute send your patches to ~fishinthecalculator/public-inbox@lists.sr.ht.

If you have commit access please remember to setup the authentication hook with

cp -v etc/git/pre-push .git/hooks/pre-push

#License

Unless otherwise stated all the files in this repository are to be considered under the GPL 3.0 terms. You are more than welcome to open issues or send patches.