add proxy server
This PR is for the purpose of running the gateway in a remote host with enhance security.
- put a flask proxy in front of the gateway to authenticate request using api-key
- run maintenance job as daemon
- manage gateway and check status via request to proxy server
- store user info in sqlite db, which can be mounted using docker-compose
Hey @timothyxlu thanks for submitting this PR 👍 I can see you've put in a good amount of work into it 👏
It's great you outline the changes you've implemented, however I wonder if you could give a bit more detail as to why you decided to create these additions? What are you gaining by putting that proxy server in front of IBeam? What is the scenario that is currently not handled by IBeam that you're trying to solve here?
Yep, it is a great tool but I feel it is missing sth for my use case. I need a gateway running on a remote server with good security. I don't want user name or password exposed in env or cmd params. Secondly, I need to remotely control IBeam, monitoring its maintenance job status, switch it on/off. With the change in PR, I can run the docker behind a reverse proxy, using a api-key to control IBeam.
yes, that's exactly my intension. proxy is designed to be an independent layer to provide remote-access/configurable security/multiuser env(in the future). it does not change the default docker image entrypoint and only effective if user configures it via docker-compose.yaml. Additionally, proxy server has ability of modifying response to add access-control-allow-origin flag to allow integration with web apps.
Hey @timothyxlu I noticed you're introducing some changes, which is great 👍 Thanks for answering some of my questions already. Let me know when they code will be ready for review, as I still can see some unaddressed comments from the previous review.
I'm going to close this PR due to inactivity. Thanks for your contribution and please feel free to request a reopen if you'd like to continue 👍