Skip to content

Latest commit

 

History

History
147 lines (97 loc) · 4.45 KB

manual_setup.md

File metadata and controls

147 lines (97 loc) · 4.45 KB

Manually installing dependencies

Install

Rather than using Docker, it is also possible to manually install the dependencies on your host machine or in a virtual machine. These dependencies include:

You can also use nodeenv (which is included as a python development dependency below) or nvm to install Node.js 16.x if you need to maintain multiple versions of node:

Ubuntu or Debian

You can install all the necessary packages using these commands (you may need to add sudo if you receive Permission Denied errors:

# Install minio
wget https://dl.minio.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
chmod +x /usr/local/bin/minio

# Install node PPA
curl -sL https://deb.nodesource.com/setup_16.x | bash -

# Install packages
apt-get install -y  python python-pip python-dev python-tk \
    postgresql-server-dev-all postgresql-contrib postgresql-client postgresql-12 \
    ffmpeg nodejs libmagickwand-dev nginx redis-server wkhtmltopdf

Mac OS X

You can install the corresponding packages using Homebrew:

brew install  postgresql@12 redis node ffmpeg imagemagick@6 gs
brew install minio/stable/minio
brew link --force postgresql@12
brew link --force imagemagick@6

Windows

Windows is no longer supported due to incompatibilities with some of the required packages.

Set up the database

Install postgres if you don't have it already. If you're using a package manager, you need to make sure you install the following packages: postgresql-12, postgresql-contrib, and postgresql-server-dev-all which will be required to build psycopg2 python driver.

Make sure postgres is running:

service postgresql start
# alternatively: pg_ctl -D /usr/local/var/postgresql@12 start

Start the client with:

sudo su postgres  # switch to the postgres account
psql  # mac: psql postgres

Create a database user with username learningequality and password kolibri:

CREATE USER learningequality with NOSUPERUSER INHERIT NOCREATEROLE CREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD 'kolibri';

Create a database called kolibri-studio:

CREATE DATABASE "kolibri-studio" WITH TEMPLATE = template0 ENCODING = "UTF8" OWNER = "learningequality";

Press Ctrl+D to exit the psql client. Finally

exit  # leave the postgres account

To start redis on Linux-based systems, run the following command

service redis-server start

On Mac, it will be started as part of the yarn run services command (detailed below).

Run all database migrations and load constants

These commands setup the necessary tables and contents in the database.

In one terminal, run all external services:

yarn run services

In another terminal, run devsetup to create all the necessary tables and buckets:

yarn run devsetup

When this completes, close the second tab and kill the services.

Start the dev server

You're all set up now, and ready to start the Studio local development server:

On Macs only run this in another terminal first:

yarn run services

Start the server:

yarn run devserver

Once you see the following output in your terminal, the server is ready:

Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.

You should be able to login at http://127.0.0.1:8080 using email [email protected], password a.

Note: If you are using a Linux environment, you may need to increase the amount of listeners to allow the watch command to automatically rebuild static assets when you edit them. Please see here for instructions on how to do so.