About
Thoth (/θoʊθ, toʊt/, Greek Θώθ < Coptic Ⲑⲱⲟⲩⲧ < Egyptian ḏḥwtj) is an Open Dissemination System for Open Access books. Written purely in rust, it consists of:
- A GraphQL API, implementing a data model specifically designed for OA books
- An actions API to export metadata in formats like ONIX, MARC, etc.
- A WebAssembly GUI to manage metadata records.
Getting Started
Requirements
- Rustup
- Stable Toolchain:
rustup default stable
- wasm-pack
- rollup
- A PostgreSQL database (included in docker-compose.yml if ran using docker)
libssl-dev
Running with docker
git clone https://github.com/thoth-pub/thoth.git
cd thoth
cp .env.example .env # Edit the credentials in .env
docker-compose up
Running with rust (cargo)
Config
git clone https://github.com/thoth-pub/thoth.git
cd thoth
cp .env.example .env # Edit the credentials in .env
API
cargo run init
Wasm GUI
wasm-pack build thoth-app/ --target web \
&& rollup thoth-app/main.js --format iife --file thoth-app/pkg/thoth_app.js \
&& cargo run start app
Building with docker
The wasm APP needs to know the endpoint the API will be running at compile time, we must provide THOTH_API
as a build argument to the docker daemon upon build:
docker build --build-arg THOTH_API=https://api.thoth.openbookpublishers.com . -t openbookpublishers/thoth
Acknowledgements
Thoth is being developed as part of the COPIM project, an international effort to build community-owned, open systems and infrastructures to enable Open Access book publishing to flourish. COPIM is funded by the Research England Development Fund (REDFund) and Arcadia.