How to host your private store?

How do I host my own proprietary code in a private store?

I have tested https://github.com/noise/snapstore but it lacks the possibility to sign the snaps so that they will work with snap install? Is there a specification for a snap store API so that a private snap store can be implemented ?

1 Like

Somewhat relevant debate
At the moment there’s no easy way to add external repositories/private stores to snapd and this is because implementation would not just be a two-minute thing (and behavior would have to be worked out), it would be significant work and there’s lots of other stuff going on (look around the forums lol)!

You can install those snaps with snap install foo.snap --dangerous instead of snap ack foo.assert ; snap install foo.snap but yeah perhaps it isn’t right that all snaps outside of the default store are considered dangerous which they currently are if this signing feature isn’t implemented? I guess adding external repository support isn’t necessary for this to work, since you can still download the snap and ack ; install manually…

It is not even possible to do the snap install foo --dangerous from a private store since the flag --dangerous is only allowed on local snaps. So the entire download and find procedure is also lost. Can someone think of a better solution right now than to have a file share and pre-download a snap with wget and install locally with the --dangerous flag?

Perhaps it could be possible for the snap install command to accept the --dangerous flag also from the store?

Reading Niemeyer’s comment which is the authoritative one, they haven’t done anything about this issue so far because they’re focusing on providing a great end-user experience. If you want to distribute a snap you should distribute it via the official snappy store.

You’re more than welcome to host proprietary snaps there, @niemeyer could you explain how that works?

Oliver (Ogra)'s discussion in that thread is interesting and he’s produced a small, very hacky, script that would allow you to have a basic CLI for downloading and installing from a store using --dangerous. But this wouldn’t support snap refresh etc so it’s basically unusable for the end-user who would be using the official snapd workings anyway. The theoretical possibility of having an external repository is not the point that the snappy developers are focusing on, they’d rather people just use the official snappy store (which is much easier for the end user to use)!

note that his script is really a gross hack, please stick to @niemeyer’s comment instead …

1 Like

Proprietary snaps is really not a problem… those may be hosted in the default store. That said, the summary, description, and the conversation here seems to really be about an external store, which is being well covered in the topic referenced above. Let’s please continue the conversation there.