GithubHelp home page GithubHelp logo

Comments (6)

Cerothen avatar Cerothen commented on June 20, 2024 1

A few ultra quick table responsive mockups

screencapture-10-20-20-200-8000-2024-01-08-16_01_48
screencapture-10-20-20-200-8000-2024-01-08-16_01_16
screencapture-10-20-20-200-8000-2024-01-08-16_00_33
screencapture-10-20-20-200-8000-2024-01-08-15_59_59

from zoraxy.

tobychui avatar tobychui commented on June 20, 2024

@Cerothen Love your idea!
This changed how Zoraxy works from a reverse proxy design for serving one site to a system that serve multiple sites.
However a few design I might need your elaboration, as here are a few items that confuses me on how they are suppose to work

  1. Can you explain what are the two locks are on each of the domain entry?
  2. For a UI this complex, do you have any ideas on the RWD interface on mobile devices? I kind of worry about if this design is used, mobile users (like me who always outside and need to manage dozens of servers) will have difficulties managing their sites
  3. Do you have a mockup on the edit interface? I think the way on how entries is edited might need to change from in-place-edit to something else to make the UI less complex, but before making this decision, I want to hear your view on this.
  4. For a single entry that contains two destination, is it fallback or load-balancer?
    圖片
  5. I guess there is no way (after these change) we still keep the legacy reverse proxy function in places (as the required architecture change will make it impossible to keep backward compatibility), maybe we need to set a larger goal for next major release just for this change.

from zoraxy.

Cerothen avatar Cerothen commented on June 20, 2024

I can certainly explain the intent for your questions. I tried to deploy zoraxy recently but hit few roadblocks in replicating my existing nginx proxy manager setup around customised virtual directories and some other small things. So I thought I'd I could find the time I would try to contribute to growing this project since I like the idea of a single binary reverse proxy.

  1. This is my bad I started with image logos initially that were more descriptive but decided to fall back to the CSS themes included icons for visual consistency. Left to right we have enabled (if the proxy is enabled), SSL/TLS (if that domain has a valid SSL certificate and SSL is enabled), authentication (if that domain is using authentication eg none/basic/mod_auth).
  2. I didn't tackle any responsive items in this example, but the first three columns serve some quick controls and info and aren't all that important, they could be hidden on narrow screens. I wasn't able to get the table to be sortable properly without breaking but I'm not sure that's critical, the sorting could always be done before the row render.
  3. I didn't tackle the edit modals since I didn't want to put the effort in if it wasn't a direction you were interested in going for this project. I didn't envision in place edits just the row at the bottom to add new domains to the proxy even on a narrow display it would only show the domain, destination and add action. Once a proxy is added then the user can hit the edit button for the currently future popup modal which would let them do the more complex operations or basic edits.
  4. I didn't really have to many plans for the multiple item destinations, I just was planning for it in case it was useful in the future I think 95% of people would only ever have one, it would be for loadbalancing/failover though.
  5. I didn't think the legacy ones would stay at all after these changes took place, it was more just so I could flip around in the views arbitrarily.

All in all it does suggest some significant changes which I can appreciate could be a lot of work. I'm not all that familiar with golang but I have always been interested in learning (I have plenty of JavaScript experience since I mostly tackle web applications though nodejs or PHP). The intent was that the edit dialogs would be somewhat more descriptive and friendly while also expanding what the proxy is able to accomplish overall and get it to general feature parity with NPM.

Again it's not a requirement, I thought it would be interesting to try and contribute so that a competitor to NPM exists that's a single binary and doesn't need docker.

from zoraxy.

tobychui avatar tobychui commented on June 20, 2024

@Cerothen I really like your idea. However as I am working on my Master thesis right now, I don't really have much free-time to work on big changes like this at the moment.
I will keep this enhancement here and once I got the time, I will start working on this.

Again, thanks so much for your great ideas!

from zoraxy.

Cerothen avatar Cerothen commented on June 20, 2024

No problem at all. I have just been exploring the GoLang tooling around reverse proxies, that I can can better understand their structure.

from zoraxy.

tobychui avatar tobychui commented on June 20, 2024

Here are some updates
圖片

I decided to move virtual directory under each of the host (instead of a global one) as suggested by multiple issues.

圖片

For host, wildcard is also added so domains like *.foo.example.com can be used to provide shared router with multiple hosts. I still figuring out how to find which matching rule is best match, but currently I use longer-rule-first logic to handle scope overlap issues.

A lot of stuffs are still work-in progress, if anyone wanna take a look or help with the dev, please see the v3.0.0 branch (not backward compatible)

from zoraxy.

Related Issues (20)

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.