-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker support #106
Docker support #106
Conversation
Yeah sorry about that, a lot of major restructuring has been happening recently. With #105 being the way forward with Yark, I'm not sure how to fit docker into the architecture. I want people to be able to self-host their own archives so multiple trusted people can access them, so maybe the new GUI will have a "remote connect" URL and docker will just contain a headless API server like what the GUI normally connects to (federated archive servers). I'll review later today |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good docker integration here, just some comments and general structure changes to do in the cli file
- moved webbrowser opening function to config - renamed `--disable-webbrowser` to `--headless` - added docstrings and comments - updated help output
With future being yark server/yark gui separated and federated yark servers, most of these changes are probably just short term patches until it is ready. |
Yep, I'll redo everything thats needed once the project is restructured. My current thinking is:
|
It makes sense for So you could start a docker container that has a volume and runs the How dynamic is |
when this PR is ready I'll rebase it before you merge it. |
Good point, it would be really nice to download that single binary and be able to run the api then and there; makes sense for ease of use and for simplified CI/CD on Yark's side. It looks like there is decent sidecaring available for it. I do want Docker deployments to be the main way that people deploy headless archives for remote connections going forward. I think yark-pages is for now limited to being a desktop application. I ideally wanted yark-pages to be a full web-app and it could do that because it's basically a static SvelteKit (think React/Angular) app put inside of the fancy tauri webview. Unfortunately tauri is in an early state and it makes it so yark-pages has to use some of its native api for file stuff which is hard to seperate. TL;DR:
|
Why does |
When users want to load an archive that's not on the list of recent archives they need the file browser to popup so that they can select their archive. This needs tauri fs stuff because the webview returns What could be potentially done is deploying two versions of the GUI. One using tauri and one with all of the archive loading stripped out, only allowing you to connect to a remote archive. The main problem with doing this is that I don't have time right now to figure out how to feature-gate sveltekit stuff depending on deployment targets and setup all of the deployment stuff and new designs for an online version. |
I'd see it as something you'd query a So you could potentially point a |
Yep exactly :) I think of it in the way where you have CoD and if you want to play a game your client needs to connect to a server. Normally it connects to a local server it spins up itself from the server inside of it's own game files, but it can also connect to friend's servers. I started to make a discovery system so you can find popular archives, but it became feature creep for this first version. There's also some considerations with people putting not very nice words in as their archive name. Hopefully I'll get around to adding it in the future. |
I didn't get back to it in time, but it's all done now :) I'll wait for 1.3.x to get more fleshed out before I start looking for things to help with. |
Nice, I think migrating docker support to the new |
I've used the makefiles.dev makefiles before, |
This probably needs some review since the scope creeped a bit.
This PR contains:
Dockerfile
for building.view
command to handle command line parameters..pylintrc
config (will need to be updated for your specified code-style).I've added a
DOCKER_CONTAINER
environment variable to the container, which causes theconfig.submit()
to override with sane values (bind_host: 0.0.0.0
,open_in_webbrowser: False
), so when using the container users don't need to specify the bind host or not to attempt to open a webbrowser.Python isn't my daily driver language, so it feels a bit hacky, I can split this up into multiple PRs (for devcontainer stuff, etc), but I'm expecting this to only be the first draft.
This PR addresses issue #81