Part 1: Installation

Note

Additional installation instructions and developer notes are available at the SMART Github code repository.

To begin installing SMART, first clone the code repository to the local directory of your choice:

$ git clone https://github.com/RTIInternational/SMART.git

SMART uses Docker in development to aid in dependency management. First, install Docker and Docker Compose. Then navigate to envs/dev and run docker-compose build to build all the images:

$ cd smart/envs/dev
$ docker-compose build

Next, create the docker volumes where persistent data will be stored: docker volume create --name=vol_smart_pgdata and docker volume create --name=vol_smart_data.

$ docker volume create --name=vol_smart_pgdata
$ docker volume create --name=vol_smart_data

Then, migrate the database to ensure the schema is prepared for the application.

$ docker-compose run --rm backend ./migrate.sh

Lastly, run docker-compose up to start all docker containers. This will start up the containers in the foreground so you can see the logs. If you prefer to run the containers in the background use docker-compose up -d. When switching between branches there is no need to run any additional commands (except build if there is dependency change).

$ docker compose up -d

To see SMART in action, navigate to http://localhost:8000 in your web browser of choice. You should be welcomed by the SMART login screen:

login-screen

Note

By default, SMART will use port 8000 for the front-end and port 5432 for the back-end processes. See the SMART code repository README for instructions on how to change the default ports.

Finally, create a profile to start your own new labelling projects or to be added to an existing one:

sign-up

Production Installation

SMART provides both development and production docker builds, depening on user need. The production setup is fairly close to the development one, with some changes that make it easier for the application to run in production. One noteable difference is that celery is currently not supported for the production build due to some complications it can introduce when running the application in production on a managed server. See envs/prod/README.md for more information, including instructions on setting up regular backups of the production database.

Note

If you intend to run SMART on a server where other processes may be running, you may run into problems with ports already being in use. This can be fixed by changing the default SMART ports in the docker compose files.

Warning

Please note that there may be delays in updating SMART’s dependencies between releases. If your project includes sensitive data, we recommend running SMART within a closed, secure network environment.