From a22ac8144969eb32b36610decf4d0f82f70fb425 Mon Sep 17 00:00:00 2001 From: JEAN-FRANCOIS GUILLAUME Date: Mon, 14 Oct 2024 08:38:35 +0200 Subject: [PATCH] adding caddy-dirty --- glicid/packages/caddy.scm | 24 +++++++++++++++++++++++ glicid/services/caddy.scm | 40 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 glicid/packages/caddy.scm create mode 100644 glicid/services/caddy.scm diff --git a/glicid/packages/caddy.scm b/glicid/packages/caddy.scm new file mode 100644 index 0000000..990702a --- /dev/null +++ b/glicid/packages/caddy.scm @@ -0,0 +1,24 @@ +(define-module (glicid packages caddy) + #:use-module (guix build-system gnu) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system copy) + ) + + +(define-public caddy-dirty + (package + (name "caddy-dirty") + (version "2.8.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/caddyserver/caddy/releases/download/v" version "/caddy_" version "_freebsd_amd64.tar.gz")) + (sha256 (base32 "0wqppxia2zpzh7n8x58wzrvr3myznmyq890h90ddndym30qdj83w")))) + (build-system copy-build-system) + (arguments + `(#:install-plan `(("caddy" "/sbin/")))) + (synopsis "Caddy is an extensible server platform that uses TLS by default. Dirty Version.") + (description "Caddy is an extensible server platform that uses TLS by default. Dirty Version") + (home-page "https://github.com/caddyserver/caddy") + (license license:expat))) diff --git a/glicid/services/caddy.scm b/glicid/services/caddy.scm new file mode 100644 index 0000000..cef2d61 --- /dev/null +++ b/glicid/services/caddy.scm @@ -0,0 +1,40 @@ +(define-module (yamit services vpn) + #:use-module (guix gexp) + #:use-module (gnu packages bash) + #:use-module (gnu services) + #:use-module (gnu services shepherd) + #:use-module (guix records) + #:use-module (gnu system shadow) + #:use-module (yamit packages vpn)) + +(define-record-type* caddy-configuration + make-caddy-configuration + caddy-configuration? + (caddy caddy-configuration-caddy (default caddy-dirty)) + (config-file caddy-config-file (default "/etc/caddy/Caddyfile")) + (log-file caddy-log-file (default "/var/log/caddy.log")) + ) + +(define (caddy-shepherd-service config) + (let* ((caddy (caddy-configuration-caddy config))) + (shepherd-service + (provision '(caddy)) + (documentation "Run caddy daemon.") + (requirement '(user-processes)) + (start #~(make-forkexec-constructor (list (string-append #$caddy "/sbin/caddy") + "run" + "--config" + #$config-file) + #:log-file #$log-file + #:environment-variables (list + "PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:/run/current-system/profile/libexec"))) + (stop #~(make-kill-destructor))))) + +(define caddy-service-type + (service-type + (name 'caddy) + (default-value (caddy-configuration)) + (extensions (list + (service-extension activation-service-type (const %caddy-activation)) + (service-extension shepherd-root-service-type (compose list caddy-shepherd-service)))) + (description "run caddy web server service")))