Components

Locomote’s basic architecture can be seen in the following diagram:

Locomote.sh server architecture

All content in Locomote is stored as files within content repositories. Locomote uses the content in these repositories to build a file database, which is basically just a list of the public files in each repository, together with meta-data about each file, and possibly also other relational derived from the file.

All content in Locomote is protected by an access control layer, which restricts access to content and the file database based on user permissions. The access control layer interfaces with a user database which provides user authentication services and information about user permissions. (Locomote provides a very basic file-based user database implementation, but can be easily integrated with external providers).

Content is published through a couple of mechanisms. A website is generated from each content repository, to be accessed by standard web clients over HTTP. Additionally, content is also made available over web feeds which allow mobile clients to check for updates and perform efficient downloads of published content.