Skip to content

kite 0.1.5

Choose a tag to compare

@github-actions github-actions released this 01 Oct 10:37
· 53 commits to main since this release

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 vane and kite plugin add search install the newest version that works with the running Kite, or the one asked for as name@version. kite apps search, outdated and update look 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 in themes/ and plugins/ 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 doctor reports 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.index in kite.yaml, or KITE_APPS_URL, names an index of your own.
  • Packing a release. kite theme pack and kite plugin pack write the zip a release carries, holding only what a site uses, the same bytes every time. kite theme verify names the other sites a theme's pages load from, and kite plugin verify --json reports 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.5

Every 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, and kite apps update records it once its files match the index's copy of its version.
  • Installing or removing a theme or a plugin writes kite.lock when there is something to record; commit it with the rest of the site. A kite.lock that 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

Documentation

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.