...
- SSH into the instance (Select instance from console, click the Connect button, copy and paste the example ssh line into your computer’s terminal). Make sure you’re on the NCAR VPN since you’ve set up the security group.
Install nginx (enter in SSH’d terminal):
Code Block sudo apt install nginx sudo systemctl status nginx
- Connect {website_name}.jcsda.org to IPv4 on Route 53. (Go to https://console.aws.amazon.com/route53/v2/hostedzones#ListRecordSets/Z1F2XBLX8SOJLO, click create record, name it, keep the type as “A” and enter the instance’s public IPv4 as the Value)
Create the file /etc/nginx/sites-enabled/{website_name}.jcsda.org with the following content:
Code Block server { listen 80; server_name {website_name}.jcsda.org; proxy_buffering off; location / { proxy_pass http://localhost:8866; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } client_max_body_size 100M; error_log /var/log/nginx/error.log; }
Enable and start the nginx service.
Code Block sudo systemctl enable nginx.service sudo systemctl start nginx.service
Install pip
Code Block sudo apt update && sudo apt install python3-pip
Clone Git Repo and Install Dependencies:
...
Create /usr/lib/systemd/system/voila.service with the contents:
Code Block [Unit] Description=Voila [Service] Type=simple PIDFile=/run/voila.pid ExecStart=voila --no-browser --show_traceback=False jtd/voila/app.ipynb User=ubuntu WorkingDirectory=/home/ubuntu/ Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Enable and start the voila.service:
Code Block sudo systemctl enable voila.service sudo systemctl start voila.service
Restart nginx
Code Block sudo systemctl restart nginx.service
Enable access to https:
Code Block sudo snap install core; sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot sudo certbot --nginx
- Check access on https://{website_name}.jcsda.org, it should be up and running
Troubleshooting
How to run the web apps on a locally
How to print to output from ipywidgets
import ipywidgets as widgets
out = widgets.Output(layout={'border': '1px solid black'})
display(out)
from jedi_data_viewer_experiments import JediDataViewerExperiments
jedi_data_viewer_experiments = JediDataViewerExperiments(out)
with self._out: print("")
Web page fails to load
Issue: the web pages will fail to load/ timeout
...