━ pricing plans

Basic Plan

$
3.99
$
0
/ 1 week

Full member access:

  • Access to all free content across categories.
  • Monthly newsletter with highlights and trending topics.
  • Ad-supported experience for uninterrupted browsing.
  • No subscription commitment – pay as you go.

Premium Plan

$
5.99
$
0
/ 2 weeks

Full member access:

  • Ad-free experience for seamless browsing.
  • Access to exclusive, subscriber-only content.
  • Early access to select articles and features.
  • Monthly insights into top trends in Beauty, Fashion, Tech, and Travel.
  • Priority customer support for any queries or feedback.

VIP Plan

$
7.99
$
0
/ 1 month

Full member access:

  • All benefits of the Premium Plan.
  • Personalized content recommendations tailored to your preferences.
  • VIP-only access to special events, webinars, or live Q&A sessions with industry experts.
  • Direct interaction with editors for suggestions and feedback.
  • Exclusive discounts on merchandise, travel guides, and more.
Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

GitHub – janbjorge/pipegate

Date:

Share:

PipeGate is a lightweight, self-hosted proxy built with FastAPI, designed as a “poor man’s ngrok.” It allows you to expose your local servers to the internet, providing a simple way to create tunnels from your local machine to the external world. PipeGate is an excellent tool for developers who want to understand how tunneling services like ngrok work under the hood or need a customizable alternative hosted on their own infrastructure.

  • Self-Hosted: Deploy PipeGate on your own infrastructure, giving you control over your setup.
  • Unique Connections: Clients connect using unique UUIDs, ensuring each tunnel is distinct.
  • Customizable: Modify and extend PipeGate to fit your specific needs.
  • Lightweight: Minimal dependencies and straightforward setup make it easy to use.
  • Educational: A great tool for learning how tunneling services operate internally.

Before you begin, ensure you have met the following requirements:

First, clone the PipeGate repository to your local machine:

git clone https://github.com/janbjorge/pipegate.git
cd pipegate

You can also install PipeGate directly from GitHub using pip:

pip install git+https://github.com/janbjorge/pipegate.git

Deploy the PipeGate server on your infrastructure. By default, the server runs on http://0.0.0.0:8000.

python -m pipegate.server

Optional: To customize the host and port, modify the uvicorn.run parameters in server.py or set environment variables if implemented.

Run the PipeGate client on your local machine to expose a local server.

python -m pipegate.client --port 8000 --server_url wss://yourserver.com/<connection_id>

Parameters:

  • --port: Port where your local server is running (e.g., 8000).
  • --server_url: WebSocket URL of your PipeGate server, including the unique connection ID.

Example:

python -m pipegate.client --port 8000 --server_url wss://example.com/123e4567-e89b-12d3-a456-426614174000
  1. Start the Server:

    python -m pipegate.server
  2. Start the Client:

    python -m pipegate.client --port 8000 --server_url wss://yourserver.com/<connection_id>

    Replace with a generated UUID to establish a unique tunnel.

  3. Expose Local Server:

    Point your external webhooks or services to https://yourserver.com//path, and PipeGate will forward the requests to your local server running on port 8000.

Public Server (Temporary)

For demonstration purposes, a PipeGate server is currently running at https://pipegate.fly.dev/. Feel free to use this server to test PipeGate functionality. This server will remain operational until the Fly.io credits are exhausted. 🤷‍♂️

Usage Example with Public Server:

  1. Start the Client:

    python -m pipegate.client --port 8000 --server_url wss://pipegate.fly.dev/123e4567-e89b-12d3-a456-426614174000

    Replace 123e4567-e89b-12d3-a456-426614174000 with a generated UUID.

  2. Expose Local Server:

    Point your external webhooks or services to https://pipegate.fly.dev/123e4567-e89b-12d3-a456-426614174000/path, and PipeGate will forward the requests to your local server running on port 8000.

Note: The public server at https://pipegate.fly.dev/ is intended for temporary use only. Users are encouraged to set up their own PipeGate server for persistent and secure tunneling.

PipeGate is highly customizable. You can modify the server and client configurations to tailor the tool to your specific needs. Refer to the source code and documentation for detailed configuration options.

Possible Configuration Enhancements:

  • Authentication: Implement API keys or tokens to manage client connections.
  • Timeouts: Adjust request and connection timeouts based on your requirements.
  • Logging: Configure logging levels and outputs to monitor activity.

Note: Future releases may include configuration files or environment variable support for easier customization.

PipeGate has minimal to no built-in security features. It is essential to implement your own security measures to protect your infrastructure when using PipeGate. Consider the following:

  • Authentication: Ensure that only authorized clients can connect to your PipeGate server by implementing authentication mechanisms such as API keys or tokens.
  • Network Security: Utilize firewalls, VPNs, or other network security tools to restrict access to your PipeGate server.
  • Input Validation: Apply thorough validation and filtering of incoming requests to prevent malicious activities.
  • Encryption: Consider setting up HTTPS to encrypt data in transit, especially if transmitting sensitive information.
  • Monitoring and Auditing: Regularly monitor and audit your PipeGate setup to detect and respond to potential threats.
  • Resource Limiting: Implement rate limiting or throttling to prevent abuse and ensure fair usage of server resources.

Disclaimer: PipeGate is provided “as is” without any guarantees. Use it at your own risk.

Contributions are welcome! Whether you’re fixing bugs, improving documentation, or adding new features, your help is appreciated.

  1. Fork the Repository: Click the “Fork” button at the top right of the repository page.

  2. Clone Your Fork:

    git clone https://github.com/janbjorge/pipegate.git
    cd pipegate
  3. Create a New Branch:

    git checkout -b feature/YourFeatureName
  4. Make Your Changes: Implement your feature or fix.

  5. Commit Your Changes:

    git commit -m "Add your message here"
  6. Push to Your Fork:

    git push origin feature/YourFeatureName
  7. Open a Pull Request: Go to the original repository and create a pull request.

This project is licensed under the MIT License.

For any questions or suggestions, feel free to open an issue.

Q: How do I generate a unique connection ID?

A: You can use Python’s uuid module or any UUID generator to create a unique ID.

Q: Can I run multiple clients with the same server?

A: Yes, each client should use a unique connection ID to establish separate tunnels.

Source link

Subscribe to our magazine

━ more like this

How I Built a Profitable Personal Brand as a Female Leader

Opinions expressed by Entrepreneur contributors are their own. As a female leader, I...

Trump Assures U.S. Farmers Barron Will Eat Their Crops

WASHINGTON—In an effort to dispel any fears that the ongoing trade wars might negatively impact net profits, President Donald Trump reportedly assured U.S. farmers...

Perfecting the Girl’s Night Out Look

Ever since having my baby girl 5 months ago, there have been many days where I admittedly didn't put myself first. Okay, so maybe...

Mike’s World Is About To Change

Posted in: Paramount+, Preview, Trailer, TV | Tagged: jeremy renner, Mayor of Kingstown, paramount plus, season 2, taylor sheridan, trailerPublished Wed, 14 Dec 2022...