Skip to content

WISE-Community/WISE-Docker-Server

Repository files navigation

Introduction

Installation

Updating with new releases

Troubleshooting

Properties configuration

Server architecture

Introduction

WISE can be set up to run using Docker. We've tested this on the following Linux servers:

  • Ubuntu
  • Debian
  • CentOS
  • RedHat (Use CentOS instructions to install Docker)

Minimum recommended server specifications:

  • 4GB RAM for small user base, 8GB RAM for large user base
  • 20GB disk space

Installation

  1. Install Docker Engine and Docker Compose
  2. To run Docker as a non-root user, add your user in the docker group
    • Run command to add user to docker group $ sudo usermod -aG docker $USER
    • Run the following command $ newgrp docker or logout and login again
  3. Clone this project $ git clone https://github.com/WISE-Community/WISE-Docker-Server.git
  4. Change directory $ cd WISE-Docker-Server
  5. Run setup script and follow prompts WISE-Docker-Server$ sh setup.sh
  6. Start services WISE-Docker-Server$ docker compose up
  7. Open your browser and type in the address to your server. WISE should be running there with default users (be sure to change the password once you log in)
    • admin/pass
    • preview/wise

Updating with new releases

  1. Stop Docker containers WISE-Docker-Server$ docker compose down
  2. Pull changes WISE-Docker-Server$ docker compose pull
  3. Start Docker containers WISE-Docker-Server$ docker compose up

Troubleshooting

  1. If you are having trouble loading the WISE homepage, it may be because your server does not have HTTPS enabled, but your browser is trying to access the HTTPS URL. To get past this, remove the "s" from "https" in the URL.

Properties configuration

You can edit the /WISE-Docker-Server/wise-api-server/application.properties file to enable certain features on the server.

Setting this value will enable Google Analytics. This keeps track of data on your users such as where they are from and what type of device they are using. You will need to generate your own Google Analytics id on the Google Analytics site.

google_analytics_id=

Setting these values will enable reCAPTCHA on the server. This helps protect against bots that try to interact with the server. You can generate these keys on the reCAPTCHA site.

recaptcha_public_key=
recaptcha_private_key=

Setting these values will enable the server to send emails. Email is used to send account creation confirmation emails, change passwords, and send support tickets.

spring.mail.username=
spring.mail.password=

These email addresses will receive emails from the server when certain events occur.

contact_email=
project_setup=
handle_exception=
uber_admin=
portalemailaddress=

Setting these values will enable users to sign in with a Google account. It also allows users to integrate WISE with Google Classroom. You will need to generate your own Google client id and client secret by following the directions here.

google.clientId=
google.clientSecret=
google.redirectUri=

Setting these values will enable users to sign in with a Microsoft account. You will need to generate your own Microsoft values using the instructions here.

microsoft.accessTokenUri=
microsoft.clientId=
microsoft.clientSecret=
microsoft.issuer=
microsoft.jwkUrl=
microsoft.userAuthorizationUri=
microsoft.redirectUri=

Setting these values will enable the Discourse forum where users can post messages. You will need to start up your own Discourse server and obtain the values from it using the instructions here.

discourse_url=
discourse_sso_secret_key=

Setting these values will enable the speech to text feature that allows students to speak into an Open Response item and have their words automatically converted to text. You will need to set up the transcribe service on AWS using the instructions here.

speech-to-text.aws.region=
speech-to-text.aws.identity-pool-id=

Setting this value will enable the AI Chat item that lets students chat with ChatGPT. You will need to generate your own Open AI API key using the instructions here.

OPENAI_API_KEY=

Server architecture

API (wise-api-server container)

This contains the API code that handles requests from the client. Whenever the client makes a request to the API, the API performs processing and sends back a response. The API saves user data and unit data to the MySQL database. The API also saves the curriculum and student uploads to the file system.

Client (wise-client-server container)

This contains the client code that gets run on the browser.

MySQL (wise-mysql-server container)

This contains the database where the user data and unit data is stored.

Redis (wise-redis-server container)

This contains the session database where the user session data is stored.

Nginx (wise-nginx-server container)

This contains an http server that reads the curriculum content and student uploads from the file system and sends it to the client whenever client requests it.

About

Deploy WISE on a server with Docker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages