Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
doc:docker [2016/01/27 13:53] – daniel86 | doc:docker [2020/03/09 13:55] – [Setting up admin user] daniel86 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | This page collects information on the installation and usage of KnowRob with [[http:// | + | This page collects information on the installation and usage of openEASE, a web-service based on [[http:// |
+ | You can follow the steps described here for any Ubuntu version that has docker independently of the Ubuntu version running inside of openEASE. | ||
- | ===== Installing | + | ===== Installing |
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:// | When the Browser is installed check that [[https:// | ||
- | ===== Installing the Docker | + | ===== Installing the docker |
- | Install Docker following the instructions at http://nerds.qminderapp.com/docker-1-6-in-ubuntu.html. For Ubuntu Precise, this boils down to: | + | Install Docker following the instructions at https://docs.docker.com/engine/installation/ |
- | curl -sLo - http://j.mp/ | + | |
- | sudo gpasswd -a ${USER} docker | + | |
- | sudo service docker restart | + | |
After installation, | After installation, | ||
- | **// | + | In addition, you will need to install |
+ | Install instrucitons | ||
- | ===== 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:// | + | ===== Installing openEASE ===== |
- | git clone --recursive https:// | + | |
- | cd docker | + | |
- | ./ | + | |
+ | The next step is to clone the openEASE repository: | ||
+ | git clone https:// | ||
- | ===== Setting up WebSocket | + | |
+ | ===== Setting up WebSocket | ||
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/ |
./ | ./ | ||
- | |||
- | 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' | ||
- | docker rm -f nginx | ||
**// | **// | ||
- | ===== 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 64: | 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. | ||
- | The password is taken from an environment variable. Please add following environment variable to your .bashrc | + | The default |
- | and replace ' | + | |
- | export OPENEASE_ADMIN_PASSWORD=" | + | |
- | **// | ||
- | ===== Setting up Password Recovery | + | ===== Selecting a ROS distribution ===== |
+ | |||
+ | openEASE depends on rosjava. There are ubuntu packages available for ROS **hydro** and **indigo**. | ||
+ | indigo is used by default, but you can change the ROS distribution by extending your environment: | ||
+ | export OPENEASE_ROS_DISTRIBUTION=" | ||
+ | |||
+ | ===== 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. | ||
+ | This information must be included in the environment, | ||
+ | export OPENEASE_MESHES=" | ||
+ | export OPENEASE_MESHES=" | ||
+ | export OPENEASE_MESHES=" | ||
+ | export OPENEASE_MESHES=" | ||
+ | |||
+ | ===== Setting up remote login (optional) ===== | ||
+ | openEASE allows you to sign in via oAuth. | ||
+ | You have to register the openEASE app and acquire authentication and secret token from the service. | ||
+ | This information must be included in the environment: | ||
+ | export GITHUB_APP_ID " | ||
+ | export GITHUB_APP_SECRET " | ||
+ | export GOOGLE_APP_ID " | ||
+ | export GOOGLE_APP_SECRET " | ||
+ | export FACEBOOK_APP_ID " | ||
+ | export FACEBOOK_APP_SECRET " | ||
+ | export TWITTER_APP_ID " | ||
+ | export TWITTER_APP_SECRET " | ||
+ | |||
+ | ===== Setting up password recovery (optional) | ||
For production servers, you might want a working password recovery mechanism. | For production servers, you might want a working password recovery mechanism. | ||
Line 81: | Line 103: | ||
export OPENEASE_MAIL_PASSWORD=" | export OPENEASE_MAIL_PASSWORD=" | ||
+ | ===== Launching openEASE ===== | ||
+ | openEASE uses // | ||
- | ===== Launching the Web interface ===== | + | docker-compose up |
- | 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, | + | |
- | + | ||
- | ./ | + | |
| | ||
Then you can connect to the Web interface at https:// | Then you can connect to the Web interface at https:// | ||
- | ===== 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 98: | Line 119: | ||
A table with a row for each experiment is shown then. Press the " | A table with a row for each experiment is shown then. Press the " | ||
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. | ||
+ | |||
+ | |||
+ | ===== 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. | ||
+ | We try to keep our code offline compatible but since external libraries are used, | ||
+ | we can't ensure that all features are working without Internet connection. | ||
+ | We provide a special start script that -- additionally -- starts a dummy DNS server | ||
+ | in order to avoid timeouts when requesting DNS with no active Internet connection | ||
+ | (the dummy DNS server maps all domains to localhost). | ||
+ | |||
+ | Without active Internet connection, execute following call instead of calling ' | ||
+ | |||
+ | ./ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Administration ===== | ||
+ | |||
+ | ==== PostgresDB === | ||
+ | |||
+ | Get a bash console in the postgres container | ||
+ | docker exec -it postgres_db bash | ||
+ | |||
+ | Start '' | ||
+ | psql --username=docker | ||
+ | |||
+ | Write SQL statements, e.g., add a column in the user table | ||
+ | ALTER TABLE public.user ADD column_name character varying(50) NOT NULL DEFAULT ''; | ||
+ | |||
+ | Or update text of the '' | ||
+ | UPDATE tutorial SET text=E' | ||
+ | |||
===== Troubleshooting ===== | ===== Troubleshooting ===== | ||
Line 121: | Line 177: | ||
With Ubuntu, you can stop the server by executing following command: | With Ubuntu, you can stop the server by executing following command: | ||
sudo service mongodb stop | sudo service mongodb stop | ||
+ | | ||
==== Other docker problems ==== | ==== Other docker problems ==== |