https://github.com/voyrox/frostlink
FrostLink is a reverse proxy written in Rust that supports routing requests from a local server to a specified domain. With FrostLink, you can easily turn a local server running on a specific port, such as `localhost:3000`, into a publicly accessible website connected to `example.com`.
https://github.com/voyrox/frostlink
http proxy reverse-proxy rust ssl
Last synced: 10 months ago
JSON representation
FrostLink is a reverse proxy written in Rust that supports routing requests from a local server to a specified domain. With FrostLink, you can easily turn a local server running on a specific port, such as `localhost:3000`, into a publicly accessible website connected to `example.com`.
- Host: GitHub
- URL: https://github.com/voyrox/frostlink
- Owner: Voyrox
- License: cc0-1.0
- Created: 2023-08-19T13:28:44.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-30T05:25:42.000Z (over 1 year ago)
- Last Synced: 2025-04-11T23:12:24.500Z (10 months ago)
- Topics: http, proxy, reverse-proxy, rust, ssl
- Language: Rust
- Homepage:
- Size: 818 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FrostLink
FrostLink is a powerful and flexible reverse proxy tool developed in Rust. It's designed to route requests efficiently from public domains to local servers, supporting both HTTP and HTTPS traffic. ArcticArch is particularly useful for exposing local development servers to the internet or for setting up a custom routing scheme in a microservices architecture.
## Features
- **Support for HTTP and HTTPS**: Handles both unencrypted and encrypted traffic, with easy SSL/TLS setup.
- **Dynamic Configuration**: Configure your domains and SSL settings using simple `.conf` files.
- **Asynchronous Processing**: Utilizes Rust's async capabilities for efficient handling of multiple connections.
- **Detailed Logging**: Logs information about each request, including processing time, client IP address, domain, and request path.
- **Customizable**: Extendable for various use cases and easily integrable into different environments.
## Getting Started
### Configuration
FrostLink requires domain configuration files to be placed in the `./domains` directory. Each file should have the `.conf` extension and follow this structure:
### Running the Proxy
1. **Set Up Configuration Files:** Create `.conf` files for each domain in the `./domains` directory.
2. **Start FrostLink:** Execute the main program. By default, it listens on ports 80 (HTTP) and 443 (HTTPS).
3. **Monitor Activity:** Observe the console output for logs detailing requests and server activity.
### Example Configuration File
example.conf
```plaintext
server: {
domain: example.com
location: localhost:3000
connection: {
AllowSSL: true
AllowHTTP: true
}
}
SSLCert: {
ssl_certificate: /etc/letsencrypt/live/example.com/fullchain.pem
ssl_certificate_key: /etc/letsencrypt/live/example.com/privkey.pem
}
```
### Dashboard
FrostLink includes a user-friendly dashboard for easy monitoring and management. Here's a glimpse of what the dashboard looks like:
### Contributing
Feel free to open issues or submit pull requests if you have ideas or encounter issues. Contributions are always welcome!
### License
FrostLink is open-source software, and its license information can be found in the LICENSE file in the repository.