cabal-version:      3.0
name:               keter
version:            2.1.9
synopsis:
  Web application deployment manager, focusing on Haskell web frameworks. It mitigates downtime.

description:
  Deployment system for web applications, originally intended for hosting Yesod
  applications.
  It binds to the main port (usually port 80) and reverse proxies requests to your application based on virtual hostnames.
  It provides SSL support if requested.
  It automatically launches applications, monitors processes, and relaunches any processes which die.
  It also provides graceful redeployment support, which mitigates downtime.

homepage:           http://www.yesodweb.com/
license:            MIT
license-file:       LICENSE
author:             Michael Snoyman
maintainer:         michael@snoyman.com
category:           Web, Yesod
build-type:         Simple
extra-source-files:
  ChangeLog.md
  README.md

library
  default-language:   Haskell98
  default-extensions: ImportQualifiedPost
  build-depends:
    , aeson                 >=2.0.0    && <2.2     || ^>=2.2.0.0
    , array                 >=0.5.4    && <0.6
    , async                 >=2.2.4    && <2.3
    , attoparsec            >=0.14.4   && <0.15
    , base                  >=4        && <5
    , blaze-builder         >=0.3      && <0.5
    , bytestring            >=0.10.12  && <0.12    || ^>=0.12.0.0
    , case-insensitive      >=1.2.1    && <1.3
    , conduit               >=1.3.4    && <1.4
    , conduit-extra         >=1.3.5    && <1.4
    , containers            ^>=0.6.4   || ^>=0.7
    , directory             >=1.3.6    && <1.4
    , fast-logger           >=3.0.0    && <4.0.0
    , filepath              >=1.4.2    && <1.6
    , fsnotify              >=0.3.0    && <0.5
    , http-client           >=0.7.11   && <0.8
    , http-conduit          >=2.3.8    && <2.4
    , http-reverse-proxy    >=0.6.1    && <0.7
    , http-types            >=0.12.3   && <0.13
    , indexed-traversable   >=0.1.2    && <0.2
    , lifted-base           >=0.2.3    && <0.3
    , monad-logger          >=0.3.0    && <0.4.0
    , mtl                   >=2.2.2    && <2.3     || ^>=2.3.1
    , network               >=3.1.2    && <3.2     || ^>=3.2.0
    , optparse-applicative  >=0.16.1   && <0.18    || ^>=0.18.1.0
    , process               >=1.6      && <1.7
    , random                >=1.2.1    && <1.4
    , regex-tdfa            >=1.3.1    && <1.4
    , stm                   >=2.5.0    && <2.6
    , tar                   >=0.6.0.0  && <0.7
    , template-haskell      >=2.17.0   && <3.0
    , text                  >=1.2.5    && <3.0
    , time                  >=1.9.3    && <2.0
    , tls                   >=1.5.7    && <2.1     || ^>=2.1.0
    , tls-session-manager   >=0.0.4    && <0.1
    , transformers          >=0.5.6    && <0.7
    , unix                  >=2.7.2    && <2.9
    , unix-compat           >=0.3      && <0.8
    , unliftio-core         >=0.2.0.0  && <0.3.0.0
    , unordered-containers  >=0.2.17   && <0.3
    , vector                >=0.12.3.0 && <1.0.0.0
    , wai                   >=3.2.3    && <3.3
    , wai-app-static        >=3.1      && <3.2
    , wai-extra             >=3.0.3    && <3.2
    , warp                  >=3.3.20   && <3.4     || ^>=3.4.0
    , warp-tls              ^>=3.0.3   || ^>=3.1   || ^>=3.2      || ^>=3.3 || ^>=3.4
    , yaml                  >=0.8.4    && <0.12
    , zlib                  >=0.6.2    && <0.7     || ^>=0.7.0

  exposed-modules:
    Keter.App
    Keter.AppManager
    Keter.Cli
    Keter.Common
    Keter.Conduit.Process.Unix
    Keter.Config
    Keter.Config.Middleware
    Keter.Config.V04
    Keter.Config.V10
    Keter.Context
    Keter.HostManager
    Keter.LabelMap
    Keter.Logger
    Keter.Main
    Keter.Plugin.Postgres
    Keter.PortPool
    Keter.Proxy
    Keter.Rewrite
    Keter.TempTarball
    Keter.Yaml.FilePath

  other-modules:
    Keter.Aeson.KeyHelper
    Paths_keter

  autogen-modules:
    Paths_keter

  ghc-options:        -Wall
  c-sources:          cbits/process-tracker.c
  hs-source-dirs:     src

executable keter
  default-language:   Haskell98
  default-extensions: ImportQualifiedPost
  main-is:            keter.hs
  hs-source-dirs:     src/main
  build-depends:
    , base
    , filepath
    , keter

  ghc-options:        -threaded -Wall
  other-modules:      Paths_keter
  autogen-modules:    Paths_keter

test-suite test
  default-language:   Haskell98
  hs-source-dirs:     test
  default-extensions: ImportQualifiedPost
  main-is:            Spec.hs
  type:               exitcode-stdio-1.0
  build-depends:
    , base
    , bytestring
    , conduit
    , http-client
    , http-conduit
    , http-types
    , HUnit
    , keter
    , lens
    , monad-logger
    , mtl
    , stm
    , tasty
    , tasty-hunit
    , transformers
    , unix
    , wai
    , warp
    , wreq

  ghc-options:        -Wall -threaded

source-repository head
  type:     git
  location: https://github.com/snoyberg/keter