-
-
Notifications
You must be signed in to change notification settings - Fork 821
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
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
Add a appstore? #722
Comments
It would be nice to have something like this indeed. The underlying functionality for doing such a thing is almost done. See: os-js/osjs-client#21 However, I sadly haven't found much time this year to actually complete that.... but saying that, I will be able to complete it ASAP, because my work schedule just got a lot lighter for the rest of the year 😅 But that's just one part of it all. There would also need to be some kind of back-end service (and website) for hosting all of this with some kind of registry. This part I would definitely need some help on, which I've tried in the past, but it never really went anywhere: https://github.com/os-js/store.os-js.org (I actually don't remember what's currently in there because it was made by a community member looong ago). So if you (or know of anyone) that might wanna team up on this, let me know! :) |
For something like this, as dumb as it sounds, you could use github pages or some sort of static hosting solution |
The infrastructure part of this is not an issue. I have a few dedicated servers I can use for things like this. When I was talking about the "hosting" I was thinking about the actual services etc. that runs the app store 😊 |
I can provide development related or temporary stuff using the google cloud platform for you. I dont know if thats useful in this case, but at least its some help I hope. I will send you my number and/or add you to a google cloud platform project with a monthly budget of 30-50 bucks. |
I can provide an account on one of my servers if you're interested in developing for this idea (in the case you need CI/CD).. No need for GCS. |
I could try, I am bad at back-end stuff doe, at most I could do bug hunting and fixing, I am better at that, so if you want help with bug hunting, I can do that, but back-end, sorry. |
If you're into bug hunting and fixing then you could probably set up an installation of your own and dig into that. As for open issues, look here https://github.com/search?q=org%3Aos-js+is%3Aopen+is%3Aissue+archived%3Afalse&type=Issues . It should contain all issues from all repos relating to this project. And as for the app store related things, I'll let you know when that gets going -- because I'll need some testers 👼 |
i have an idea that might work, use glitch.com it is free and i have used OS.js on it with great functionality |
@17lwinn It might be possible to have a glitch app that allows you to simply browse the contents over there and launch apps in an iframe. Because glitch is sort of like Codesandbox, yes ? |
Sorry for the wait. It would work, I installed OSjs in a project and works fine |
You can see OS.JS running here: Please wait while it loads |
@17lwinn I must have misunderstood what you meant entirely here. Yes, OS.js can run inside things like glitch, codesandbox, codepen, jsfiddle, etc. just fine (there's even official examples on this online which can be found in the manual). What I thought you meant here was to create an OS.js application that allows you to browse projects on Glitch and then open them in windows or something. |
That could work! I could make an iframe application that links to a page full of projects to remix. @andersevenrud how about i do this and name it something like 'app store' |
Ive made a prototype, glitch requires a few seconds to load its resources and we COULD try to lower this time through sandboxing |
I was thinking of doing it using their open APIs https://glitchapi.glitch.me/ . |
I could use the glitch API, some people have added it to NPM |
Ive just had an idea, how about a page with lists of applications and buttons that trigger 'npm install'. i'm confused however.
How do you mean? We would probably have to create a site that uses the glitch API to grab project details |
@17lwinn My idea is pretty simple, really. Just a basic interface where you can browse categories or search via an input field. This interactivity simply uses the API to get back and render the results from Glitch. When you chose a result a window pops open that loads the application selected inside an iframe. No need to install anything when the apps are already hosted on another platform. |
@17lwinn The API link I pasted in a previous comment has everything needed to build something like that. |
Well, i'll get to work. |
Im going to clone the example iframe application as a starting point, mainly because of the limits i work under |
@17lwinn I went through my notifications and was reminded of this thread. I just made a quick proof-of-concept for the Glitch application launcher that you might find interesting: https://github.com/andersevenrud/osjs-glitch-application I actually found that the documentation of the API is no longer correct, and didn't look any further into it, so this PoC just does a simple lookup taken from glitch.com website. But at least it demonstrates how this could be implemented 🙂 |
thanks! i will give it a try! |
can you make it an NPM package so others can download it? you could call it @osjs/glitch-poc Edited by anders: andersevenrud/osjs-glitch-application#1 |
@17lwinn ive been trying to host it with glich... can i have a link to urs |
Yep, you can remix an osjs project I have setup here: |
Thank you |
no problem |
@andersevenrud are you still looking for help for the app store for OS.js? I'm thinking of making one |
Yeah, just some kind of basic service that stores OS.js packages in its standard format with a database to do lookups. The OS.js metadata (metadata.json) should suffice here -- which could be simply put into a Mongodb or something as documents.
Indeed :)
This is not really needed if you look at my first section of this response, however it might be valuable to have this feature -- which basically would be a dump of the database.
Sounds good to me :) |
@leopck As for servers, that's not an issue. I can spin it up quite easily and just add a subdomain. |
Sure thing, I'll get this up and going using my own server for now. If it's good, then we can port over to your server. I'll keep you all updated. Stay tune. |
@leopck Alrighty! |
@andersevenrud btw are we planning to store a copy of the maintainer's source code or binary in our servers? Definitely a few things to consider, I'm going to use examples from existing OS implementation and community:
Personally I prefer Docker's implementation as it's better for user experience. What do you think? |
Of course docker also supports pointing to other registry by using command like --registry= which changes the server by which it's pulling from. Maybe we should do this as well. Some enterprises/companies prefers sustaining their own registry as they have their own set of requirements like "proprietary codes" or having to support their own customers, especially since we are on the bleeding edge, perhaps some companies would want to "fork" a copy and sustain an LTS from OS.js's versions. |
I was thinking just the actual build of the applications and nothing more.
I was thinking of having sort of the same policy as npm here. Basically removal is only allowed within a certain timeframe, and if it's outside that timeframe it would have to be a manual request that is evaluated. Since [at the moment] applications can't depend on each other there's no major risk of breaking something in a chain.
Since I was thinking that installation of apps would just be an URL pointing to an archive, different "registries" will be supported out-of-the-box (meaning technically even apps hosted on npm could be installed without using npm itself). Now that you mention this, I'll add a task to the issue relating to this that it might be a good idea to support private packages behind authentication (which could be handled over HTTP |
Alright, sounds great. Though that means that we won't be able to rebuild the application if the source code disappears. We would want to do this for security measures like if an application becomes so popular however the src is missing but it contains vulns. This is model is often seen in Java. Lots of Java older modules contains vulns that are not patch but community are not able to patch them as the .jar files and the maven repo doesn't contain the source code for them. Just FYI, since many systems in the world still operates in this manner.
I think this is a fine policy, would be great if these policies are written in black and white for others to review and comment. I guess we'll get to this once we get the entire app repo ready.
Makes sense, I think having a client to serve for the "app installation" on OS.js and disconnecting from npm is a good move. Would be like "apt-get" or "dnf" or "swupd" from Linux. This provides more flexibility than constantly installing into nodejs itself. |
Since the applications installed this way won't have [by default] access to server-side scripts (with exception of internal APIs and third party services), this should be fine. But now that you mention this it would be nice to be able to flag applications that may potentially introduce any issues like this. |
When I was writing the registry, I was recommended to join netlify- which offers 100GB of space. My registry is just zip files- not much magic going on server side |
I was thinking an app that when started:
|
You can setup a caddy server, that's free and customisable |
As I've mentioned before in this thread, hosting is not an issue -- I have access to this for free.
What app ? Either way, don't need to reload osjs, it supports dynamically loading stuff.
I'm not sure how this is relevant. |
I mean like an app that says 'install noVNC' or something And a caddy server allows you to create file servers with different capabilities. This could be used to hold the files for the store |
This was discussed in this thread yesterday.
I would much rather prefer just using nginx or something like that and host files directly (which will be used as a reverse-proxy for APIs, website etc.) |
FYI this is the issue that describes related tasks: os-js/osjs-client#106 |
Package installation APIs (and uninstallation) for users has been implemented in experimental branches of @osjs/client and @osjs/server (linked in previous comment)! I'll probably throw together a dummy HTTP service for this and a proof of concept client application so it's easier to demonstrate the usage as well as test development on the actual hub/store. |
alright, I'll try to hook that up Among them is verdaccio I'm thinking of re-using most of verdaccio and replacing some bits like the API uploading or API installing(downloading) from verdaccio. Right now the majority of the commands are using "npm", I'll have to change that to @osjs/client's command and perhaps I'll have to make some changes to the client's code to call the API as well. |
one developer i know spent two months making an OS like OS.js, with simple API's and extremely easy ways to make apps and file extensions. the point is, he said in 5.0 he would begin fixing the appstore and letting it download apps. So perhaps this could be a sign?: https://support.glitch.com/t/auroraos-an-os-in-your-browser/24337 |
@17lwinn A sign ? |
@17lwinn I'm a bit confused. What question ? |
Sorry, i'll explain The OS has a market app- where you can download apps being fetched from an external backend. I'm saying we could do the same when download functionality is available |
@andersevenrud I figured it out. Create an Installer app which lets you install an app from a JSON manifest for standalone and normal versions. Additionally in both versions, create an appInstall function which will install an app. If you design a manifest spec and allow insertion from URLs both locally and externally, users can add apps easily and effectively. |
What you describe has been implemented in a PR I commented on in this thread: #722 (comment) I sadly haven't found any time to finish all of it. The only thing I merged was the ability to load external packages, but the actual installation procedure is in the linked PR. |
Wouldn't that require a custom WebSocket connection and a Node package to create an SSH connection with the server? |
Is an Appstore still possible I would like to see this come into OS.js |
Hello? |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
I feel like there should be a app store
The text was updated successfully, but these errors were encountered: