This repository contains the implementation for the gRPC services, as defined in cheroapi.proto and userapi.proto, using Bolt, an embedded key/value store as the underlying database.
- run
go get github.com/luisguve/cherosite
andgo get github.com/luisguve/cheroapi
. Then rungo install github.com/luisguve/cherosite/cmd/cherosite
andgo install github.com/luisguve/cheroapi/cmd/...
. The following binaries will be installed in your $GOBIN:cherosite
,userapi
,general
andcontents
. On setup, all of these must be running. - You will need to write two .toml files in order to configure the users service and general service and at least one .toml file for a section. Each section should be running on it's own copy of
contents
binary and have it's own .toml file. See userapi.toml, general.toml and section_mylife.toml at the project root for an example. - Follow the installation instructions for the http server in the cherosite project.
For the application to work properly, there must be two services running: the users service and the general service, and at least one section service.
This service handles everything related to users on a single Bolt database file.
It's definition can be found at userapi.proto.
This service handles requests that involve getting contents from multiple sections and multiple users, such as the "/explore" page or the dashboard. It does not store any data, but requests it from the APIs of each section and the API of the users service.
It's definition can be fond at cheroapi.proto.
This service handles requests of a single section and stores data on a single Bolt database file. It performs one Quality Assurance every day automatically, if the variable schedule_qa is set to true in the .toml config file for the section.
It's definition can be fond at cheroapi.proto.