packages feed

acme-not-a-joke-warp-0.1.0.0: acme-not-a-joke-warp.cabal

cabal-version:      2.4
name:               acme-not-a-joke-warp
version:            0.1.0.0

-- A short (one-line) description of the package.
synopsis: automatic HTTPS for warp: obtains, stores, renews and serves ACME certificates

-- A longer description of the package.
description: runs a wai application over HTTPS with certificates obtained from an ACME provider such as Let's Encrypt (rfc-8555, HTTP-01 challenges, or TLS-ALPN-01 challenges of rfc-8737 which need no port 80), in the spirit of Caddy. A certificate manager obtains the certificates when the server starts, stores them on disk, renews them before they expire and hands them to the running warp-tls server without a restart. Built on the acme-not-a-joke and acme-not-a-joke-wai libraries.

-- The license under which the package is released.
license: BSD-3-Clause
license-file: LICENSE
homepage: https://lucasdicioccio.github.io/acme-not-a-joke/
bug-reports: https://github.com/lucasdicioccio/acme-not-a-joke/issues
author:             Lucas DiCioccio
maintainer:         lucas@dicioccio.fr

-- A copyright notice.
copyright: Lucas DiCioccio 2023-2026
category: Security
tested-with: GHC == 9.8.2 || == 9.10.3
extra-doc-files: CHANGELOG.md README.md

source-repository head
    type: git
    location: https://github.com/lucasdicioccio/acme-not-a-joke.git
    subdir: acme-not-a-joke-warp

flag example
    description: build the example program (a warp server with automatic HTTPS)
    default: False
    manual: True

library
    hs-source-dirs: src
    ghc-options: -Wall
    default-language: Haskell2010
    default-extensions: OverloadedStrings OverloadedRecordDot
    exposed-modules:
      Acme.NotAJoke.Warp
      Acme.NotAJoke.Warp.CertificateManager
    build-depends:
      acme-not-a-joke >= 0.2 && < 0.3,
      acme-not-a-joke-wai >= 0.1 && < 0.2,
      async >= 2.2.4 && < 2.3,
      base >= 4.19.1 && < 5,
      bytestring >= 0.12.1 && < 0.13,
      containers >= 0.6.8 && < 0.8,
      directory >= 1.3.8 && < 1.4,
      filepath >= 1.4.200 && < 1.6,
      text >= 2.1.1 && < 2.2,
      time >= 1.12.2 && < 1.13,
      time-hourglass >= 0.2.12 && < 0.4,
      transformers >= 0.6.1 && < 0.7,
      http-types >= 0.12.4 && < 0.13,
      wai >= 3.2.4 && < 3.3,
      warp >= 3.4 && < 3.5,
      crypton >= 1.0 && < 1.1,
      crypton-x509 >= 1.8 && < 1.9,
      tls >= 2.1.3 && < 2.5,
      warp-tls >= 3.4.13 && < 3.5,

executable acme-not-a-joke-warp-example
    if !flag(example)
      buildable: False
    hs-source-dirs: example
    main-is: Main.hs
    ghc-options: -Wall -threaded
    default-language: Haskell2010
    default-extensions: OverloadedStrings
    build-depends:
      acme-not-a-joke,
      acme-not-a-joke-warp,
      base,
      http-types,
      text,
      wai,

test-suite certificate-manager
    type: exitcode-stdio-1.0
    hs-source-dirs: test
    main-is: Main.hs
    ghc-options: -Wall -threaded
    default-language: Haskell2010
    default-extensions: OverloadedStrings OverloadedRecordDot
    build-depends:
      acme-not-a-joke,
      acme-not-a-joke-wai,
      acme-not-a-joke-warp,
      base,
      bytestring,
      crypton,
      crypton-asn1-types,
      crypton-x509,
      directory,
      filepath,
      http-types,
      network,
      text,
      time,
      time-hourglass,
      tls,
      wai,
      warp,