Skip to content
Snippets Groups Projects
Forked from kotahi / Kotahi
4541 commits behind the upstream repository.

Kotahi

Kotahi is a manuscript submission system, based on the discontinued xpub-collabra project. It is currently under development by the Coko Foundation and is being built with Pubsweet.

Installation

Developer beware! This project is currently under very heavy development, so things will most definitely be broken. We also don't have a fixed roadmap for it at this point.

Running the app

We provide docker-compose and docker files to ensure consistency across environments. This of course means that the following instructions assume that you have docker and/or docker-compose installed on your system.

You can use the docker-compose.yml and docker-compose.production.yml files as a reference for the environment variables that are needed, as well as a kind of installation guide if for some reason you wish to not use docker.

There is also the assumption that you have loaded the environment variables into your shell (eg. via source your_environment_file.env). If you place a file named .env in the project root folder, the docker-compose cli will automatically pick that up.

Development

To bring up the development environment, simply run:

docker-compose up

This will:

  • Run the server with nodemon, so that changes auto restart the server
  • Run the client with webpack dev server, with hot reload enabled
  • Bring up a postgres container for use in development
  • Register the job-xsweet service

Production

To run the app for production with docker-compose:

docker-compose -f docker-compose.production.yml up

This does the following:

  • Brings up the server, which will also serve a pre-built webpack static bundle
  • Register the job-xsweet service

For production, we are making the assumption that you have a running postgres database somewhere. You only need to provide its location and credentials via the environment variables.

Depending on your needs and setup, it might not be a good idea to use the docker-compose cli in production. If this is the case, and your container management solution cannot read docker-compose files, simply use the docker-compose.production.yml file as a reference for what is needed.

Other credits

The real-time chat functionality was heavily inspired by https://github.com/withspectrum/spectrum, from data model approach to copying and adapting certain bits of their React app. Thank you, Spectrum!