Closed slifty closed 3 years ago
A couple projects I've done have followed a pattern of script -> API -> CLI -> Docker, where the script is an intermediate stage, later refactored to a CLI sitting on top of an API, installable via npm
or npx
and then Dockerized.
An additional consideration: Okay, so you have your daemon. Let's say it has a basic CLI focused on providing file-based configuration. Do you also want a separate configuration CLI that acts as a client once you have a configuration store? Or is that the same CLI?
- A
tvk
command line tool (e.g.tvk start -c config.json
or whatever).
So presumably what this might do is create and fill a local instance from a template. (Also presumably another way to get that template would be to just clone it directly from GitHub rather than use the CLI tool.) That template would have the main tv-kitchen repo (this one, call it TVK core) as a dependency.
That's kind of the model I was imagining, personally.
Oh, interesting! So like Yeoman?
Yeoman. Now there's a name I've not heard for a long time. A long time.
But, yes, kind of? Basically the architecture I'm assuming is that the unique footprint of an individual TV Kitchen installation should be as small as possible, mostly config files, with TV Kitchen core, appliances, etc being imported as dependencies.
(Sidebar: Custom appliances would either be installed directly from GitHub or via npm, or even defined directly in the installation β src/appliances
? β if the user didn't want to bother with breaking it out. We should/would encourage and document, but not require, users posting appliances to GitHub and possibly publishing to npm so the rest of the community could benefit.)
So the user could create an "installation" by manually creating all the necessary config files and composing the package.json, but we could also provide a starter template that users could get by cloning the template from GH or, if we decide it's worth it, a CLI tool.
There's some discussion in #65 that is related to this question (see this comment)
I think this issue is a wrapped up now. We have recipes that show how to create TVK instances (those recipes could be considered entrypoints, but at the very least they show how the code level entrypoint is the Coutnertop)
Discussion
What do you want to talk about?
First: @chriszs has started working on a Docker entry point (π) over at #54, and we should continue that line of exploration to think a bit about how people are going to run a copy of TV Kitchen.
We should think about what we want to do for the short term, what we want to support for the long term, and what we want to document as the "recommended" way. Note that we can support more than one deployment technique.
Some options as I see them right now:
git clone
of thetv-kitchen
repository and following configuration steps.tvk
command line tool (e.g.tvk start -c config.json
or whatever).Some of this came up in dialogue around #65, since some of the appliance installation approaches might have relied on a modification of a
package.json
(we are likely NOT going to be following those approaches).Relevant Resources / Research
None for now, though I know there must be a ton out there about this issue.