Teeport is an optimization platform that aims to solve the communication problems between the optimizers and the evaluators in real life. Read more about Teeport here and here.
To get the big picture of how Teeport works technically, please take a look at this Teeport tutorial.
This is the frontend part of the Teeport service, it's optional but provides nice addition features such as optimization monitoring, benchmarking and comparision. It requires the Teeport backend service to be running somewhere that is visible to the host of the Teeport frontend service to work.
To run the service, you can either run it directly (within a Node.js environment, follow the Run the service directly section) or run it in docker (follow the Run the service in docker section). You don't have to go through both, just choose one path that fits your needs (I recommend you go with the docker way if docker is available in your case).
- Node.js 12+
git clone https://github.com/SPEAR3-ML/teeport-frontend.gitIn the terminal, go to the root of the project and install the dependences:
cd teeport-frontend
npm installNow create a configuration file named .env with the content below:
REACT_APP_URI_TASK_SERVER=ws://{IP}:8080
REACT_APP_BASENAME=/
Where REACT_APP_URI_TASK_SERVER is the uri of the Teeport backend service, and {IP} should be replaced by the LAN IP of the Teeport backend service you run, typically something like 10.0.0.172. You can check it with ifconfig on Mac/Linux or ipconfig on Windows.
Then build the web app:
npm run build:lanThis will create a build folder that contains the web app files under the project root.
Now cd to the server folder under the project root and install the dependences:
cd server
npm installCreate a configuration file named .env with the content below:
MODE=local
BASENAME=/
PORT=3000
After that the project file structure should look like:
|--teeport-frontend
|--server
|--.env
|--...
|--build
|--...
We assume that you just want to test the service. Even though it's OK to run the service this way in a production environment, we recommend you to read the Deployment section if you want to run and use the Teeport frontend service seriously.
Let's run the service:
npm run serveTo verify if the frontend service has been built and run successfully, open your favorite browser and go to http://localhost:3000/tasks. You should be able to land on a page titled Teeport. You can then play with it as demonstrated in teeport-test.
Just hit ctrl + c in the terminal in which you run the service to terminate it.
git clone https://github.com/SPEAR3-ML/teeport-frontend.gitGo to the project directory:
cd teeport-frontendCreate a file named .env with the content below:
REACT_APP_URI_TASK_SERVER=ws://{IP}:8080
REACT_APP_BASENAME=/
Where {IP} should be replaced by the LAN IP of the Teeport backend service you run, typically something like 10.0.0.172. You can check it with ifconfig on Mac/Linux or ipconfig on Windows.
Then in the subdir server, create a file named .env with the content below:
MODE=production
BASENAME=/
PORT=3000
After that the project file structure should look like:
|--teeport-frontend
|--server
|--.env
|--...
|--.env
|--...
We'll use the Dockerfile.lan and the corresponding Dockerfile.lan.dockerignore to build the image, in order to do that we'll need docker 19.03 or higher, to be able to use the dockerignore file other than the default one.
Make sure you're using docker 19.03 or higher, let's enable the BuildKit mode.
If you're using bash-like terminal, run this:
export DOCKER_BUILDKIT=1Else if you're using powershell:
$Env:DOCKER_BUILDKIT = 1or you're on Windows cmd:
set DOCKER_BUILDKIT=1Then build the docker image:
docker build -f Dockerfile.lan -t teeport/frontend .docker run -d -p 3000:3000 --name teeport-frontend --restart always teeport/frontendTo verify if the frontend service docker is working correctly, open your favorite browser and go to http://localhost:3000/tasks. You should be able to land on a page titled Teeport. You can then play with it as demonstrated in teeport-test.
docker stop teeport-frontendYou can restart a stopped docker image anytime by running:
docker start teeport-frontendWIP