(define-module (ryan-packages web-server)
               #:use-module (guix download)
               #:use-module (guix packages)
               #:use-module (guix gexp)
               #:use-module (gnu packages)
               #:use-module ((guix licenses) #:prefix license:)
               #:use-module (guix build-system go)
               #:use-module (guix git-download)
               #:use-module (gnu packages golang)
               #:use-module (guix utils))

(define-public go-github-com-caddy-certmagic
  (package
    (name "certmagic")
    (version "0.19.2")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                     (url "https://github.com/caddyserver/certmagic")
                     (commit (string-append "v" version))))
              (sha256
                (base32
                  "0jgbkj0azkbs828vsd3gycpab8pycgf55vrxkvnfmwfjpdiq1551"))))
    (build-system go-build-system)
    (arguments
      (list #:tests? #f
            #:go go-1.20
            #:import-path "github.com/caddyserver/certmagic"))
    (home-page "https://github.com/caddyserver/certmagic")
    (synopsis "Certbot ACME")
    (description "Automagic certificate management in Caddy")
    (license license:expat)))

(define-public caddy
  (package
    (name "Caddy")
    (version "2.7.4")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                     (url "https://github.com/caddyserver/caddy")
                     (commit (string-append "v" version))))
              (sha256
                (base32
                  "0jgbkj0azkbs828vsd3gycpab8pycgf55vrxkvnfmwfjpdiq1551"))))
    (build-system go-build-system)
    (native-inputs (list go-github-com-google-uuid
                         go-go-uber-org-zap
                         go-github-com-caddy-certmagic
                         go-github-com-prometheus-client-golang
                         go-golang-org-x-term
                         go-golang-org-x-sys))
    (arguments
      (list #:tests? #f
            #:go go-1.20
            ;#:unpack-path "github.com/caddyserver/caddy"
            #:import-path "github.com/caddyserver/caddy"))
    (home-page "https://github.com/caddyserver/caddy")
    (synopsis "Web server")
    (description "This package serves the web")
    (license license:expat)))

caddy