13 Setup NGINX
NGINX runs in the master machine and outside the Kubernetes cluster.
Install NGINX:
sudo apt-get updatesudo apt-get install -y nginxsudo apt-mark hold nginxVerify that NGINX is running:
sudo systemctl status nginx.service13.1 Configure Secure Sockets Layer (SSL)
Delete default NGINX configuration:
sudo rm /etc/nginx/sites-enabled/defaultsudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default_nginxConfigure the SSL certificate with Let’s Encrypt.
sudo cp /etc/nginx/sites-available/default_nginx /etc/nginx/sites-available/default_nginx4lets-encryptChange the server_name to notebooks-test.gesis.org in /etc/nginx/sites-available/default_nginx4lets-encrypt.
Create a symbolic link from /etc/nginx/sites-available/default_nginx4lets-encrypt to /etc/nginx/sites-enabled/.
sudo ln -s /etc/nginx/sites-available/default_nginx4lets-encrypt /etc/nginx/sites-enabled/Test NGINX configuration file:
sudo nginx -tReload and restart NGINX:
sudo systemctl reload nginx.servicesudo systemctl restart nginx.serviceVerify that NGINX is running:
sudo systemctl status nginx.serviceObtain the SSL certificate:
NGINX must be able to reply to external requests. You can use a service like https://downforeveryoneorjustme.com to test if the server is accessible from outside GESIS network.
sudo certbot \
--nginx \
-d notebooks-test.gesis.org \
--debug-challenges -vSaving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for notebooks-test.gesis.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Challenges loaded. Press continue to submit to CA.
Pass "-v" for more info about challenges.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/notebooks-test.gesis.org/fullchain.pem
Key is saved at: /etc/letsencrypt/live/notebooks-test.gesis.org/privkey.pem
This certificate expires on 2023-06-14.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for notebooks-test.gesis.org to /etc/nginx/sites-enabled/default_nginx
Congratulations! You have successfully enabled HTTPS on https://notebooks-test.gesis.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Delete the configuration that we use to get the SSL certificate:
sudo rm /etc/nginx/sites-enabled/default_nginx4lets-encrypt13.2 Configure routes
Get the ORC configuration for NGINX:
sudo mkdir /var/www/test sudo cp -R ~/ilcm/orc/load_balancer/static /var/www/test/sudo cp -R ~/ilcm/orc/load_balancer/snippets/* /etc/nginx/snippets/sudo cp -R ~/ilcm/orc/load_balancer/sites-available/* /etc/nginx/sites-available/sudo ln -s /etc/nginx/sites-available/orc_test /etc/nginx/sites-enabled/.sudo ln -s /etc/nginx/sites-available/default_test /etc/nginx/sites-enabled/.Test NGINX configuration file:
sudo nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reload and restart NGINX:
sudo systemctl reload nginx.servicesudo systemctl restart nginx.serviceVerify that NGINX is running:
sudo systemctl status nginx.service13.3 Test
Try to access https://notebooks-test.gesis.org/binder/. If everything is working well, you should see something like

If some static content is missing, like GESIS logo, verify that
static files are saved in the
/var/www/test/, andthe NGINX configuration for the static files is correct:
location /static/ { access_log off; root /var/www/test; }
Try to launch a repository by filling the field GitHub repository name or URL with https://github.com/binder-examples/requirements and clicking in launch. Create the container and launch it can take a couple of minutes.
A collection of repositories is available at https://github.com/binder-examples. We recommend to start testing with https://github.com/binder-examples/requirements.