A simple django app to use thuri web visual apps
Project description
thwterm is a simple web shell to connect to thhpc cluster through web
thwterm used in iframe in django template
detail documentation is in the “docs” directory
Quick start
pip install django-thvapp
Add “thwterm” to your INSTALLED_APPS setting like this:
INSTALL_APPS = [ ... 'thvapp', ]
Include the thwterm URLconf in your project urls.py like this:
from thvapp import urls as thVAppsUrls urlpatterns = [...] + thVAppsUrls.urlpatterns,
- Set IFrame Option in settings.py like this:
X_FRAME_OPTIONS = ‘ALLOWALL’
Add the thvapp in your html tempalte by iframe like this:
- 1)、add path in project urls like this:
path(‘vapps/’, main.vApps),
- 2)、in main views.py:
@login_required def vApps(request):
return render(request,’vapps.html’,{})
- 3)、write the xterm.html tempalte file like:
… <div class=”page-row”><iframe id=”webthvisual” src=”/thva/apps#/applist” frameborder=”0” width=”100%” style=”min-height: 82vh” scrolling=”yes”></iframe> </div> …
- Setup thuri appid and appid in settings.py like this;
- THTERMCONF = {
‘server’:’{ visual<shell> backend server }’, ‘appid’:’{appid}’, ‘appkey’:’{appkey}’
} TH_VISUALAPP_CONFIG = {
‘VAPP_BACKEND_HOST’:’{ visualbackend server }’,
‘VAPP_BACKEND_APPID’:’{ appid }’,
‘VAPP_BACKEND_APPKEY’:’{appkey}’,
‘VAPP_DEFAULT_IMGAGE_URL’:’/media/visual.png’, # default image url in front page ‘FOOTER_HEIGHT’:70, # your iframe’s parent page’s footer height ‘SCREEN_RATIO’:16 / 9, # if you want to set the remote screen ratio ‘VAPP_ICONS’:{
‘{thcluster1}’:{“app1”: {“video”: “app1 image url”}, “app2”: {“video”: “{app2 video url}”}, …}
} # vapp icons (image or video) you can get th visual applications from THVisual client SDK then config your own icons in settings or database
}
- Add th user 、cluster and visual applications’ icons to session when user login like this:
request.session[“systemUsername”] = “{thsystem user name}” request.session[“cluster] = “{thcluster1}” request.session[“vapp_icons”] = json.dumps(settings.TH_VISUALAPP_CONFIG.get(‘VAPP_ICONS’))
- Use nginx proxy the porject port like this:
- server {
listen 80; server_name _;
port_in_redirect off;
- location /visual/ {
proxy_pass { visualbackend server }
proxy_http_version 1.1; proxy_read_timeout 600s; proxy_redirect off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
- location / {
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_pass { django server:port };
}
Start the development server and visit http://yourhost:80/vapps/ you will see the web term
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.