How to enbed a html page which from other website to ood

Excuse me again, there is a requirement about using ood menu navigation bar to jump to other website in the same windows.
So I try to develop an Interactive App to implement this requirement.And I wonder is there any other way to do this job?
When I had tried to follow the docs to develop an Interactive App (Manifest yml files — Open OnDemand 2.0.20 documentation), I found that I could not see my Interactive App name which set from manifest.yaml on navigation bar.

[root@node02 test]# pwd
/var/www/ood/apps/sys/test
[root@node02 test]# cat manifest.yml
---
name: My Cool test App
category: test app
role: batch_connect
description: |
  This is a multi-line description that will be shown throughout the
  dashboard.

By the way ,I tried to use passenger app to manifest.yaml.

[root@node02 test]# tree
.
├── app.py
├── LICENSE.md
├── manifest.yml
├── manifest.yml-back
├── passenger_wsgi.py
├── README.md
└── templates
    └── index.html

1 directory, 7 files
[root@node02 test]# cat manifest.yml
---
name: My Cool test App
category: test app
description: |
  This is a multi-line description that will be shown throughout the
  dashboard.
[root@node02 test]#

Then , I clone a passenger app from (Quickstart: Python + Phusion Passenger - Passenger Library) website.When I don’t set category =batch_connect I can see menu on navigation bar.It‘s so weird.But I still could not see my passenger app.And I got an error.

Error ID:
07c531b5
Details:
Web application could not be started by the Phusion Passenger application server.

Please read the Passenger log file (search for the Error ID) to find the details of the error.

So where is passenger log? :weary:

This answer is in two parts. This first answers your question about adding a generic link, which seems to be your actual issue.

The second bit is about passenger apps, but you don’t need any of that. If you just want a link to go somewhere else, building a passenger app in python is really over the top. But I’ve left it for reference or in case you want to build an actual passenger app at some point.

You’re right that batch_connect role has special meaning for us. That means it’s an interactive app like Jupyter or Rstudio. A passenger app is not batch_connect.

/var/log/ondemand-nginx/$USER/error.log may be where you should be looking.

But you should actually setup development mode for yourself. I tell folks to do this so they don’t have to privilege escalate to develop, but you actually need it for another reason. We’re giving you this page because you’re running this in production (out of /var/www/ood/apps/sys). If you were running this in development mode - you would see a different page and indeed that new page would be full of debug information that would be helpful.

https://osc.github.io/ood-documentation/latest/app-development/enabling-development-mode.html

With developement enabled you can work on ~/ondemand/dev/test without jumping to sudo to edit files (they are yours in your home). And you’ll get better debug info when it doesn’t start.

Thank you for your help ! Your answer dose help me a lot !
It’s an amazing design for ood archechture. Finally, I implement that requirement by two different way.One is only setting ood manifest url ,and the other is building a passenger app by python. (

The reason why is that I need to install flask by pip.So I think ood doc could notice user if anyone develeop passenger app,Don’t forget to install their package,especially when using python or nodejs
)
So this archechture make me wonder that how ood knows is there a new app or new manifest(and I build an ood dashborad rails project and find that there is nothing at navigation bar), and where is the place to find out in source code.

Yes, in ruby we use bundle and add gems into a relative directory like vendor/bundle. I know nodejs is node_modules - I actually don’t know how to install python packages in an OOD app.

What we call Routers. We traverse these directories /var/www/ood/apps/{sys,dev,usr}. sys is of course right there - but dev (development) points back to your own home and usr (user) apps point back to someone else’s home through symlinks.

Here’s the sys router as an example in case you’re interested in the code.

1 Like