/Pode

Pode is a Cross-Platform PowerShell framework for creating web servers to host REST APIs, Web Sites, and TCP/SMTP Servers

Primary LanguagePowerShellMIT LicenseMIT

Pode

MIT licensed Documentation AppVeyor Travis CI Gitter

Chocolatey PowerShell Docker

Pode is a Cross-Platform PowerShell framework for creating web servers to host REST APIs, Web Pages, and SMTP/TCP Servers. Pode also allows you to render dynamic files using .pode files, which are just embedded PowerShell, or other Third-Party template engines. Plus many more features!

See here for building your first app!

Documentation

All documentation and tutorials for Pode can be found here - this documentation will be for the latest release.

To see the docs for other releases, branches or tags, you can host the documentation locally. To do so you'll need to have the Invoke-Build module installed; then:

Invoke-Build Docs

Then navigate to http://127.0.0.1:8000 in your browser.

Features

  • Cross-platform using PowerShell Core (with support for PS4.0+)
  • Listen on a single or multiple IP address/hostnames
  • Support for HTTP, HTTPS, TCP and SMTP
  • Host REST APIs, Web Pages, and Static Content (with caching)
  • Support for custom error pages
  • Multi-thread support for incoming requests
  • Inbuilt template engine, with support for third-parties
  • Async timers for short-running repeatable processes
  • Async scheduled tasks using cron expressions for short/long-running processes
  • Supports request logging to CLI, Files, and custom loggers to other services like LogStash
  • Cross-state variable access across multiple runspaces
  • Restart the server via file monitoring, or defined periods/times
  • Ability to allow/deny requests from certain IP addresses and subnets
  • Basic rate limiting for IP addresses and subnets
  • Middleware and Sessions on web servers, with Flash message support
  • Authentication on requests, such as Basic and Windows Active Directory
  • (Windows) Generate/bind self-signed certificates, and signed certificates
  • (Windows) Open the hosted server as a desktop application

Install

You can install Pode from either Chocolatey, the PowerShell Gallery, or Docker:

# chocolatey
choco install pode

# powershell gallery
Install-Module -Name Pode

# docker
docker pull badgerati/pode

Contributing

Pull Requests, Bug Reports and Feature Requests are welcome!