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!
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.
- 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
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
Pull Requests, Bug Reports and Feature Requests are welcome!