- Notifications
You must be signed in to change notification settings - Fork8
A reverse proxy server with built-in WebUI, supporting TCP/UDP/HTTP/TLS/WebSocket, written in Rust.
License
picoHz/taxy
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Taxy is currently in early development. Please be aware that breaking changes may occur frequently, particularly when upgrading between minor versions (e.g., from 0.3.x to 0.4.x).
- Built with Rust for optimal performance and safety, powered by tokio and hyper
- Supports TCP, UDP, TLS, HTTP1, and HTTP2, including HTTP upgrading and WebSocket functionality
- Partial HTTP/3 support (incoming QUIC connections only; WebTransport not supported)
- Easily deployable single binary with a built-in WebUI
- Allows live configuration updates via a REST API without restarting the service
- Imports TLS certificates from the GUI or can generate a self-signed certificate
- Provides Let's Encrypt support (ACME v2, HTTP challenge only) for seamless certificate provisioning
Visithttps://demo.taxy.dev/. (username:admin, password:admin)
Please note, you can change the configuration freely, but due to the instance being behind a firewall, the configured proxies are not accessible from the outside.
There are multiple ways to install Taxy.
Run the following command to start Taxy using Docker:
docker run -d \ -v taxy-config:/root/.config/taxy \ -p 80:80 \ -p 443:443 \ -p 127.0.0.1:46492:46492 \ --restart unless-stopped \ --name taxy \ ghcr.io/picohz/taxy:latest
To log in to the admin panel, you'll first need to create a user. Follow the steps below to create an admin user:
dockerexec -t -i taxy taxy add-user adminpassword?:******
Create a file nameddocker-compose.yml with the following content:
version:"3"services:taxy:image:ghcr.io/picohz/taxy:latestcontainer_name:taxyvolumes: -taxy-config:/root/.config/taxyports:# Add ports here if you want to expose them to the host -80:80 -443:443 -127.0.0.1:46492:46492# Admin panelrestart:unless-stoppedvolumes:taxy-config:
Run the following command to start Taxy:
$ docker-compose up -d
To log in to the admin panel, you'll first need to create a user. Follow the steps below to create an admin user:
$ docker-composeexec taxy taxy add-user adminpassword?:******
Then, you can access the admin panel athttp://localhost:46492/.
cargo-binstall automatically downloads and installs pre-built binaries for your platform. If there is no pre-built binary available, it will fall back tocargo install.
You need to installcargo-binstall first.
Then you can install Taxy with:
$ cargo binstall taxy
You need to have the Rust toolchain installed. If you don't, please follow the instructions onrustup.rs.
The package on crates.io comes bundled with the WebUI as a static asset. Thus, you don't need to build it yourself (which would requiretrunk and wasm toolchain).
$ cargo install taxy
Alternatively, you can directly download the latest pre-built binaries from thereleases page.
You simply put the extracted binary somewhere in your$PATH and you're good to go.
First, you need to create a user to access the admin panel. You will be prompted for a password.
# Create a user$ taxy add-user admin$ password?:******
Then, you can start the server.
$ taxy start
Once the server is running, you can access the admin panel athttp://localhost:46492/.
To contribute or develop Taxy, follow these steps:
# Clone the repositorygit clone https://github.com/picoHz/taxy# Start the servercd taxycargo run# In a separate terminal, start `trunk serve` for the WebUIcd taxy-webuitrunk serve
You can instantly start developing Taxy in your browser using Gitpod.
HTTP reverse proxies written in Rust:
The social preview image uses the photo bycal gao onUnsplash.
About
A reverse proxy server with built-in WebUI, supporting TCP/UDP/HTTP/TLS/WebSocket, written in Rust.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
