Giter VIP home page Giter VIP logo

amalshaji / portr Goto Github PK

View Code? Open in Web Editor NEW
2.0K 2.0K 57.0 2.98 MB

Open source ngrok alternative designed for teams

Home Page: https://portr.dev

License: GNU Affero General Public License v3.0

Makefile 0.33% Go 30.99% Dockerfile 0.69% HTML 3.77% TypeScript 12.29% JavaScript 3.19% CSS 1.78% Python 46.85% Shell 0.10%
cli developer-tools golang http ngrok-alternative open-source python reverse-tunnel shadcn-svelte ssh-tunnel svelte tcp tunneling

portr's Introduction

portr's People

Contributors

amalshaji avatar barns101 avatar dependabot[bot] avatar imnotjames avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

portr's Issues

Invalid state

Describe the bug
After setup when I forward a port it gives an url, when going to the URL it asks for login, after login, it says "Invalid state'

Initial Superuser can get in a "stuck" state

Describe the bug
If a super user is created but then - say, because they get distracted watching Galaxy of Terror ๐Ÿ˜… - gets logged out without creating a team, they're stuck. They can't authenticate again that way because they aren't on a team, they never created one.

To Reproduce
Steps to reproduce the behavior:

  1. Set up an empty portr instance
  2. Log in and create the first superuser but DO NOT create a team
  3. Delete cookie for session
  4. Attempt to Log in again
  5. See error message

Expected behavior
Superuser can log in even if they aren't on a team - so they can create a team

Screenshots

Error message is shown User not part of any team

Additional context
Fixed as part of #25 but there's a number of other changes there..

Support reverse proxy authorization

Is your feature request related to a problem? Please describe.
In my local set up I'm using traefik and forwardAuth -- this means that I have a trusted single sign on that goes from traefik -> oauth2-proxy -> keycloak.

Once that authentication occurs (+ authorization as defined in keycloak) users will be granted access to various services -- including portr. Aat that point, currently they then need to connect portr to their github account for a second authentication.

That's not ideal. I'd prefer if there's a simpler flow given I already manage the authentication and authorization.

Describe the solution you'd like
If configured via some sort of environment variables, I'd like for portr to check that it's currently connected to the trusted proxy & if it is accept a particular header as the authenticated user's email. Then create a user if they don't already exist - and if they do exist, allow them to continue as normal.

Describe alternatives you've considered
I'm currently using a patched dockerfile that implements this behavior - patching particular files so that this feature works, but it's very specific to my use environment.

I did think of turning off the traefik auth entirely for portr - relying solely on github -- but I'd really rather not require a github specific flow.

Additional context

The header is X-Auth-Request-Email for oauth2-proxy & Remote-Email by default for authelia.

I think this should also work for other reverse proxies such as caddy & nginx setups.

not starting

Describe the bug
I tried to start the program with portr http 1615 and it said 'Post "https://localhost:8000/api/v1/connections/": dial tcp [::1]:8000: connectex: No connection could be made because the target machine actively refused it.'

To Reproduce
Steps to reproduce the behavior:

  1. type portr http 1615

Expected behavior
A clear and concise description of what you expected to happen.
my expected behavior is for it to start
Screenshots
If applicable, add screenshots to help explain your problem.
image

Additional context
Add any other context about the problem here.
pls fix

WSL2 Portr inspector not working

Describe the bug
I have configured portr server on hetzner, did client auth and now trying to see inspector dashboard. When trying to open http://localhost:7777 I'm getting just ERR_CONNECTION_RESET.

To Reproduce
Steps to reproduce the behavior:

  1. Install portr client on wsl2 and try to open inspector dash.

Expected behavior
Dashboard working

Toggle URL unsafe query decode values

Is your feature request related to a problem? Please describe.
It is not a problem, but I would like to have an option to display unsafe decoded query values

On screenshot, I have request and there are [] in query
image

failed to initialize database

Describe the bug
A clear and concise description of what the bug is.
run portr in ubuntu throw error

2024/04/04 14:57:56 /home/runner/work/portr/portr/tunnel/internal/client/db/db.go:19
[error] failed to initialize database, got error unable to open database file: out of memory (14)
2024/04/04 14:57:56 failed to connect database: unable to open database file: out of memory (14)

To Reproduce
Steps to reproduce the behavior:

  1. wget https://github.com/amalshaji/portr/releases/download/0.0.10-beta/portr_0.0.10-beta_Linux_x86_64.zip
  2. unzip portr_0.0.10-beta_Linux_x86_64.zip
  3. ./portr http 8088
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.
CleanShot 2024-04-04 at 14 59 52@2x

Additional context
Add any other context about the problem here.

Enhancement Request: Secure SSH Authorization in Docker Compose for Improved Instance Security

Is your feature request related to a problem? Please describe.
Ensuring secure SSH authorization is paramount, especially for users concurrently hosting multiple projects on a single server. The current lack of SSH security poses a significant vulnerability that needs addressing promptly.

Describe the solution you'd like
Enhancing security within the Docker Compose file by enabling users to specify the path to their public key or password for SSH authorization would be a significant improvement. This feature would empower users to fortify their instances against potential security breaches effectively.

Describe alternatives you've considered
While less preferable due to potential user inconvenience, an alternative method could involve clients providing passwords or certificates during authorization. However, this approach might sacrifice some user-friendliness for increased security measures.

[Cloudflare] Subdomain is not created

When running portr in HTTP mode, I get "Tunnel connected: https://test.example.com -> ๐ŸŒ -> localhost:1111," but I can't connect it to my local API. When I look into the DNS > Records tab in the Cloudflare panel, I don't see any new record created for the "test" subdomain.

To Reproduce
Steps to reproduce the behavior:

  1. Run portr in Docker
  2. Start client
  3. No connection via defined subdomain

Expected behavior
When the client is run, the defined subdomain should be created in Cloudflare, and I could connect to my local resources.

Additional context
It's not working in HTTP mode, but it works in TCP mode, so I know that the connection itself is working.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.