2267 views
owned this note
# Computing Info: The FLEUR tutorial
[Link to this page](https://iffmd.fz-juelich.de/s/Diafl-tYK)
Here we will explain how to use the FLEUR User Tutorial Using Resources in a container Environement, in short FUTURE.
This tutorial is hosted in a `container` that is executed on your machine. You will interact with this container using your web-browser. In your web-browser you find a jupyter-lab environment with different jupyter notebooks guiding you further and explaining the different steps required to use FLEUR.
## Requirements
The following requirements must be fullfilled in order to use the tutorial:
- You need to install docker/podman on your own computer. We are not able to assist you with this process but for many operating systems it is a rather simple process. You might want to check https://www.docker.com/products/docker-desktop or https://podman.io/getting-started/installation. For the purpose of this tutorial, either docker or podman can be used. We will use the term docker in the following, but the instructions apply to podman as well. If you use linux it is probably best to use the docker/podman provided by your distribution.
- In order to ease the handling of the tutorial, we provide a small shell script. So you need a unix-shell (bash) on your machine as well.
## Start a tutorial on your own computer
On a computer which has docker/podman installed, please use the [small shell-script we provide here](https://iffgit.fz-juelich.de/fleur/fleur/-/raw/develop/future?ref_type=heads&inline=false). Please download the script and execute it with ```bash future``` alternatively, change the permissions of the script and make it executable so that you can start it with ```./future``` directly.
The script offers use different commands for starting/stopping and manipulating the tutorial. The general usage in all cases is
```
bash ./future COMMAND
```
Please look at the output of ```bash ./future help``` for a full list of command and usage instructions.
### Trouble shooting hints
- Alternatively, (i.e. if you run on windows without a proper shell): start the container on your command line with:
``` docker run -p 8888:8888 judft/future ``` or ``` podman run -p 8888:8888 judft/future ```.
You will see some output including a link like ```http://127.0.0.1:8888.....```. Open this link in your browser and start.
- Please ensure that your docker works. E.g. you could try a simple ```docker run -it busybox```. You should get a termial in this container. Stop it with CTRL+d.
- In general the browser needs to run on the same computer the tutorial is running on. If you are a network guru you can change that, but we are not able to assist you in this.
- If you can not run the script (i.e. if you run on windows without a proper shell): start the tutorial by hand like this from your command line.
``` docker run -p 8888:8888 judft/future ``` or ``` podman run -p 8888:8888 judft/future ```.
You will see some output including a link like ```http://127.0.0.1:8888.....```. Copy the full link into your browser and start.
- On some linux installations you might have to run docker and the script with ```sudo```.
- If the script writes out dots (```......```) for some time it is probable that something went wrong, e.g., you could have missing permissions for running docker or the used socket is blocked by another (instance) of a docker image. If you observe something like this please have a look at the ```log``` file under `~/.future/log ` to get a hint on whether something went wrong. You may check whether other images are running with ```docker ps``` and terminate them with the command ```docker kill <CONTAINER ID>```, where ```CONTAINER ID>``` is the container ID. For other issues it may be a good idea to search for the error message in the ```log```file in the internet. For example, to fix the permission issue [this Stack Overflow discussion](https://stackoverflow.com/questions/48957195/how-to-fix-docker-got-permission-denied-issue) may help.
- ***Last resort:***
You can also a free web-service with the tutorial with the mybinder.org webservice. Just use the following link for this service: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/git/http%3A%2F%2Fiffgit.fz-juelich.de%2Ffleur%2Ffleur_tutorial_container/master?labpath=Welcome.ipynb)
This has the major disadvantages. E.g the resources in the containers run on mybinder.org are limited and you depend on the availablity of the mybinder.org service.