https://github.com/luizfonseca/proksi
Batteries-included CDN, reverse proxy and Load Balancer with Docker support using Cloudflare Pingora.
https://github.com/luizfonseca/proksi
cdn docker pingora proxy-server reverse-proxy swarm
Last synced: 5 months ago
JSON representation
Batteries-included CDN, reverse proxy and Load Balancer with Docker support using Cloudflare Pingora.
- Host: GitHub
- URL: https://github.com/luizfonseca/proksi
- Owner: luizfonseca
- License: apache-2.0
- Created: 2024-05-06T22:58:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-12T12:30:46.000Z (6 months ago)
- Last Synced: 2025-05-12T13:35:45.879Z (6 months ago)
- Topics: cdn, docker, pingora, proxy-server, reverse-proxy, swarm
- Language: Rust
- Homepage: https://proksi-1.gitbook.io/proksi
- Size: 2.91 MB
- Stars: 143
- Watchers: 5
- Forks: 14
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README



[](https://crates.io/crates/proksi)
# Proksi: Automatic SSL, HTTP, and DNS Proxy

# About
Proksi is a simple, lightweight, and easy-to-use proxy server that automatically handles SSL, HTTP, and DNS traffic. It is designed to be used as a standalone proxy server or as a component in a larger system. Proksi is written in [Rust](https://www.rust-lang.org/) and uses [Pingora](https://github.com/cloudflare/pingora) as its core networking library.
# Features
Of the many features Proksi offers is the ability to load balance to your infrastructure or any IP that supports your host configurations. Other features of Proksi also include:
- Automatic Docker and Docker Swarm service discovery through labels
- Built-in most common middlewares such as OAuth, Rate Limiting, CDN Caching and others
- The ability of running it as a single binary in your system
- Automatic SSL through Let's Encrypt and redirection from HTTP to HTTPS
- Configuration through **HCL** with support for functions (get environment variables, etc)
- Powerful plugin system for adding new middlewares and other features using **WebAssembly (WASM)**
- Many others.
# Quick start
1. Download the latest release from [https://github.com/luizfonseca/proksi/releases](https://github.com/luizfonseca/proksi/releases)
2. Create a configuration file named `proksi.hcl`
3. Add the following content to the file:
```hcl
lets_encrypt {
enabled = true
email = "my@email.com"
}
paths {
# Where to save certificates?
lets_encrypt = "./"
}
# A list of routes Proksi should handle
routes = [
{
# You might need to edit your /etc/hosts file here.
host = "mysite.localhost",
# Will create a certificate for mysite.localhost
ssl_certificate = {
self_signed_on_failure = true
}
# Where to point mysite.localhost to
upstreams = [{
ip = "docs.proksi.info"
port = 443
headers = {
add = [{ name = "Host", value = "docs.proksi.info" }]
}
}]
}
]
```
4. Run `proksi -c /path-where-proksi.hcl-is-located`
For more information or guides, please refer to the [documentation](https://docs.proksi.info).
# Documentation
Documentation for Proksi can be found at [https://docs.proksi.info](https://docs.proksi.info) which is also available in the [gitbook](./gitbook/) folder of this repository.
# Contributing
We welcome contributions to Proksi. If you have any **suggestions** or **ideas**, please feel free to open an issue or a pull request on the GitHub repository.
# License
Proksi is licensed under the [MIT License](https://github.com/luizfonseca/proksi/blob/main/LICENSE), the [Apache License 2.0](https://github.com/luizfonseca/proksi/blob/main/LICENSE-APACHE) and is free to use and modify.