Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
doc:docker [2019/08/16 12:02] – [Installing dockerized KnowRob] daniel86doc:docker [2019/08/19 13:10] – [Installing the docker daemon] daniel86
Line 1: Line 1:
-====== Setting up your own openEASE server for development ======+====== Setting up your own openEASE server ======
  
-This page collects information on the installation and usage of KnowRob with [[http://www.docker.com|Docker]], a tool for easily creating and managing Linux containers. Using Docker, we have created a cloud-based infrastructure for providing KnowRob as a service via the Web.+This page collects information on the installation and usage of openEASE, a web-service based on [[http://www.docker.com|Docker]]. Using Docker, we have created a cloud-based infrastructure for providing KnowRob as a service via the Web
 +You can follow the steps described here for any Ubuntu version that has docker independently of the Ubuntu version running inside of openEASE.
  
-===== Installing Web-Browser with WebGL Support ====+===== Installing web-browser with WebGL support ====
  
 Firefox is by far the most tested browser. Packages in ubuntu repositories should work with KnowRob. Firefox is by far the most tested browser. Packages in ubuntu repositories should work with KnowRob.
Line 13: Line 14:
 When the Browser is installed check that [[https://get.webgl.org/|WebGL is supported]]. When the Browser is installed check that [[https://get.webgl.org/|WebGL is supported]].
  
-===== Installing the Docker daemon =====+===== Installing the docker daemon & docker-compose =====
 Install Docker following the instructions at https://docs.docker.com/engine/installation/linux/ubuntulinux/. Install Docker following the instructions at https://docs.docker.com/engine/installation/linux/ubuntulinux/.
  
 After installation, you need to log out and log in again to have your username added to the new group 'docker'. After installation, you need to log out and log in again to have your username added to the new group 'docker'.
  
 +In addition, you will need to install docker-compose which is used for the orchestration of the openEASE application.
 +Install instrucitons for docker-compose can be found here: https://docs.docker.com/compose/install/
  
  
-===== Installing dockerized KnowRob ===== 
  
-The next step is to clone the KnowRob Docker repository to get some utility scripts, and to pull the docker images for KnowRob from [[https://hub.docker.com/|DockerHub]]:+===== Installing openEASE ===== 
 + 
 +The next step is to clone the openEASE repository:
   git clone https://github.com/ease-crc/openease.git   git clone https://github.com/ease-crc/openease.git
  
  
-===== Setting up WebSocket Authentication =====+===== Setting up WebSocket authentication =====
  
 Clients can communicate with the openEASE webserver using SSL encryption. Clients can communicate with the openEASE webserver using SSL encryption.
 For local testing you can generate a certificate with following commands: For local testing you can generate a certificate with following commands:
-  cd ./nginx-proxy/certs/+  cd ./openease/certs/
   ./gencert.sh   ./gencert.sh
- 
-This certificate must be included in the web server container (the certificate will be mounted as host volume inside of the docker container). Make sure to remove any old web server container 
-that doesn't include the certificate: 
-  docker rm -f nginx 
  
 **//NOTE//**: Please consider using a trusted certificate when running a production server, browsers will complain about the generated certificate! **//NOTE//**: Please consider using a trusted certificate when running a production server, browsers will complain about the generated certificate!
  
-===== Setting up Experiment Logs =====+===== Setting up experiment logs ===== 
 + 
 +**NOTE: this is subject of change, experiment logs will be inserted differently soon (DB 08/19)**
  
 Experiment logs can be downloaded via a public FTP server that is hosted in the network of Experiment logs can be downloaded via a public FTP server that is hosted in the network of
Line 58: Line 60:
 The volume container is automatically created based on the environment variable next time you start the openEASE webserver. The volume container is automatically created based on the environment variable next time you start the openEASE webserver.
  
-===== Setting up Admin User =====+===== Setting up admin user =====
  
 The admin user is automatically created when the webserver starts for the first time. The admin user is automatically created when the webserver starts for the first time.
Line 70: Line 72:
 **//NOTE//**: No admin user will be created if this variable is undefined. **//NOTE//**: No admin user will be created if this variable is undefined.
  
-===== Setting up Password Recovery ===== 
- 
-For production servers, you might want a working password recovery mechanism. 
-This requires a mail account that is used for sending the recovery mails. 
-Add two more environment variables to the .bash.rc: 
-  export OPENEASE_MAIL_USERNAME="XXX@gmail.com" 
-  export OPENEASE_MAIL_PASSWORD="XXX" 
  
 ===== Selecting a ROS distribution ===== ===== Selecting a ROS distribution =====
Line 84: Line 79:
   export OPENEASE_ROS_DISTRIBUTION="kinetic"   export OPENEASE_ROS_DISTRIBUTION="kinetic"
  
-It is required, that you have a container named ''openease/${OPENEASE_ROS_DISTRIBUTION}-knowrob-daemon'' 
-locally installed. 
 ===== Setting up mesh repositories ===== ===== Setting up mesh repositories =====
 +**NOTE: this is subject of change, meshes will be part of episodic memory soon (DB 08/19)**
 +
 Meshes can be downloaded from custom **git** or **svn** repositories. Meshes can be downloaded from custom **git** or **svn** repositories.
 This information must be included in the environment, for example: This information must be included in the environment, for example:
Line 107: Line 102:
   export TWITTER_APP_SECRET "XXX"   export TWITTER_APP_SECRET "XXX"
  
-===== Launching the Web interface ===== +===== Setting up password recovery (optional) =====
-The Web interface runs in its own container. On the one hand, this app provides the Web GUI, on the other hand it manages the container infrastructure, e.g. to start a new container when a user logs in. You can start this container using the 'start-webrob' script.+
  
-  ./scripts/start-webrob+For production servers, you might want a working password recovery mechanism. 
 +This requires a mail account that is used for sending the recovery mails. 
 +Add two more environment variables to the .bash.rc: 
 +  export OPENEASE_MAIL_USERNAME="XXX@gmail.com" 
 +  export OPENEASE_MAIL_PASSWORD="XXX" 
 + 
 +===== Launching openEASE ===== 
 +openEASE uses //docker-compose//. You can run openEASE by changing into the 'openease' folder and then running: 
 + 
 +  docker-compose up
      
 Then you can connect to the Web interface at https://localhost. Then you can connect to the Web interface at https://localhost.
  
-===== Setting up Mongo Logs =====+===== Setting up mongo server =====
  
 Mongo dumps are included in the episode data downloaded from the FTP. Mongo dumps are included in the episode data downloaded from the FTP.
Line 124: Line 127:
 right most column in order to import the mongo logs for one of the experiments. right most column in order to import the mongo logs for one of the experiments.
  
-===== Build own containers ===== 
-If you modified something in openEASE web app, you can build the respective containers using 
- 
-  ./scripts/build 
-   
-If there are changes in KnowRob repo, you can rebuild the KnowRob container image using 
- 
-  ./scripts/build knowrob 
- 
-It is suggested to run these two builds also after a fresh installation.  
  
 ===== Offline openEASE ===== ===== Offline openEASE =====
 +**NOTE: this is not supported as of 08/19, but the feature will be added again at a later time
 +**
  
 openEASE is a webapp and thus components may require active internet connection. openEASE is a webapp and thus components may require active internet connection.
Line 190: Line 185:
   sudo service mongodb stop   sudo service mongodb stop
      
-==== when i try to browse my openEASE instance, I end up in a "Welcome to nginx" page ==== 
- 
-please follow these steps:  
-  ./scripts/stop-webrob 
-  docker rm docker-gen nginx 
-  ./scripts/start-webrob 
  
 ==== Other docker problems ==== ==== Other docker problems ====