Repository navigation
kite 0.1.5
A release that brings the app center: themes and plugins are found, installed and kept up to date by name, from the studio and the command line, out of an index anyone can list a package in.
Highlights
- The app center. The studio's System → App center lists the themes and plugins in the index, with a search, official and community packages told apart, and every version of each. Before a package is installed it says which other sites it has readers' browsers load from, and for a plugin how many pieces of code it puts on pages and which hooks it runs. The theme and plugin pages mark what has a newer version, and a theme can be previewed on the whole site as soon as it is installed.
- By name from the command line.
kite theme add vaneandkite plugin add searchinstall the newest version that works with the running Kite, or the one asked for asname@version.kite apps search,outdatedandupdatelook through the index and keep what a site installed up to date. - kite.lock. What came from the index is recorded beside
kite.yaml: the version, the index and archive it came from, the archive's checksum and a digest of the files as installed. The files stay inthemes/andplugins/and are committed with the site, so a build never needs the network. An update leaves alone a package you changed by hand unless told to replace it, and a plugin whose new version loads from another site, runs another hook or injects more code is updated only once that is agreed to.kite doctorreports packages changed since they were installed. - Checked downloads, fetched by Kite. The index names every archive by its sha256, and Kite checks the bytes before it unpacks them, then checks the package as it checks an uploaded one. The server fetches the index, the archives and the screenshots, so the browser never reaches their addresses; without a network the copy kept is used, and Kite says how old it is.
apps.indexinkite.yaml, orKITE_APPS_URL, names an index of your own. - Packing a release.
kite theme packandkite plugin packwrite the zip a release carries, holding only what a site uses, the same bytes every time.kite theme verifynames the other sites a theme's pages load from, andkite plugin verify --jsonreports what a plugin does to a site.
The index
The index is built in kite-plus/apps and lists the six official packages to begin with. Anyone can list a theme or a plugin with a pull request that adds a three-line entry. Every version is checked as Kite checks a package, copied into a tag of its own and served by jsDelivr, and a version that asks for more than the one before waits for a maintainer. Its README says how to list one.
Install
Download the archive for your system below, unpack it, put kite somewhere on your PATH, and run kite run in an empty folder. On macOS, xattr -d com.apple.quarantine kite lets a downloaded program run the first time.
To run a site on a server with Docker:
docker run -d --name kite --restart unless-stopped -p 127.0.0.1:1717:1717 -v kite-data:/data ghcr.io/kite-plus/kite:0.1.5Every archive can be checked against checksums.txt, and a given commit builds to the same binary on any machine.
Upgrading from 0.1.4
Replace the binary, or pull the new image. Nothing a site already has changes:
- Themes and plugins installed before are left as they are, with no record in
kite.lock. One whose homepage is the repository the index names is still offered updates, andkite apps updaterecords it once its files match the index's copy of its version. - Installing or removing a theme or a plugin writes
kite.lockwhen there is something to record; commit it with the rest of the site. Akite.lockthat cannot be read stops installs until it is fixed or deleted.
Notes
Kite is in early development. The reference covers installing by name, kite.lock and the app center. Signing the index and every package comes next, tracked in #16.
Every change in this release
Changelog
Features
- 56427c7: feat(api): install and update from the index (@amigoer)
- 02c162d: feat(cli): install and update packages by name (@amigoer)
- 1a63046: feat(cli): pack themes and plugins for the index (@amigoer)
- 15d956b: feat(store): record index installs in kite.lock (@amigoer)
- 88379fe: feat(web): add the app center (@amigoer)
Documentation
- 1669ff7: docs(design): mark the app center index as live (@amigoer)
- 313ee03: docs(design): plan the app center (@amigoer)
- b00e247: docs: bring the roadmap up to 0.1.5 (@amigoer)
- 834afa9: docs: describe installing by name and kite.lock (@amigoer)
- 23fc75e: docs: describe the studio's app center (@amigoer)
- 89814b3: docs: say that kite/v1 is frozen (@amigoer)
Install
Download the archive for your platform, or pin the version in a project
so that local builds and CI agree:
./kitew build
Verify a download against checksums.txt before running it.