Skip to content

turtl/server

Folders and files

NameName
Last commit message
Last commit date
Mar 28, 2018
Mar 5, 2021
Jan 17, 2019
Nov 15, 2018
Jan 17, 2019
Apr 3, 2020
Sep 28, 2018
Apr 3, 2020
Aug 19, 2018
Feb 25, 2019
Jan 11, 2017
Nov 2, 2019
Sep 19, 2017
Feb 25, 2019
Feb 25, 2019
Oct 29, 2019
Dec 9, 2018

Repository files navigation

Turtl server

Opening an issue? See the Turtl project tracker

This is the new Turtl server. It handles a number of things for Turtl clients:

  • Account management (join/login/delete)
  • Data storage
  • Syncing
  • Permissions and sharing

It implements a plugin architecture so things like analytics and payment processing can be used without forcing a particular method/service.

Running the server

The Turtl server requires Node >= 8 and a Postgres instance (>= 9.6) with a dedicated user/db set up for it.

Once you have Node and Postgres set up, do the following:

mkdir turtl
cd turtl
git clone https://github.com/turtl/server
cd server/
npm install
cp config/config.yaml.default config/config.yaml

Now edit config/config.yaml as needed. You'll want to main get your db settings correct, and uploads/s3 sections configured. Also, be sure to change app.secure_hash_salt (unless you're going to be running the integration tests against this server).

Now do:

# create the plugin directory from config.yaml#plugins.plugin_location
mkdir /path/to/plugin/dir    # (usually just plugins/ in turtl/server/)
./scripts/init-db.sh
node server.js

Great, done.

Running the server (via docker-compose)

You only have to run the following docker-compose command:

docker-compose up

It will spawn a postgres database and the turtl server itself. Now you have a running turtl which is available under 'http://localhost:8181'.

Be aware: after you cancel the docker-compose the data will be lost. For productive usage you may want to store the postgres-data inside a docker volume.

Configuration via ENV-Variables

In docker you may want to set each configuration value (for example the database) via environment variables. You can override each default value via environment variable! Just create a variable named with the prefix TURTLE_ followed by the "yaml-path" written in UPPERCASE. For example: If you want to change the app.api_url value you have to define the variable name like TURTL_APP_API_URL.

Some configuration values are explained in config/config.yaml.default.

Integration tests

If you want to run the integration tests against this instance of the server you need to do two things:

  1. Leave the app.secure_hash_salt value as it appears in config.yaml.default
  2. Run node tools/populate-test.data.js

Releases

No releases published

Packages

No packages published

Languages