~ruther/guix-local

08da664d1041133e8282a5df0fcab6eee7e548fa — Julien Lepiller 8 years ago 3bedac5
gnu: Add cat-avatar-generator-service.

* gnu/services/web.scm (cat-avatar-generator-service): New variable.
* doc/guix.text (Web Services): Document it.
2 files changed, 50 insertions(+), 2 deletions(-)

M doc/guix.texi
M gnu/services/web.scm
M doc/guix.texi => doc/guix.texi +25 -0
@@ 15641,6 15641,31 @@ A simple services setup for nginx with php can look like this:
                 %base-services))
@end example

@cindex cat-avatar-generator
The cat avatar generator is a simple service to demonstrate the use of php-fpm
in @code{Nginx}.  It is used to generate cat avatar from a seed, for instance
the hash of a user's email address.

@deffn {Scheme Procedure} cat-avatar-generator-serice @
       [#:cache-dir "/var/cache/cat-avatar-generator"] @
       [#:package cat-avatar-generator] @
       [#:configuration (nginx-server-configuration)]
Returns an nginx-server-configuration that inherits @code{configuration}.  It
extends the nginx configuration to add a server block that serves @code{package},
a version of cat-avatar-generator.  During execution, cat-avatar-generator will
be able to use @code{cache-dir} as its cache directory.
@end deffn

A simple setup for cat-avatar-generator can look like this:
@example
(services (cons* (cat-avatar-generator-service
                  #:configuration
                  (nginx-server-configuration
                    (server-name '("example.com"))))
                 ...
                 %base-services))
@end example

@node Certificate Services
@subsubsection Certificate Services


M gnu/services/web.scm => gnu/services/web.scm +25 -2
@@ 2,7 2,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016, 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>


@@ 153,7 153,9 @@
            php-fpm-on-demand-process-manager-configuration-process-idle-timeout

            php-fpm-service-type
            nginx-php-location))
            nginx-php-location

            cat-avatar-generator-service))

;;; Commentary:
;;;


@@ 870,3 872,24 @@ a webserver.")
          (string-append "fastcgi_pass unix:" socket ";")
          "fastcgi_index index.php;"
          (list "include " nginx-package "/share/nginx/conf/fastcgi.conf;")))))

(define* (cat-avatar-generator-service
          #:key
          (cache-dir "/var/cache/cat-avatar-generator")
          (package cat-avatar-generator)
          (configuration (nginx-server-configuration)))
  (simple-service
    'cat-http-server nginx-service-type
    (list (nginx-server-configuration
            (inherit configuration)
            (locations
              (cons
                (let ((base (nginx-php-location)))
                  (nginx-location-configuration
                    (inherit base)
                    (body (list (string-append "fastcgi_param CACHE_DIR \""
                                               cache-dir "\";")
                                (nginx-location-configuration-body base)))))
                (nginx-server-configuration-locations configuration)))
            (root #~(string-append #$package
                                   "/share/web/cat-avatar-generator"))))))