Skip to content
Snippets Groups Projects
Select Git revision
  • a38f5e974211443aaf1b8c577caad388747d61bb
  • master default protected
  • v0.11
  • v0.10
  • v0.9
  • v0.8
  • v0.7
7 results

slide-index

  • Clone with SSH
  • Clone with HTTPS
  • Slide index

    This micro service enables you to upload pdf slides (e.g. lecture slides) and query them.

    Setup

    Pull the image. Replace the version number. If unknown look up the latest version here: https://hub.docker.com/r/fwelter/elastic-search-middleware

    docker pull fwelter/elastic-search-middleware:<VERSION_NUMBER>

    Run the image. Adjust the ports according to your setup. Most likly the containers needs to be put behind an nginx or another webserver to ensure SSL encryption (see below for instructions).

    sudo docker run -p 8080:5000 \
    --env EXTERNAL_HOST=<YOUR_EXTERNAL_DOMAIN_OR_ENDPOINT> \
    -v /home/<YOURUSER>/slide-index/img_cache:/app/img_cache \
    -v /home/<YOURUSER>/slide-index/index:/app/index \
    -v /home/<YOURUSER>/slide-index/slides:/app/slides \
    -dit \
    fwelter/wilps_slide_index:<VERSION_NUMBER>

    The volume mounts are optional. If left out the container will start without content on every restart.

    Nginx

    Most often nginx ist available via the package eco system, e.g.

    sudo apt update
    sudo apt install nginx

    Make sure that the domain name is set up in the configuration e.g. /etc/nginx/sites-available/default The configuration needs to contain a line like server_name example.com www.example.com; Most likely the directive server_name is present and only the domain names need to be added.

    SSL certificates

    Install certbot and request SSL certificates.

    sudo add-apt-repository ppa:certbot/certbot
    sudo apt-get update
    sudo apt-get install python-certbot-nginx
    sudo certbot --nginx -d example.com

    More details can be found here: https://www.digitalocean.com/community/tutorials/how-to-set-up-let-s-encrypt-with-nginx-server-blocks-on-ubuntu-16-04

    Setup the reverse proxy

    Setup a reverse proxy in your nginx config (e.g. /etc/nginx/sites-available/default)

    If the slide index is hosted with a suffix (e.g. <YOUR_DOMAIN>/slide-index/search) make sure to adjust the environment variable, which set during the container start.

    location / {
        proxy_pass         http://127.0.0.1:8080/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_buffering off;
        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;
        
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    }