In addition to Yonohub’s built-in apps, you can create and manage your own custom apps using Yonohub. Custom apps are a great way to seamlessly bring your existing tools, technologies, and development environments to Yonohub and to make them accessible to everyone at any time. Even if your applications are desktop apps that are not built for the web, you can still access them using remote desktop technologies such as VNC.
Creating Custom Apps
A custom app is essentially an environment that can be launched. To create a custom app:
- Using YonoEBuilder, build an environment that can be launched, i.e., check Enable launch settings under the Launch Settings tab while creating the environment and provide the required info as explained here.
- On the main view of Yonohub, click Add app, and provide the required info:
- Under the App Settings tab, specify the:
- Name of the custom app on the main view of Yonohub.
- Icon of the custom app on the main view of Yonohub. Once you launch the custom app, the icon is saved for you so that you don’t have to maintain the icon file in your YonoDrive.
- Environment of the custom app and the environment’s Version. A custom app is based on an environment that can be launched as explained here.
- Under the General tab, specify the:
- Deployment Region on which you would like to deploy your custom app. Information about deployment regions are available here.
- Resource Model on which to run your app.
- Special Resources which are needed by your custom app. Information about special resources are available here.
- Under the Environment Configurations tab, set the configurations (if any) to customize the behavior of the app. These configurations are defined by the environment owner while creating the environment.
- Under the Allowed IPs tab, specify the list of IP addresses which will have access to the custom app after launch. Use Add, Edit, or Delete to perform the corresponding action. An IP entry could have one of the following formats:
- My IP which represents your public IP address at the moment you launch this custom app.
- 126.96.36.199 for a specific IP.
- 188.8.131.52/24 for a range of IPs (i.e., any 156.214.153.x).
- Click Launch or Express Launch. The custom app will start having a loading indicator on the main view of Yonohub. Once this loading indicator is gone, the custom app is ready.
- Click the icon of the app to see the list of URLs you can use to access the app under the General tab. These URLs are defined by the environment owner. If a URL is HTTP or HTTPs, you can simply click it to open in a new tab. You can always hover over the info icon of each URL to check its description for any help.
Actions on Custom Apps
For a running custom app, you can click its icon to:
- See the list of URLs you can use to access the app under the General tab. These URLs are defined by the environment owner. If a URL is HTTP or HTTPs, you can simply click it to open in a new tab. You can always hover over the info icon of each URL to check its description for any help.
- Show logs of the custom app. This opens a new tab showing the latest logs from the running custom app, given the Number of Lines you specify on the bottom-right corner. If the custom app crashes, you can show the logs of the older trials using the Logs drop-down list at the bottom.
- Terminate the app when needed. Note that closing the browser tab of a custom app does not mean that the app is terminated. The app will never be terminated unless you click Terminate or click Stop that is on the top-right corner of the app icon on the main view of Yonohub.
- Apply changes to the list of allowed IPs while the custom app is running. To edit the list, use Add, Edit, or Delete under the Allowed IPs tab. More info about allowed IPs are available here.
- Save environment to save this custom app as an environment, which is explained here.
Saving Custom Apps as Environments
When you terminate a custom app, you lose its state including anything you have installed while the app is running. The only changes you don’t lose are any changes under YonoDrive folders as explained here.
If you would like to save the state of your custom app for later use, you can use this feature to save the custom app as an environment. This is useful in two main scenarios:
- If you make changes that can’t be automated or hard to automate using YonoEBuilder. A good example would be GUI-based licence activations.
- If you would like to save the state (i.e., all the files on the disk, not the memory contents) of your app to terminate it temporarily and launch it later in the same state.
To save a running custom app as an environment:
- Click the app icon on the main view of Yonohub.
- Click Save environment.
- To save it as a new version of the environment (based on which the custom app was launched), don’t check Create a new environment. Enter the new Version of the environment and the Log path for the saving process. Then, click Save.
- To save it as a brand-new environment, check Create a new environment. Enter the Name, Description, and Version of the new environment and the Log path for the saving process. Then, click Save
- You can track the progress of saving the environment using YonoEBuilder. Please do not terminate or interact with the application until the environment becomes Released.
- Once the environment is Released, you can terminate the custom app if needed, and you can re-use this environment later in any Yonohub app when needed.
Beware that if you save an environment in this manual way, a new row in the requirements table of this environment will be added indicating that this environment has been manually updated. This limits your ability to edit any rows above the added row, but you can still add new requirements afterwards.
Yonohub provides Jupyter Notebook as a pinned custom app on the main view. You can use Jupyter Notebook as an IDE, and it includes a Terminal as well. Jupyter Notebook allows you to create documents that contain live code, equations, visualizations and narrative text. Uses include data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.
Jupyter Notebook is different from any other custom app only as follows:
- It is pinned on the main view of Yonohub, and you can’t change its name or icon.
- It works with any environment, even if it doesn’t have launch settings enabled. The environment has to be based on one of our Yonohub bases as explained here since we include Jupyter Notebook in all of them for convenience.
- If you choose an environment with launch settings as explained here, these settings are completely ignored since they are overridden by those of Jupyter Notebook. In other words, the startup command will not be executed, the URLs will not be exposed, and the configurations will not be usable.
Other than that, Jupyter Notebook follows all the same guidelines in this entire section.
To launch Jupyter Notebook:
- On the main view of Yonohub, click Jupyter Notebook’s icon on the second row of apps.
- Provide the required info as explained here, given the differences listed above.
- Click Launch or Express Launch. Jupyter Notebook will start having a loading indicator on the main view of Yonohub. Once this loading indicator is gone, the app is ready.
- Click Jupyter Notebook’s icon to see the list of URLs. Then, click Web UI URL. Jupyter Notebook will open in a new tab.